{"openapi":"3.1.0","info":{"title":"france-opendata-service","description":"Les données publiques françaises, servies en une seule API.\n\nLe service **possède l'état lourd** — index PG, parquets, caches — pour que ses\nconsommateurs (oto, scout, GR, OGIC) n'aient ni à l'héberger ni à le rafraîchir.\nCe qui est un passe-plat le reste ; ce qui demande un index l'a déjà.\n\n**Authentification** — toutes les routes `/api/*` (hors `/api/health` et\n`/api/status`) exigent `Authorization: Bearer <clé>`, une clé par consommateur.\nLe service ne détient **aucun**\ncredential tiers : la seule exception est INSEE SIRENE, dont la clé est fournie\npar l'appelant en `X-Sirene-Key`, le temps de l'appel.\n\n**Ce que ça coûte** — les sources adossées à un index PG répondent en dizaines de\nmillisecondes ; celles qui lisent un parquet via DuckDB (bilans INPI, stock\nSIRENE, IRIS, ESSMS) sont lentes au premier appel après un démarrage, rapides\nensuite. Les passe-plats dépendent de la source amont : `/api/status` dit la\nfraîcheur de chacune et l'historique des ingestions.\n\n**Fraîcheur** — un dump DILA ingéré est daté ; une API amont ne l'est pas. En cas\nde doute sur ce qui est à jour, `/api/status` fait foi, pas cette page.\n","version":"6e188af"},"paths":{"/api/foncier/ban/search":{"post":{"tags":["foncier"],"summary":"Ban Search","operationId":"ban_search_api_foncier_ban_search_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BanSearchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{},"title":"Response Ban Search Api Foncier Ban Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/ban/reverse":{"get":{"tags":["foncier"],"summary":"Ban Reverse","operationId":"ban_reverse_api_foncier_ban_reverse_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","title":"Lat"}},{"name":"lon","in":"query","required":true,"schema":{"type":"number","title":"Lon"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Ban Reverse Api Foncier Ban Reverse Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/cadastre/parcelle":{"get":{"tags":["foncier"],"summary":"Cadastre Parcelle","operationId":"cadastre_parcelle_api_foncier_cadastre_parcelle_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","title":"Lat"}},{"name":"lon","in":"query","required":true,"schema":{"type":"number","title":"Lon"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Cadastre Parcelle Api Foncier Cadastre Parcelle Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/bdtopo/bati":{"post":{"tags":["foncier"],"summary":"Bdtopo Bati","operationId":"bdtopo_bati_api_foncier_bdtopo_bati_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatiBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bdtopo Bati Api Foncier Bdtopo Bati Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/pvgis/productible":{"get":{"tags":["foncier"],"summary":"Pvgis Productible","operationId":"pvgis_productible_api_foncier_pvgis_productible_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","title":"Lat"}},{"name":"lon","in":"query","required":true,"schema":{"type":"number","title":"Lon"}},{"name":"kwc","in":"query","required":true,"schema":{"type":"number","title":"Kwc"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Pvgis Productible Api Foncier Pvgis Productible Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/ign/isochrone":{"get":{"tags":["foncier"],"summary":"Ign Isochrone","operationId":"ign_isochrone_api_foncier_ign_isochrone_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","title":"Lat"}},{"name":"lon","in":"query","required":true,"schema":{"type":"number","title":"Lon"}},{"name":"minutes","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minutes"}},{"name":"metres","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Metres"}},{"name":"profile","in":"query","required":false,"schema":{"type":"string","default":"pedestrian","title":"Profile"}},{"name":"direction","in":"query","required":false,"schema":{"type":"string","default":"departure","title":"Direction"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ign Isochrone Api Foncier Ign Isochrone Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/sitadel/search":{"post":{"tags":["foncier"],"summary":"Sitadel Search","operationId":"sitadel_search_api_foncier_sitadel_search_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SitadelBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sitadel Search Api Foncier Sitadel Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/enedis/conso":{"post":{"tags":["foncier"],"summary":"Enedis Conso","operationId":"enedis_conso_api_foncier_enedis_conso_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnedisBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Enedis Conso Api Foncier Enedis Conso Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/enedis/sites":{"post":{"tags":["foncier"],"summary":"Enedis Sites","operationId":"enedis_sites_api_foncier_enedis_sites_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnedisSitesBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Enedis Sites Api Foncier Enedis Sites Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/odre/conso":{"post":{"tags":["foncier"],"summary":"Odre Conso","operationId":"odre_conso_api_foncier_odre_conso_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OdreConsoBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Odre Conso Api Foncier Odre Conso Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/odre/annees":{"get":{"tags":["foncier"],"summary":"Odre Annees","operationId":"odre_annees_api_foncier_odre_annees_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{},"title":"Response Odre Annees Api Foncier Odre Annees Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/dvf/stats":{"post":{"tags":["foncier"],"summary":"Dvf Stats","operationId":"dvf_stats_api_foncier_dvf_stats_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DvfStatsBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dvf Stats Api Foncier Dvf Stats Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/dvf/comparables":{"post":{"tags":["foncier"],"summary":"Dvf Comparables","operationId":"dvf_comparables_api_foncier_dvf_comparables_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DvfComparablesBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dvf Comparables Api Foncier Dvf Comparables Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/dvf/comparables_by_address":{"post":{"tags":["foncier"],"summary":"Dvf Comparables By Address","operationId":"dvf_comparables_by_address_api_foncier_dvf_comparables_by_address_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DvfComparablesAddrBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dvf Comparables By Address Api Foncier Dvf Comparables By Address Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/dpe/by_address":{"post":{"tags":["foncier"],"summary":"Dpe By Address","operationId":"dpe_by_address_api_foncier_dpe_by_address_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DpeAddrBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dpe By Address Api Foncier Dpe By Address Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/dpe/stats":{"post":{"tags":["foncier"],"summary":"Dpe Stats","operationId":"dpe_stats_api_foncier_dpe_stats_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DpeStatsBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dpe Stats Api Foncier Dpe Stats Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/dpe/tertiaire":{"post":{"tags":["foncier"],"summary":"Dpe Tertiaire","operationId":"dpe_tertiaire_api_foncier_dpe_tertiaire_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DpeTertiaireBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dpe Tertiaire Api Foncier Dpe Tertiaire Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/beges":{"post":{"tags":["foncier"],"summary":"Beges Bilans","operationId":"beges_bilans_api_foncier_beges_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BegesBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Beges Bilans Api Foncier Beges Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/bdnb":{"post":{"tags":["foncier"],"summary":"Bdnb Batiments","operationId":"bdnb_batiments_api_foncier_bdnb_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BdnbBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bdnb Batiments Api Foncier Bdnb Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/foncier/irep":{"post":{"tags":["foncier"],"summary":"Irep Emetteurs","operationId":"irep_emetteurs_api_foncier_irep_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IrepBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Irep Emetteurs Api Foncier Irep Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/entreprises/search":{"post":{"tags":["entreprise"],"summary":"Chercher des entreprises par critères","description":"Recherche multicritères sur l'API Recherche Entreprises (open data, sans clé).\n\nLes critères se **cumulent**. `query` porte le nom ou la marque : la forme juridique n'y a pas sa place — « SCI ASC » ne trouve que les sociétés littéralement nommées ainsi, jamais la SCI nommée « ASC ». Passer par `nature_juridique` (catégorie INSEE niveau III, ex. `6540` = SCI).\n\n`idcc` filtre sur la convention collective : c'est le critère qui ouvre le ciblage par branche.","operationId":"entreprises_search_api_fr_entreprises_search_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntreprisesSearchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Entreprises Search Api Fr Entreprises Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/entreprises/{siren}":{"get":{"tags":["entreprise"],"summary":"Fiche entreprise complète","description":"Tout ce qu'un SIREN ouvre en un appel : identité, siège, activité NAF, tranche d'effectif, nature juridique, TVA, comptes de synthèse du dernier exercice, dirigeants, et une trentaine d'indicateurs (ESS, bio, RGE, Qualiopi, entrepreneur de spectacles, organisme de formation, index Egapro renseigné, liste des IDCC…).\n\nRenvoie `null` si le SIREN est inconnu — ce n'est pas une erreur.","operationId":"entreprises_get_api_fr_entreprises__siren__get","parameters":[{"name":"siren","in":"path","required":true,"schema":{"type":"string","title":"Siren"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Entreprises Get Api Fr Entreprises  Siren  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/entreprises/{siren}/directors":{"get":{"tags":["entreprise"],"summary":"Dirigeants déclarés","description":"Dirigeants au RNE. Chacun est une personne **physique ou morale** (`type_dirigeant`) : une filiale a souvent une société pour président, auquel cas le SIREN du dirigeant est fourni et se suit.","operationId":"entreprises_directors_api_fr_entreprises__siren__directors_get","parameters":[{"name":"siren","in":"path","required":true,"schema":{"type":"string","title":"Siren"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{},"title":"Response Entreprises Directors Api Fr Entreprises  Siren  Directors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/insee/siret/{siret}":{"get":{"tags":["entreprise"],"summary":"Établissement par SIRET (INSEE, clé appelant)","description":"⚠️ **Le service ne détient aucune clé INSEE.** L'appelant la fournit en en-tête `X-Sirene-Key` ; elle sert le temps de l'appel et n'est jamais conservée. Sans en-tête, la requête est refusée.","operationId":"insee_siret_api_fr_insee_siret__siret__get","parameters":[{"name":"siret","in":"path","required":true,"schema":{"type":"string","title":"Siret"}},{"name":"x-sirene-key","in":"header","required":true,"schema":{"type":"string","title":"X-Sirene-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Insee Siret Api Fr Insee Siret  Siret  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/insee/headquarters/{siren}":{"get":{"tags":["entreprise"],"summary":"Siège social (INSEE, clé appelant)","description":"Même contrat de clé que `/insee/siret` : `X-Sirene-Key` fournie par l'appelant. Préférer `/entreprises/{siren}`, qui rend le siège sans clé, sauf besoin des champs INSEE stricts.","operationId":"insee_headquarters_api_fr_insee_headquarters__siren__get","parameters":[{"name":"siren","in":"path","required":true,"schema":{"type":"string","title":"Siren"}},{"name":"x-sirene-key","in":"header","required":true,"schema":{"type":"string","title":"X-Sirene-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Insee Headquarters Api Fr Insee Headquarters  Siren  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/bodacc/{siren}":{"get":{"tags":["entreprise"],"summary":"Annonces légales d'une entreprise","description":"Publications BODACC : dépôts de comptes, modifications, procédures collectives, ventes et cessions. `famille` restreint le type (`modification`, `procedure`, `depot`, `vente`…).\n\nUne procédure collective est le signal le plus fort qu'on lise ici — et la date de parution n'est pas la date du jugement.","operationId":"bodacc_by_siren_api_fr_bodacc__siren__get","parameters":[{"name":"siren","in":"path","required":true,"schema":{"type":"string","title":"Siren"}},{"name":"famille","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Famille"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bodacc By Siren Api Fr Bodacc  Siren  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/bodacc/batch":{"post":{"tags":["entreprise"],"summary":"Annonces légales, en lot","description":"Groupe les SIREN en quelques requêtes plutôt qu'une par société (700 SIREN → une poignée d'appels). Renvoie les `annonces` retapées et une `synthese` de comptes déterministes. Aucune interprétation du texte libre côté service.","operationId":"bodacc_batch_api_fr_bodacc_batch_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BodaccBatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bodacc Batch Api Fr Bodacc Batch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/inpi/{siren}/exercises":{"get":{"tags":["entreprise"],"summary":"Exercices comptables disponibles","description":"Dates de clôture pour lesquelles une liasse existe — à appeler **avant** `/inpi/{siren}/bilan`, qui exige une date exacte.\n\nLecture d'un parquet de 6,4 M lignes via DuckDB : la première requête après un démarrage est lente, les suivantes non.","operationId":"inpi_exercises_api_fr_inpi__siren__exercises_get","parameters":[{"name":"siren","in":"path","required":true,"schema":{"type":"string","title":"Siren"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{},"title":"Response Inpi Exercises Api Fr Inpi  Siren  Exercises Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/inpi/{siren}/bilan":{"get":{"tags":["entreprise"],"summary":"Bilan d'un exercice","description":"Postes **bruts** de la liasse fiscale (codes CERFA 2050-2053 réel normal, 2033 simplifié), d'où sont dérivés chiffre d'affaires et résultat net — ce ne sont pas les ratios pré-calculés de la Banque de France.\n\n`date_cloture` doit correspondre exactement à un exercice rendu par `/inpi/{siren}/exercises`.","operationId":"inpi_bilan_api_fr_inpi__siren__bilan_get","parameters":[{"name":"siren","in":"path","required":true,"schema":{"type":"string","title":"Siren"}},{"name":"date_cloture","in":"query","required":true,"schema":{"type":"string","title":"Date Cloture"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Inpi Bilan Api Fr Inpi  Siren  Bilan Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/egapro/{siren}/declaration":{"get":{"tags":["entreprise"],"summary":"Index égalité d'une année","description":"Index de l'égalité professionnelle femmes-hommes pour l'année demandée. L'obligation ne vise que les entreprises d'au moins 50 salariés : `null` signifie « pas de déclaration », pas « mauvais score ».","operationId":"egapro_declaration_api_fr_egapro__siren__declaration_get","parameters":[{"name":"siren","in":"path","required":true,"schema":{"type":"string","title":"Siren"}},{"name":"year","in":"query","required":true,"schema":{"type":"integer","title":"Year"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Egapro Declaration Api Fr Egapro  Siren  Declaration Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/egapro/{siren}/latest":{"get":{"tags":["entreprise"],"summary":"Dernier index égalité connu","description":"Remonte les années jusqu'à trouver une déclaration. Préférer cette route à `/declaration` quand on ignore le dernier millésime publié.","operationId":"egapro_latest_api_fr_egapro__siren__latest_get","parameters":[{"name":"siren","in":"path","required":true,"schema":{"type":"string","title":"Siren"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Egapro Latest Api Fr Egapro  Siren  Latest Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/tenders/awarded":{"get":{"tags":["entreprise"],"summary":"Tenders Awarded","operationId":"tenders_awarded_api_fr_tenders_awarded_get","parameters":[{"name":"mot_cle","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mot Cle"}},{"name":"titulaire_siret","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Titulaire Siret"}},{"name":"acheteur_siret","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Acheteur Siret"}},{"name":"lieu","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lieu"}},{"name":"depuis","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Depuis"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Tenders Awarded Api Fr Tenders Awarded Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/tenders/search":{"post":{"tags":["accords & marchés"],"summary":"Tenders Search","operationId":"tenders_search_api_fr_tenders_search_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TendersSearchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Tenders Search Api Fr Tenders Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/tenders/{idweb}":{"get":{"tags":["accords & marchés"],"summary":"Tenders Get","operationId":"tenders_get_api_fr_tenders__idweb__get","parameters":[{"name":"idweb","in":"path","required":true,"schema":{"type":"string","title":"Idweb"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Tenders Get Api Fr Tenders  Idweb  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/accords/search":{"post":{"tags":["accords & marchés"],"summary":"Chercher des accords d'entreprise","description":"Index ACCO : ~387 000 accords déposés depuis le 01/09/2017 (décret 2017-752 sur la publicité des accords collectifs).\n\n`themes` prend les codes de la nomenclature — voir `/accords/themes`. Les trois codes de protection sociale sont `111` (complémentaire santé), `112` (prévoyance hors santé) et `113` (retraite supplémentaire).\n\n`latest_per_siret` ne garde que le dernier accord par établissement : c'est ce qu'on veut pour dater une situation, un avenant chassant l'accord qu'il révise. `tranche_effectifs` croise le stock SIRENE local — ACCO ne porte pas la taille de l'entreprise.\n\n**Écarter les filiales de groupes** : `exclude_categories=[\"GE\"]` croise le stock unité légale, dont la catégorie INSEE est calculée sur le périmètre GROUPE. Une filiale petite par l'effectif de son établissement y sort en GE (GTIE Rennes, 8 M€ et tranche 20-49, est une GE parce qu'elle appartient à VINCI) — aucun autre champ ne porte cette information. Sur la population qui dépose des accords santé/prévoyance, 26 % sont des GE.\n\n⚠️ `categories_entreprise` (inclusion) et `exclude_categories` (exclusion) ne sont pas symétriques, et c'est le piège du champ : l'inclusion écarte les entreprises dont la catégorie n'est PAS renseignée (4 % de cette population), l'exclusion les garde. Pour cibler des PME autonomes, préférer l'exclusion — l'inclusion perd les non renseignées en silence.\n\n⚠️ Les croisements SIRENE (effectif, catégorie) examinent `scan_cap` accords avant de paginer — `effectifs_filter.truncated=true` signale que le gisement dépasse ce plafond, donc que la réponse n'est PAS exhaustive. Monter `scan_cap` (max 25 000) pour couvrir tout un vivier.\n\n⚠️ `conforme_version_integrale=false` (fréquent) : seules les métadonnées sont publiées, pas le texte des clauses. De quoi savoir **qui a négocié quoi et quand**, pas toujours lire le contrat.","operationId":"accords_search_api_fr_accords_search_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccordsSearchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Accords Search Api Fr Accords Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/accords/themes":{"get":{"tags":["accords & marchés"],"summary":"Nomenclature des thèmes d'accords","description":"Codes de thème avec leur libellé et le nombre d'accords qui les portent — à lire avant de filtrer `/accords/search`, les codes n'étant pas devinables.","operationId":"accords_themes_api_fr_accords_themes_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{},"title":"Response Accords Themes Api Fr Accords Themes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/accords/{id_or_numero}":{"get":{"tags":["accords & marchés"],"summary":"Un accord, par identifiant ou numéro de dépôt","description":"Accepte l'identifiant DILA (`ACCOTEXT…`) ou le numéro de dépôt TéléAccords (`T…`). Le **texte intégral**, quand il est publié, se récupère à part : `GET /api/accords/text/{acco_id}`.","operationId":"accords_get_api_fr_accords__id_or_numero__get","parameters":[{"name":"id_or_numero","in":"path","required":true,"schema":{"type":"string","title":"Id Or Numero"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Accords Get Api Fr Accords  Id Or Numero  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/aides/search":{"post":{"tags":["aides"],"summary":"Aides Search","operationId":"aides_search_api_fr_aides_search_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AidesSearchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Aides Search Api Fr Aides Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fr/aides/{id_aid}":{"get":{"tags":["aides"],"summary":"Aides Get","operationId":"aides_get_api_fr_aides__id_aid__get","parameters":[{"name":"id_aid","in":"path","required":true,"schema":{"type":"string","title":"Id Aid"}},{"name":"raw","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Raw"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Aides Get Api Fr Aides  Id Aid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/gpu/zonage":{"get":{"tags":["urbanisme"],"summary":"Gpu Zonage","operationId":"gpu_zonage_api_urba_gpu_zonage_get","parameters":[{"name":"lon","in":"query","required":true,"schema":{"type":"number","title":"Lon"}},{"name":"lat","in":"query","required":true,"schema":{"type":"number","title":"Lat"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Gpu Zonage Api Urba Gpu Zonage Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/georisques/risques/{code_insee}":{"get":{"tags":["urbanisme"],"summary":"Georisques Risques","operationId":"georisques_risques_api_urba_georisques_risques__code_insee__get","parameters":[{"name":"code_insee","in":"path","required":true,"schema":{"type":"string","title":"Code Insee"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Georisques Risques Api Urba Georisques Risques  Code Insee  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/georisques/argiles":{"get":{"tags":["urbanisme"],"summary":"Georisques Argiles","operationId":"georisques_argiles_api_urba_georisques_argiles_get","parameters":[{"name":"lon","in":"query","required":true,"schema":{"type":"number","title":"Lon"}},{"name":"lat","in":"query","required":true,"schema":{"type":"number","title":"Lat"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Georisques Argiles Api Urba Georisques Argiles Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/georisques/icpe":{"get":{"tags":["urbanisme"],"summary":"Georisques Icpe","operationId":"georisques_icpe_api_urba_georisques_icpe_get","parameters":[{"name":"siret","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siret"}},{"name":"code_insee","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Insee"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Georisques Icpe Api Urba Georisques Icpe Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/qpv/near":{"get":{"tags":["urbanisme"],"summary":"Qpv Near","operationId":"qpv_near_api_urba_qpv_near_get","parameters":[{"name":"lon","in":"query","required":true,"schema":{"type":"number","title":"Lon"}},{"name":"lat","in":"query","required":true,"schema":{"type":"number","title":"Lat"}},{"name":"radius_m","in":"query","required":false,"schema":{"type":"integer","default":300,"title":"Radius M"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Qpv Near Api Urba Qpv Near Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/qpv/{code_insee}":{"get":{"tags":["urbanisme"],"summary":"Qpv Commune","operationId":"qpv_commune_api_urba_qpv__code_insee__get","parameters":[{"name":"code_insee","in":"path","required":true,"schema":{"type":"string","title":"Code Insee"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Qpv Commune Api Urba Qpv  Code Insee  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/epfif/{code_insee}":{"get":{"tags":["urbanisme"],"summary":"Epfif Lookup","operationId":"epfif_lookup_api_urba_epfif__code_insee__get","parameters":[{"name":"code_insee","in":"path","required":true,"schema":{"type":"string","title":"Code Insee"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Epfif Lookup Api Urba Epfif  Code Insee  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/insee/{code_insee}/{block}":{"get":{"tags":["urbanisme"],"summary":"Insee Block","description":"Un bloc socio-démo (population/familles/personnes_seules/revenus/logement).\nLe backend appelle les blocs un à un (dégradation par bloc préservée).","operationId":"insee_block_api_urba_insee__code_insee___block__get","parameters":[{"name":"code_insee","in":"path","required":true,"schema":{"type":"string","title":"Code Insee"}},{"name":"block","in":"path","required":true,"schema":{"type":"string","title":"Block"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Insee Block Api Urba Insee  Code Insee   Block  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/iris/by_iris/{code}":{"get":{"tags":["urbanisme"],"summary":"Iris By Iris","operationId":"iris_by_iris_api_urba_iris_by_iris__code__get","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Iris By Iris Api Urba Iris By Iris  Code  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/iris/by_commune/{code}":{"get":{"tags":["urbanisme"],"summary":"Iris By Commune","operationId":"iris_by_commune_api_urba_iris_by_commune__code__get","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Iris By Commune Api Urba Iris By Commune  Code  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/elus/maires":{"get":{"tags":["urbanisme"],"summary":"Elus Maires","operationId":"elus_maires_api_urba_elus_maires_get","parameters":[{"name":"code_commune","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Commune"}},{"name":"departement","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Elus Maires Api Urba Elus Maires Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/elus/presidents-epci":{"get":{"tags":["urbanisme"],"summary":"Elus Presidents Epci","operationId":"elus_presidents_epci_api_urba_elus_presidents_epci_get","parameters":[{"name":"siren","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siren"}},{"name":"departement","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Elus Presidents Epci Api Urba Elus Presidents Epci Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/urba/annuaire":{"get":{"tags":["urbanisme"],"summary":"Annuaire Services","operationId":"annuaire_services_api_urba_annuaire_get","parameters":[{"name":"siren","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siren"}},{"name":"code_commune","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Commune"}},{"name":"type_service","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type Service"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Annuaire Services Api Urba Annuaire Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/osm/pois":{"get":{"tags":["foncier"],"summary":"Osm Pois","operationId":"osm_pois_api_osm_pois_get","parameters":[{"name":"selector","in":"query","required":true,"schema":{"type":"string","title":"Selector"}},{"name":"commune","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Commune"}},{"name":"departement","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement"}},{"name":"bbox","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bbox"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":500,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Osm Pois Api Osm Pois Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sante/finess/search":{"get":{"tags":["santé"],"summary":"Finess Search","operationId":"finess_search_api_sante_finess_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}},{"name":"departement","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement"}},{"name":"categorie","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Categorie"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Finess Search Api Sante Finess Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sante/finess/{code}":{"get":{"tags":["santé"],"summary":"Finess By Code","operationId":"finess_by_code_api_sante_finess__code__get","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Finess By Code Api Sante Finess  Code  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sante/essms/search":{"post":{"tags":["santé"],"summary":"Essms Search","operationId":"essms_search_api_sante_essms_search_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EssmsSearchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Essms Search Api Sante Essms Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sante/essms/dimensions":{"get":{"tags":["santé"],"summary":"Essms Dimensions","operationId":"essms_dimensions_api_sante_essms_dimensions_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Essms Dimensions Api Sante Essms Dimensions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/frenchtech/annuaire/search":{"post":{"tags":["écosystème"],"summary":"Annuaire Search","operationId":"annuaire_search_api_frenchtech_annuaire_search_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnuaireSearchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Annuaire Search Api Frenchtech Annuaire Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/frenchtech/annuaire/{slug}":{"get":{"tags":["écosystème"],"summary":"Annuaire Get","operationId":"annuaire_get_api_frenchtech_annuaire__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Annuaire Get Api Frenchtech Annuaire  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/frenchtech/membres":{"get":{"tags":["écosystème"],"summary":"Membres","operationId":"membres_api_frenchtech_membres_get","parameters":[{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"}},{"name":"all_results","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"All Results"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Membres Api Frenchtech Membres Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/frenchtech/evenements":{"get":{"tags":["écosystème"],"summary":"Evenements","operationId":"evenements_api_frenchtech_evenements_get","parameters":[{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"}},{"name":"all_results","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"All Results"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Evenements Api Frenchtech Evenements Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/frenchtech/appels":{"get":{"tags":["écosystème"],"summary":"Appels","operationId":"appels_api_frenchtech_appels_get","parameters":[{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"}},{"name":"all_results","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"All Results"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Appels Api Frenchtech Appels Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/frenchtech/financements":{"get":{"tags":["écosystème"],"summary":"Financements","operationId":"financements_api_frenchtech_financements_get","parameters":[{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"}},{"name":"all_results","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"All Results"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Financements Api Frenchtech Financements Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/frenchtech/ftc_scenarios":{"get":{"tags":["écosystème"],"summary":"Ftc Scenarios","operationId":"ftc_scenarios_api_frenchtech_ftc_scenarios_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ftc Scenarios Api Frenchtech Ftc Scenarios Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sirene/info":{"get":{"tags":["sirene"],"summary":"Info","description":"Métadonnées du parquet + fraîcheur (millésime INSEE, date de build, âge) —\nsupervision. Fusionne parquet_info() avec BUILD_INFO.json écrit par le build.","operationId":"info_api_sirene_info_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Info Api Sirene Info Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sirene/search":{"post":{"tags":["sirene"],"summary":"Search","operationId":"search_api_sirene_search_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Search Api Sirene Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sirene/enrich":{"post":{"tags":["sirene"],"summary":"Enrich","description":"Sièges normalisés d'une LISTE de SIREN en un scan (bulk).","operationId":"enrich_api_sirene_enrich_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SirensBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Enrich Api Sirene Enrich Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sirene/unites-legales":{"post":{"tags":["sirene"],"summary":"Unités légales d'une liste de SIREN (catégorie PME/ETI/GE)","description":"Pendant de `/enrich` sur le second stock SIRENE : ce que porte l'ENTREPRISE et non son implantation — au premier chef `categorie_entreprise` (PME/ETI/GE), que l'INSEE calcule sur le périmètre GROUPE. C'est la donnée qui distingue une PME autonome d'une filiale : une filiale peut être petite par l'effectif de son établissement et rester une GE. Un scan pour toute la liste.\n\nLes SIREN inconnus sont ABSENTS de la réponse (jamais une entrée vide, qui se confondrait avec « catégorie non renseignée » — cas réel : 4 % des entreprises qui déposent un accord n'ont pas de catégorie).","operationId":"unites_legales_api_sirene_unites_legales_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SirensBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Unites Legales Api Sirene Unites Legales Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sirene/sieges":{"post":{"tags":["sirene"],"summary":"Sieges","description":"Sièges bruts (dicts complets) d'une LISTE de SIREN en un scan.","operationId":"sieges_api_sirene_sieges_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SirensBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sieges Api Sirene Sieges Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sirene/siege/{siren}":{"get":{"tags":["sirene"],"summary":"Siege","operationId":"siege_api_sirene_siege__siren__get","parameters":[{"name":"siren","in":"path","required":true,"schema":{"type":"string","title":"Siren"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Siege Api Sirene Siege  Siren  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sirene/etablissements/{siren}":{"get":{"tags":["sirene"],"summary":"Etablissements","operationId":"etablissements_api_sirene_etablissements__siren__get","parameters":[{"name":"siren","in":"path","required":true,"schema":{"type":"string","title":"Siren"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{},"title":"Response Etablissements Api Sirene Etablissements  Siren  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sirene/siret/{siret}":{"get":{"tags":["sirene"],"summary":"Siret","operationId":"siret_api_sirene_siret__siret__get","parameters":[{"name":"siret","in":"path","required":true,"schema":{"type":"string","title":"Siret"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Siret Api Sirene Siret  Siret  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/acco/{acco_id}":{"get":{"tags":["permaliens"],"summary":"Permalien consultable d'un accord d'entreprise","description":"Page publique et stable d'un accord. **404 franc** si l'identifiant est inconnu — contrairement aux routes `/api/*`, qui rendent `200` + `null` (légitime pour un lookup, disqualifiant pour une adresse à résoudre).\n\nSans authentification : c'est un lien destiné à être partagé.","operationId":"acco_permalien_acco__acco_id__get","parameters":[{"name":"acco_id","in":"path","required":true,"schema":{"type":"string","title":"Acco Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ccn/{kali_id}":{"get":{"tags":["permaliens"],"summary":"Permalien consultable d'un article ou d'une convention collective","description":"Page publique et stable. Accepte les **deux grains** — un article (`KALIARTI…`) ou une convention (`KALICONT…`) — comme l'adresse Légifrance générique qu'elle remplace, qui ne les distinguait pas.\n\n**404 franc** si l'identifiant est inconnu. Sans authentification.","operationId":"ccn_permalien_ccn__kali_id__get","parameters":[{"name":"kali_id","in":"path","required":true,"schema":{"type":"string","title":"Kali Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/health":{"get":{"tags":["exploitation"],"summary":"Health","operationId":"health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Api Health Get"}}}}}}},"/statut":{"get":{"tags":["exploitation"],"summary":"Status Page","operationId":"status_page_statut_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/status":{"get":{"tags":["exploitation"],"summary":"Status Json","operationId":"status_json_api_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Status Json Api Status Get"}}}}}}},"/api/reglements":{"get":{"tags":["urbanisme"],"summary":"List Reglements","description":"Liste S2S des règlements en cache (métadonnées, sans corps). Pour les consommateurs\n(OGIC, oto…) qui veulent afficher la couverture. Auth clé API.","operationId":"list_reglements_api_reglements_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Reglements Api Reglements Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reglements/{idurba}/raw":{"get":{"tags":["urbanisme"],"summary":"Get Reglement Raw","description":"Texte brut intégral (ou aperçu si max_chars>0) extrait du PDF. Auth clé API (S2S).","operationId":"get_reglement_raw_api_reglements__idurba__raw_get","parameters":[{"name":"idurba","in":"path","required":true,"schema":{"type":"string","title":"Idurba"}},{"name":"max_chars","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Max Chars"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reglement":{"get":{"tags":["urbanisme"],"summary":"Get Reglement","description":"Extraits du règlement écrit d'un PLU/PLUi (cache partagé par idurba).","operationId":"get_reglement_api_reglement_get","parameters":[{"name":"idurba","in":"query","required":true,"schema":{"type":"string","description":"Identifiant de version du document GPU","title":"Idurba"},"description":"Identifiant de version du document GPU"},{"name":"zone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Libellé de zone (ex. UA, UC91Jb2)","title":"Zone"},"description":"Libellé de zone (ex. UA, UC91Jb2)"},{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Mot-clé (ex. 'hauteur maximale')","title":"Query"},"description":"Mot-clé (ex. 'hauteur maximale')"},{"name":"max_extraits","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":8,"title":"Max Extraits"}},{"name":"context_lignes","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":30,"title":"Context Lignes"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Reglement Api Reglement Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ccn/conventions":{"get":{"tags":["droit"],"summary":"Ccn Conventions","description":"Conventions collectives (conteneurs KALI) par IDCC ou titre.","operationId":"ccn_conventions_api_ccn_conventions_get","parameters":[{"name":"idcc","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IDCC exact (4 chiffres, ex. 1285)","title":"Idcc"},"description":"IDCC exact (4 chiffres, ex. 1285)"},{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Substring du titre de la convention","title":"Query"},"description":"Substring du titre de la convention"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ccn Conventions Api Ccn Conventions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ccn/search":{"get":{"tags":["droit"],"summary":"Ccn Search","description":"Recherche plein-texte dans les articles de CCN, filtrable par IDCC.","operationId":"ccn_search_api_ccn_search_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","description":"Recherche FTS (websearch : phrases, OR, -)","title":"Query"},"description":"Recherche FTS (websearch : phrases, OR, -)"},{"name":"idcc","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtre IDCC exact (ex. 3090)","title":"Idcc"},"description":"Filtre IDCC exact (ex. 3090)"},{"name":"en_vigueur","in":"query","required":false,"schema":{"type":"boolean","description":"Ne garder que les versions en vigueur","default":true,"title":"En Vigueur"},"description":"Ne garder que les versions en vigueur"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","pattern":"^(relevance|recent)$","default":"relevance","title":"Sort"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ccn Search Api Ccn Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ccn/article/{kali_id}":{"get":{"tags":["droit"],"summary":"Ccn Article","description":"Texte intégral d'un article de CCN + contexte (avenant, convention, source_url).","operationId":"ccn_article_api_ccn_article__kali_id__get","parameters":[{"name":"kali_id","in":"path","required":true,"schema":{"type":"string","title":"Kali Id"}},{"name":"max_chars","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":30000,"title":"Max Chars"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ccn Article Api Ccn Article  Kali Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accords/text/{acco_id}":{"get":{"tags":["accords & marchés"],"summary":"Accords Text","description":"Texte intégral d'un accord d'entreprise (ACCOTEXT…) via Légifrance.\n\nLe texte est rendu par tranches de `max_chars` : un accord de fusion dépasse\ncouramment 48 000 caractères, et la tranche par défaut s'arrête au milieu des\narticles sur le temps de travail. Sans `offset`, la fin d'un accord — congés,\nrémunération, frais de santé et prévoyance, dispositions finales — était\nsimplement inatteignable (signal #322). `next_offset` (absent = fin du texte)\ndonne la tranche suivante.","operationId":"accords_text_api_accords_text__acco_id__get","parameters":[{"name":"acco_id","in":"path","required":true,"schema":{"type":"string","title":"Acco Id"}},{"name":"max_chars","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":30000,"title":"Max Chars"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Position de départ dans le texte (pagination)","default":0,"title":"Offset"},"description":"Position de départ dans le texte (pagination)"},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Accords Text Api Accords Text  Acco Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/loi/codes":{"get":{"tags":["droit"],"summary":"Loi Codes","description":"Codes consolidés couverts : alias court → LEGITEXT + libellé.","operationId":"loi_codes_api_loi_codes_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Loi Codes Api Loi Codes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/loi/article":{"get":{"tags":["droit"],"summary":"Loi Article","description":"La version d'un article de code en vigueur à une date donnée.","operationId":"loi_article_api_loi_article_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","description":"Alias court (CT, CC…) ou LEGITEXT","title":"Code"},"description":"Alias court (CT, CC…) ou LEGITEXT"},{"name":"num","in":"query","required":true,"schema":{"type":"string","description":"Numéro d'article (ex. L1242-2, 1128)","title":"Num"},"description":"Numéro d'article (ex. L1242-2, 1128)"},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"YYYY-MM-DD — version en vigueur à cette date (défaut : aujourd'hui)","title":"Date"},"description":"YYYY-MM-DD — version en vigueur à cette date (défaut : aujourd'hui)"},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Loi Article Api Loi Article Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/loi/versions":{"get":{"tags":["droit"],"summary":"Loi Versions","description":"Timeline complète d'un article (toutes ses versions, chronologiques).","operationId":"loi_versions_api_loi_versions_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","description":"Alias court (CT, CC…) ou LEGITEXT","title":"Code"},"description":"Alias court (CT, CC…) ou LEGITEXT"},{"name":"num","in":"query","required":true,"schema":{"type":"string","description":"Numéro d'article","title":"Num"},"description":"Numéro d'article"},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Loi Versions Api Loi Versions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/loi/search":{"get":{"tags":["droit"],"summary":"Loi Search","description":"Recherche plein-texte dans les articles des codes consolidés.","operationId":"loi_search_api_loi_search_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","description":"Recherche FTS (websearch : phrases, OR, -)","title":"Query"},"description":"Recherche FTS (websearch : phrases, OR, -)"},{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtre code (alias ou LEGITEXT)","title":"Code"},"description":"Filtre code (alias ou LEGITEXT)"},{"name":"en_vigueur","in":"query","required":false,"schema":{"type":"boolean","description":"Ne garder que les versions applicables aujourd'hui","default":true,"title":"En Vigueur"},"description":"Ne garder que les versions applicables aujourd'hui"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Loi Search Api Loi Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/juris/search":{"get":{"tags":["droit"],"summary":"Juris Search","description":"Recherche unifiée dans la jurisprudence, tri pertinence × autorité.","operationId":"juris_search_api_juris_search_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","description":"Recherche FTS (websearch : phrases, OR, -)","title":"Query"},"description":"Recherche FTS (websearch : phrases, OR, -)"},{"name":"fond","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(cass|inca|capp|jade|constit|cnil|cedh|cjue|jade_live|judilibre)$"},{"type":"null"}],"title":"Fond"}},{"name":"juridiction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtre juridiction (ILIKE, ex. 'cassation', 'appel de Paris')","title":"Juridiction"},"description":"Filtre juridiction (ILIKE, ex. 'cassation', 'appel de Paris')"},{"name":"date_min","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"YYYY-MM-DD","title":"Date Min"},"description":"YYYY-MM-DD"},{"name":"date_max","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"YYYY-MM-DD","title":"Date Max"},"description":"YYYY-MM-DD"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}},{"name":"expand","in":"query","required":false,"schema":{"type":"boolean","description":"Expansion thésaurus juridique (rappel)","default":false,"title":"Expand"},"description":"Expansion thésaurus juridique (rappel)"},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Juris Search Api Juris Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/juris/decision/{decision_id}":{"get":{"tags":["droit"],"summary":"Juris Decision","description":"Texte intégral d'une décision (JURITEXT/CETATEXT/CONSTEXT/CNILTEXT) + source_url.","operationId":"juris_decision_api_juris_decision__decision_id__get","parameters":[{"name":"decision_id","in":"path","required":true,"schema":{"type":"string","title":"Decision Id"}},{"name":"max_chars","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":30000,"title":"Max Chars"}},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Juris Decision Api Juris Decision  Decision Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/sources":{"get":{"tags":["administration"],"summary":"Admin Sources","description":"État des règlements cachés : fraîcheur, volumétrie, scannés (supervision).","operationId":"admin_sources_api_admin_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Admin Sources Api Admin Sources Get"}}}}}}},"/api/admin/runs":{"get":{"tags":["administration"],"summary":"Admin Runs","description":"Historique des ingestions (succès / erreurs / scannés) — supervision.","operationId":"admin_runs_api_admin_runs_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Admin Runs Api Admin Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin":{"get":{"tags":["administration"],"summary":"Admin Ui","description":"Console de supervision (server-rendered, thème Otomata). Gate origin-side oto:admin.\n\nSuperset de la page publique : le catalogue complet des 27 sources + la fraîcheur\ndes 5 traités (via `status.compute`), PLUS les panneaux opérationnels (stock SIRENE,\ncache règlement avec fiches, dernières ingestions).","operationId":"admin_ui_admin_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/admin/{idurba}":{"get":{"tags":["administration"],"summary":"Admin Detail","description":"Fiche détail d'un règlement (métadonnées + PDF + ingestions + recherche). Gated CF Access.","operationId":"admin_detail_admin__idurba__get","parameters":[{"name":"idurba","in":"path","required":true,"schema":{"type":"string","title":"Idurba"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/reglement/{idurba}":{"get":{"tags":["administration"],"summary":"Admin Reglement Extraits","description":"Extraits d'un règlement pour la supervision (réutilise la même logique que /api/reglement).\nGated Cloudflare Access (pas de clé API — usage UI admin).","operationId":"admin_reglement_extraits_api_admin_reglement__idurba__get","parameters":[{"name":"idurba","in":"path","required":true,"schema":{"type":"string","title":"Idurba"}},{"name":"zone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone"}},{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"}},{"name":"max_extraits","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":6,"title":"Max Extraits"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Admin Reglement Extraits Api Admin Reglement  Idurba  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/reglement/{idurba}/raw":{"get":{"tags":["administration"],"summary":"Admin Reglement Raw","description":"**Texte brut** extrait du PDF (la source pdftotext), tel quel. `max_chars=0` = intégral ;\nsinon aperçu tronqué. Gated Cloudflare Access. C'est la source que la recherche parcourt.","operationId":"admin_reglement_raw_api_admin_reglement__idurba__raw_get","parameters":[{"name":"idurba","in":"path","required":true,"schema":{"type":"string","title":"Idurba"}},{"name":"max_chars","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"0 = texte intégral ; sinon tronque (aperçu)","default":0,"title":"Max Chars"},"description":"0 = texte intégral ; sinon tronque (aperçu)"}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccordsSearchBody":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"},"themes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Themes"},"nature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nature"},"siren":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siren"},"siret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siret"},"idcc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idcc"},"departement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"},"latest_per_siret":{"type":"boolean","title":"Latest Per Siret","default":false},"sort_by":{"type":"string","title":"Sort By","default":"date"},"sort_dir":{"type":"string","title":"Sort Dir","default":"desc"},"limit":{"type":"integer","title":"Limit","default":50},"offset":{"type":"integer","title":"Offset","default":0},"tranche_effectifs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tranche Effectifs"},"categories_entreprise":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Categories Entreprise"},"exclude_categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Exclude Categories"},"scan_cap":{"type":"integer","title":"Scan Cap","default":5000}},"type":"object","title":"AccordsSearchBody"},"AidesSearchBody":{"properties":{"insee":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insee"},"code_postal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Postal"},"effectif":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Effectif"},"nature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nature"},"echeance_avant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Echeance Avant"},"q":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"},"limit":{"type":"integer","title":"Limit","default":50},"offset":{"type":"integer","title":"Offset","default":0}},"type":"object","title":"AidesSearchBody"},"AnnuaireSearchBody":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"},"secteur":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secteur"},"ville":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ville"},"type_annuaire":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type Annuaire"},"all_results":{"type":"boolean","title":"All Results","default":false},"per_page":{"type":"integer","title":"Per Page","default":100}},"type":"object","title":"AnnuaireSearchBody"},"BanSearchBody":{"properties":{"adresse":{"type":"string","title":"Adresse"},"limit":{"type":"integer","title":"Limit","default":5},"postcode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postcode"},"citycode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Citycode"}},"type":"object","required":["adresse"],"title":"BanSearchBody"},"BatiBody":{"properties":{"geometry":{"additionalProperties":true,"type":"object","title":"Geometry"},"contenance_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Contenance M2"}},"type":"object","required":["geometry"],"title":"BatiBody"},"BdnbBody":{"properties":{"code_commune":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Commune"},"siren":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siren"},"batiment_groupe_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Batiment Groupe Id"},"departement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement"},"emprise_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Emprise Min"},"limit":{"type":"integer","title":"Limit","default":50}},"type":"object","title":"BdnbBody"},"BegesBody":{"properties":{"siren":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siren"},"naf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf"},"annee":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Annee"},"departement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement"},"obligee":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Obligee"},"size":{"type":"integer","title":"Size","default":100}},"type":"object","title":"BegesBody"},"BodaccBatchBody":{"properties":{"sirens":{"items":{"type":"string"},"type":"array","title":"Sirens"},"famille":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Famille"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size"}},"type":"object","required":["sirens"],"title":"BodaccBatchBody"},"DpeAddrBody":{"properties":{"adresse":{"type":"string","title":"Adresse"},"radius_m":{"type":"integer","title":"Radius M","default":200},"type_batiment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type Batiment"},"etiquette":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Etiquette"},"surface_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Surface Min"},"surface_max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Surface Max"},"limit":{"type":"integer","title":"Limit","default":50}},"type":"object","required":["adresse"],"title":"DpeAddrBody"},"DpeStatsBody":{"properties":{"code_commune":{"type":"string","title":"Code Commune"},"type_batiment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type Batiment"}},"type":"object","required":["code_commune"],"title":"DpeStatsBody"},"DpeTertiaireBody":{"properties":{"code_commune":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Code Commune"},"departement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement"},"secteur":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secteur"},"etiquette":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Etiquette"},"surface_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Surface Min"},"size":{"type":"integer","title":"Size","default":100}},"type":"object","title":"DpeTertiaireBody"},"DvfComparablesAddrBody":{"properties":{"adresse":{"type":"string","title":"Adresse"},"radius_m":{"type":"integer","title":"Radius M","default":500},"type_local":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type Local"},"surface_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Surface Min"},"surface_max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Surface Max"},"years":{"type":"integer","title":"Years","default":3},"limit":{"type":"integer","title":"Limit","default":50}},"type":"object","required":["adresse"],"title":"DvfComparablesAddrBody"},"DvfComparablesBody":{"properties":{"code_commune":{"type":"string","title":"Code Commune"},"type_local":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type Local"},"surface_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Surface Min"},"surface_max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Surface Max"},"years":{"type":"integer","title":"Years","default":2},"limit":{"type":"integer","title":"Limit","default":50}},"type":"object","required":["code_commune"],"title":"DvfComparablesBody"},"DvfStatsBody":{"properties":{"code_commune":{"type":"string","title":"Code Commune"},"type_local":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type Local"},"years":{"type":"integer","title":"Years","default":3}},"type":"object","required":["code_commune"],"title":"DvfStatsBody"},"EnedisBody":{"properties":{"annee":{"type":"string","title":"Annee"},"dept":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dept"},"secteur":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secteur"},"naf2":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Naf2"},"code_commune":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Code Commune"},"code_epci":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Epci"},"min_mwh":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Mwh"},"max_mwh":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Mwh"},"limit":{"type":"integer","title":"Limit","default":200}},"type":"object","required":["annee"],"title":"EnedisBody"},"EnedisSitesBody":{"properties":{"annee":{"type":"string","title":"Annee"},"dept":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dept"},"code_commune":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Code Commune"},"code_epci":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Epci"},"naf2":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Naf2"},"secteur":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secteur"},"min_mwh":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Mwh"},"limit":{"type":"integer","title":"Limit","default":-1}},"type":"object","required":["annee"],"title":"EnedisSitesBody"},"EntreprisesSearchBody":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"},"naf":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Naf"},"departement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement"},"code_postal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Postal"},"commune":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Commune"},"employees":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Employees"},"categorie_entreprise":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Categorie Entreprise"},"ca_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ca Min"},"ca_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ca Max"},"idcc":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Idcc"},"nature_juridique":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Nature Juridique"},"page":{"type":"integer","title":"Page","default":1},"per_page":{"type":"integer","title":"Per Page","default":25}},"type":"object","title":"EntreprisesSearchBody"},"EssmsSearchBody":{"properties":{"region_libelle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Libelle"},"departement_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement Code"},"secteur":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secteur"},"type_structure":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type Structure"},"statut_juridique":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Statut Juridique"},"annee_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Annee Min"},"annee_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Annee Max"},"limit":{"type":"integer","title":"Limit","default":50}},"type":"object","title":"EssmsSearchBody"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IrepBody":{"properties":{"annee":{"type":"integer","title":"Annee","default":2024},"departement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement"},"code_commune":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Commune"},"siret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siret"},"polluant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Polluant"},"milieu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Milieu","default":"Air"},"limit":{"type":"integer","title":"Limit","default":50}},"type":"object","title":"IrepBody"},"OdreConsoBody":{"properties":{"annee":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Annee"},"dept":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dept"},"code_commune":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Code Commune"},"min_mwh":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Mwh"},"site_unique":{"type":"boolean","title":"Site Unique","default":true},"limit":{"type":"integer","title":"Limit","default":-1}},"type":"object","required":["annee"],"title":"OdreConsoBody"},"SearchBody":{"properties":{"naf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf"},"code_commune":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Commune"},"code_postal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Postal"},"departement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement"},"denomination":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Denomination"},"enseigne":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enseigne"},"active_only":{"type":"boolean","title":"Active Only","default":true},"sieges_only":{"type":"boolean","title":"Sieges Only","default":false},"tranche_effectifs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tranche Effectifs"},"limit":{"type":"integer","title":"Limit","default":100},"offset":{"type":"integer","title":"Offset","default":0}},"type":"object","title":"SearchBody"},"SirensBody":{"properties":{"sirens":{"items":{"type":"string"},"type":"array","title":"Sirens"}},"type":"object","required":["sirens"],"title":"SirensBody"},"SitadelBody":{"properties":{"kind":{"type":"string","title":"Kind","default":"logements"},"communes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Communes"},"dept":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dept"},"an_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"An Min"},"an_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"An Max"},"siren":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siren"},"siret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siret"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":50}},"type":"object","title":"SitadelBody"},"TendersSearchBody":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"},"descripteur":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Descripteur"},"departement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Departement"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"},"type_marche":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type Marche"},"limit":{"type":"integer","title":"Limit","default":50},"offset":{"type":"integer","title":"Offset","default":0}},"type":"object","title":"TendersSearchBody"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"AlerteDonnee":{"type":"string","title":"Alerte de donnée","enum":["non_declare","valeur_aberrante","invraisemblable","valeur_indisponible","saturation_probable"],"description":"Vocabulaire **fermé**. Marque une valeur qui ne peut pas être servie telle quelle : la lire comme un montant sûr est une erreur.\n\nChaque code porte sa certitude — un code en `_probable` INFÈRE, les autres rapportent un fait établi.\n\n- `non_declare` *(établi par la donnée elle-même — aucun jugement)* — L'amont code l'absence de donnée par un 0. Ce n'est pas un chiffre d'affaires nul : l'entreprise peut en avoir un, et considérable.\n- `valeur_aberrante` *(établi par la donnée elle-même — aucun jugement)* — Montant négatif, illisible comme produit d'exploitation. La valeur reçue est conservée sous `ca_valeur_amont` pour inspection.\n- `invraisemblable` *(explication la plus probable, mesurée mais pas certaine)* — Le montant ne tient pas face à l'effectif (`ca_par_salarie` donne le ratio). Causes possibles mais NON établies : dépôt libellé en milliers, association vivant de subventions, holding portant les salariés d'un groupe. Le constat est nommé, jamais sa cause.\n- `valeur_indisponible` *(établi par la donnée elle-même — aucun jugement)* — Le poste porte la sentinelle du parquet (INT32_MAX) : sa valeur n'est pas lisible. Le poste EXISTE dans le dépôt — ne pas confondre avec un poste absent. Les codes concernés sont listés dans `postes_indisponibles`.\n- `saturation_probable` *(explication la plus probable, mesurée mais pas certaine)* — Le poste indisponible s'explique très probablement par un débordement INT32 (montant > 2 147 483 647), et non par une absence : la ligne porte d'autres montants très élevés, ou sature massivement. La valeur exacte est détruite en amont et ne peut pas être reconstituée."},"CertitudeAlerte":{"type":"string","title":"Certitude d'une alerte","enum":["infere","prouve"],"description":"Ce que le code engage. `prouve` = lu dans la donnée ; `infere` = déduit, un faux positif reste possible. Une annotation qui surestimerait sa certitude serait le défaut qu'elle corrige."}}},"tags":[{"name":"entreprise","description":"Ce qu'un SIREN ouvre : identité, dirigeants, annonces légales, bilans, index égalité. Le point d'entrée d'une qualification."},{"name":"accords & marchés","description":"Index possédés par le service — accords d'entreprise (ACCO, ~387k depuis 2017) et marchés publics (BOAMP, fenêtre roulante)."},{"name":"sirene","description":"Stock SIRENE local (~35 M établissements) : recherche et enrichissement en masse, sans clé INSEE."},{"name":"droit","description":"Fonds DILA : conventions collectives (KALI), codes consolidés versionnés, jurisprudence."},{"name":"foncier","description":"Adresse, cadastre, bâti, transactions, diagnostics, solaire, consommation électrique."},{"name":"urbanisme","description":"Zonage PLU, risques, quartiers prioritaires, recensement IRIS."},{"name":"santé","description":"Établissements sanitaires et médico-sociaux (FINESS, HAS)."},{"name":"aides","description":"Aides publiques aux entreprises (dumps quotidiens, cache 24 h)."},{"name":"écosystème","description":"Annuaire French Tech, appels à projets, financements."},{"name":"administration","description":"Console interne : sources, ingestions, règlements. Session admin oto, pas la clé S2S."},{"name":"exploitation","description":"Santé du service, fraîcheur des sources, historique d'ingestion."}]}