{"openapi": "3.1.0", "info": {"title": "Observatoire citoyen \u2014 API", "version": "0.2.0", "description": "Donn\u00e9es publiques et sourc\u00e9es sur les d\u00e9cisions de l'Assembl\u00e9e nationale et du Conseil constitutionnel. Licence des donn\u00e9es : voir la page de m\u00e9thodologie (DILA, Assembl\u00e9e nationale)."}, "paths": {"/api/sante": {"get": {"operationId": "api_api_sante", "summary": "Sante", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Sante"}}}}}, "description": "V\u00e9rifie que l'API r\u00e9pond (supervision).", "tags": ["syst\u00e8me"]}}, "/api/legislatures": {"get": {"operationId": "api_api_legislatures", "summary": "Legislatures", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/LegislatureSortie"}, "title": "Response", "type": "array"}}}}}, "description": "L\u00e9gislatures connues, dates de d\u00e9but et de fin (fin absente pour la l\u00e9gislature en cours).", "tags": ["r\u00e9f\u00e9rentiel"]}}, "/api/indicateurs": {"get": {"operationId": "api_api_indicateurs", "summary": "Indicateurs", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Definition"}, "title": "Response", "type": "array"}}}}}, "description": "D\u00e9finitions en vigueur (derni\u00e8re version de chaque indicateur), texte de m\u00e9thode inclus.", "tags": ["indicateurs"]}}, "/api/indicateurs/{code}": {"get": {"operationId": "api_api_indicateur", "summary": "Indicateur", "parameters": [{"in": "path", "name": "code", "schema": {"title": "Code", "type": "string"}, "required": true}, {"in": "query", "name": "periode_type", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Periode Type"}, "required": false}, {"in": "query", "name": "periode", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Periode"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResultatsIndicateur"}}}}}, "description": "R\u00e9sultats du dernier calcul de l'indicateur (I1, I2, I3), avec la m\u00e9thode et les collectes utilis\u00e9es.\n\nFiltres : `periode_type` (legislature, annee_parlementaire, session) et `periode` (ex. 17, 2024-2025).", "tags": ["indicateurs"]}}, "/api/engagements": {"get": {"operationId": "api_api_engagements", "summary": "Engagements", "parameters": [{"in": "query", "name": "legislature", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Legislature"}, "required": false}, {"in": "query", "name": "annee", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Annee"}, "required": false}, {"in": "query", "name": "session", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Session"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/EngagementSortie"}, "title": "Response", "type": "array"}}}}}, "description": "Engagements 49.3 (indicateur I1), filtrables par l\u00e9gislature, ann\u00e9e parlementaire, session.", "tags": ["d\u00e9tail"]}}, "/api/motions": {"get": {"operationId": "api_api_motions", "summary": "Motions", "parameters": [{"in": "query", "name": "legislature", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Legislature"}, "required": false}, {"in": "query", "name": "alinea", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Alinea"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/MotionSortie"}, "title": "Response", "type": "array"}}}}}, "description": "Motions de censure (indicateur I2), avec scrutin, seuil et mode de rattachement.", "tags": ["d\u00e9tail"]}}, "/api/decisions": {"get": {"operationId": "api_api_decisions", "summary": "Decisions", "parameters": [{"in": "query", "name": "legislature", "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Legislature"}, "required": false}, {"in": "query", "name": "nature", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Nature"}, "required": false}, {"in": "query", "name": "issue", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Issue"}, "required": false}, {"in": "query", "name": "annexes", "schema": {"default": false, "title": "Annexes", "type": "boolean"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/DecisionSortie"}, "title": "Response", "type": "array"}}}}}, "description": "D\u00e9cisions DC du Conseil constitutionnel (indicateur I3). `nature` : DC03, DC04 ; DC01 = trait\u00e9s.", "tags": ["d\u00e9tail"]}}, "/api/traites": {"get": {"operationId": "api_api_traites", "summary": "Traites", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/DecisionSortie"}, "title": "Response", "type": "array"}}}}}, "description": "D\u00e9cisions sur des trait\u00e9s (article 54), pr\u00e9sent\u00e9es \u00e0 part, hors taux de censure.", "tags": ["d\u00e9tail"]}}, "/api/composition": {"get": {"operationId": "api_api_composition", "summary": "Composition", "parameters": [{"in": "query", "name": "date", "schema": {"format": "date", "title": "Date", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/GroupeEffectif"}, "title": "Response", "type": "array"}}}}}, "description": "Effectif de chaque groupe politique \u00e0 une date (mandats AMO30), sans commentaire.\n\nGroupes ordonn\u00e9s selon leur placement r\u00e9el dans l'h\u00e9micycle, de gauche \u00e0 droite vu du fauteuil du\npr\u00e9sident : moyenne des num\u00e9ros de si\u00e8ge (placeHemicycle, AMO30) de leurs membres, d\u00e9croissante.", "tags": ["contexte"]}}, "/api/collectes": {"get": {"operationId": "api_api_collectes", "summary": "Collectes", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/CollecteSortie"}, "title": "Response", "type": "array"}}}}}, "description": "Derni\u00e8re collecte de chaque fichier source (date, MD5 publi\u00e9 et calcul\u00e9, statut).", "tags": ["transparence"]}}, "/api/corrections": {"get": {"operationId": "api_api_corrections", "summary": "Corrections", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/CorrectionSortie"}, "title": "Response", "type": "array"}}}}}, "description": "\u00c9carts entre valeurs publi\u00e9es par les sources et valeurs retenues, avec justification.", "tags": ["transparence"]}}, "/api/export/{jeu}.csv": {"get": {"operationId": "api_api_export_csv", "summary": "Export Csv", "parameters": [{"in": "path", "name": "jeu", "schema": {"title": "Jeu", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Export CSV (UTF-8, s\u00e9parateur \u00ab ; \u00bb) : engagements, motions, decisions.", "tags": ["exports"]}}}, "components": {"schemas": {"Sante": {"properties": {"statut": {"title": "Statut", "type": "string"}, "version": {"title": "Version", "type": "string"}}, "required": ["statut", "version"], "title": "Sante", "type": "object"}, "LegislatureSortie": {"properties": {"numero": {"title": "Numero", "type": "integer"}, "date_debut": {"format": "date", "title": "Date Debut", "type": "string"}, "date_fin": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Date Fin"}}, "required": ["numero", "date_debut", "date_fin"], "title": "LegislatureSortie", "type": "object"}, "Definition": {"properties": {"code": {"title": "Code", "type": "string"}, "version": {"title": "Version", "type": "integer"}, "date": {"format": "date", "title": "Date", "type": "string"}, "intitule": {"title": "Intitule", "type": "string"}, "texte_methode": {"title": "Texte Methode", "type": "string"}, "reference_journal": {"title": "Reference Journal", "type": "string"}}, "required": ["code", "version", "date", "intitule", "texte_methode", "reference_journal"], "title": "Definition", "type": "object"}, "CollecteUtilisee": {"properties": {"source": {"title": "Source", "type": "string"}, "nom_fichier": {"title": "Nom Fichier", "type": "string"}, "date_collecte": {"format": "date-time", "title": "Date Collecte", "type": "string"}, "md5_calcule": {"title": "Md5 Calcule", "type": "string"}, "url": {"title": "Url", "type": "string"}}, "required": ["source", "nom_fichier", "date_collecte", "md5_calcule", "url"], "title": "CollecteUtilisee", "type": "object"}, "ResultatsIndicateur": {"properties": {"definition": {"$ref": "#/components/schemas/Definition"}, "lot": {"title": "Lot", "type": "string"}, "date_calcul": {"format": "date-time", "title": "Date Calcul", "type": "string"}, "collectes": {"items": {"$ref": "#/components/schemas/CollecteUtilisee"}, "title": "Collectes", "type": "array"}, "valeurs": {"items": {"$ref": "#/components/schemas/Valeur"}, "title": "Valeurs", "type": "array"}}, "required": ["definition", "lot", "date_calcul", "collectes", "valeurs"], "title": "ResultatsIndicateur", "type": "object"}, "Valeur": {"properties": {"periode_type": {"title": "Periode Type", "type": "string"}, "periode": {"title": "Periode", "type": "string"}, "ventilation": {"title": "Ventilation", "type": "string"}, "valeur": {"title": "Valeur", "type": "string"}, "numerateur": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Numerateur"}, "denominateur": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Denominateur"}}, "required": ["periode_type", "periode", "ventilation", "valeur", "numerateur", "denominateur"], "title": "Valeur", "type": "object"}, "EngagementSortie": {"properties": {"uid": {"title": "Uid", "type": "string"}, "date": {"format": "date", "title": "Date", "type": "string"}, "legislature": {"title": "Legislature", "type": "integer"}, "annee_parlementaire": {"title": "Annee Parlementaire", "type": "string"}, "session": {"title": "Session", "type": "string"}, "budgetaire": {"title": "Budgetaire", "type": "boolean"}, "lecture": {"title": "Lecture", "type": "string"}, "texte": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Texte"}, "texte_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Texte Url"}, "nombre_motions": {"title": "Nombre Motions", "type": "integer"}, "source": {"$ref": "#/components/schemas/Source"}}, "required": ["uid", "date", "legislature", "annee_parlementaire", "session", "budgetaire", "lecture", "texte", "texte_url", "nombre_motions", "source"], "title": "EngagementSortie", "type": "object"}, "Source": {"properties": {"identifiant": {"title": "Identifiant", "type": "string"}, "url": {"title": "Url", "type": "string"}, "verifie_le": {"format": "date-time", "title": "Verifie Le", "type": "string"}}, "required": ["identifiant", "url", "verifie_le"], "title": "Source", "type": "object"}, "MotionSortie": {"properties": {"identifiant": {"title": "Identifiant", "type": "string"}, "date_depot": {"format": "date", "title": "Date Depot", "type": "string"}, "legislature": {"title": "Legislature", "type": "integer"}, "alinea": {"title": "Alinea", "type": "integer"}, "statut": {"title": "Statut", "type": "string"}, "engagement": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Engagement"}, "rattachement_engagement": {"title": "Rattachement Engagement", "type": "string"}, "scrutin": {"anyOf": [{"$ref": "#/components/schemas/ScrutinSortie"}, {"type": "null"}]}, "rattachement_scrutin": {"title": "Rattachement Scrutin", "type": "string"}, "source": {"$ref": "#/components/schemas/Source"}}, "required": ["identifiant", "date_depot", "legislature", "alinea", "statut", "engagement", "rattachement_engagement", "scrutin", "rattachement_scrutin", "source"], "title": "MotionSortie", "type": "object"}, "ScrutinSortie": {"properties": {"uid": {"title": "Uid", "type": "string"}, "numero": {"title": "Numero", "type": "integer"}, "url": {"title": "Url", "type": "string"}, "date": {"format": "date", "title": "Date", "type": "string"}, "sort": {"title": "Sort", "type": "string"}, "pour": {"title": "Pour", "type": "integer"}, "seuil": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Seuil"}, "ecart_au_seuil": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Ecart Au Seuil"}}, "required": ["uid", "numero", "url", "date", "sort", "pour", "seuil", "ecart_au_seuil"], "title": "ScrutinSortie", "type": "object"}, "DecisionSortie": {"properties": {"numero": {"title": "Numero", "type": "string"}, "titre": {"title": "Titre", "type": "string"}, "ecli": {"title": "Ecli", "type": "string"}, "date": {"format": "date", "title": "Date", "type": "string"}, "legislature": {"title": "Legislature", "type": "integer"}, "nature": {"title": "Nature", "type": "string"}, "issue": {"title": "Issue", "type": "string"}, "reserves": {"title": "Reserves", "type": "boolean"}, "solution_source": {"title": "Solution Source", "type": "string"}, "annexe": {"title": "Annexe", "type": "string"}, "loi": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Loi"}, "loi_titre": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Loi Titre"}, "loi_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Loi Url"}, "url": {"title": "Url", "type": "string"}}, "required": ["numero", "titre", "ecli", "date", "legislature", "nature", "issue", "reserves", "solution_source", "annexe", "loi", "loi_titre", "loi_url", "url"], "title": "DecisionSortie", "type": "object"}, "GroupeEffectif": {"properties": {"uid": {"title": "Uid", "type": "string"}, "libelle": {"title": "Libelle", "type": "string"}, "abrege": {"title": "Abrege", "type": "string"}, "couleur": {"title": "Couleur", "type": "string"}, "effectif": {"title": "Effectif", "type": "integer"}, "place_moyenne": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Place Moyenne"}}, "required": ["uid", "libelle", "abrege", "couleur", "effectif", "place_moyenne"], "title": "GroupeEffectif", "type": "object"}, "CollecteSortie": {"properties": {"source": {"title": "Source", "type": "string"}, "legislature": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Legislature"}, "nom_fichier": {"title": "Nom Fichier", "type": "string"}, "url": {"title": "Url", "type": "string"}, "date_collecte": {"format": "date-time", "title": "Date Collecte", "type": "string"}, "last_modified": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Last Modified"}, "md5_publie": {"title": "Md5 Publie", "type": "string"}, "md5_calcule": {"title": "Md5 Calcule", "type": "string"}, "statut": {"title": "Statut", "type": "string"}, "message": {"title": "Message", "type": "string"}}, "required": ["source", "legislature", "nom_fichier", "url", "date_collecte", "last_modified", "md5_publie", "md5_calcule", "statut", "message"], "title": "CollecteSortie", "type": "object"}, "CorrectionSortie": {"properties": {"entite": {"title": "Entite", "type": "string"}, "identifiant": {"title": "Identifiant", "type": "string"}, "champ": {"title": "Champ", "type": "string"}, "valeur_source": {"title": "Valeur Source", "type": "string"}, "valeur_retenue": {"title": "Valeur Retenue", "type": "string"}, "justification": {"title": "Justification", "type": "string"}, "preuve": {"title": "Preuve", "type": "string"}}, "required": ["entite", "identifiant", "champ", "valeur_source", "valeur_retenue", "justification", "preuve"], "title": "CorrectionSortie", "type": "object"}}}, "servers": []}