Geocoding — entry 018 of 80
API Découpage Administratif (API Geo)
Etalab's Découpage Administratif API looks up and cross-references France's administrative hierarchy — communes, EPCIs, départements, and régions — by name, postcode, SIREN, or geographic coordinates, with no API key required. The stored api.gouv.fr/api/geoapi.html link had gone stale, 301-redirecting to a generic data.gouv.fr listing page instead of the live docs; the real service and interactive documentation are hosted at geo.api.gouv.fr. A live Origin-header probe against the real /communes endpoint confirms open CORS, reflecting back whatever Origin is sent.
Etalab's Découpage Administratif API is a free, keyless lookup for France's administrative divisions. Query it by commune name, postcode, SIREN, or coordinates, and it returns communes, EPCIs, départements, and régions as JSON or GeoJSON.
GreatAPIs Score
Auth quickstart
- No API key or sign-up needed. Every request is a plain GET against
geo.api.gouv.fr.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
Communes2
GET/communesRecherche des communes
| Name | In | Required | Type |
|---|---|---|---|
codePostal | query | no | string |
lat | query | no | number |
lon | query | no | number |
nom | query | no | string |
boost | query | no | string |
code | query | no | string |
siren | query | no | string |
codeEpci | query | no | string |
codeDepartement | query | no | string |
codeRegion | query | no | string |
codeParent | query | no | string |
ancienCode | query | no | string |
zone | query | no | array |
type | query | no | array |
fields | query | no | array |
format | query | no | string |
geometry | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Liste de communes | — |
400 | Erreur. Requête mal formée | Error |
GET/communes/{code}Récupérer les informations concernant une commune
| Name | In | Required | Type |
|---|---|---|---|
code | path | yes | string |
fields | query | no | array |
format | query | no | string |
geometry | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Informations concernant une commune | Commune |
400 | Erreur. Requête mal formée | Error |
404 | Commune introuvable | Error |
Communes associées et déléguées2
GET/communes_associees_delegueesRecherche des communes associées et/ou déléguées
| Name | In | Required | Type |
|---|---|---|---|
lat | query | no | number |
lon | query | no | number |
nom | query | no | string |
code | query | no | string |
codeEpci | query | no | string |
codeDepartement | query | no | string |
codeRegion | query | no | string |
type | query | no | array |
fields | query | no | array |
format | query | no | string |
geometry | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Liste de communes associées et/ou déléguées | — |
400 | Erreur. Requête mal formée | Error |
GET/communes_associees_deleguees/{code}Récupérer les informations concernant une commune associée ou déléguée
| Name | In | Required | Type |
|---|---|---|---|
code | path | yes | string |
fields | query | no | array |
format | query | no | string |
geometry | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Informations concernant une commune associée ou déléguée | Commune |
400 | Erreur. Requête mal formée | Error |
404 | Commune associée ou déléguée introuvable | Error |
Départements4
GET/departementsRecherche des départements
| Name | In | Required | Type |
|---|---|---|---|
code | query | no | string |
codeRegion | query | no | string |
nom | query | no | string |
zone | query | no | array |
fields | query | no | array |
| Status | Description | Schema |
|---|---|---|
200 | Le ou les départements | — |
400 | Erreur. Requête mal formée | Error |
GET/departements/{code}Récupérer les informations concernant un département
| Name | In | Required | Type |
|---|---|---|---|
code | path | yes | string |
fields | query | no | array |
| Status | Description | Schema |
|---|---|---|
200 | Informations concernant un département | Departement |
400 | Erreur. Requête mal formée | Error |
404 | Département introuvable | Error |
GET/departements/{code}/communesRenvoi les communes d'un département
| Name | In | Required | Type |
|---|---|---|---|
code | path | yes | string |
fields | query | no | array |
format | query | no | string |
geometry | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Liste des communes du département | — |
400 | Erreur. Requête mal formée | Error |
404 | Département introuvable | Error |
GET/regions/{code}/departementsRenvoi les départements d'une région
| Name | In | Required | Type |
|---|---|---|---|
code | path | yes | string |
fields | query | no | array |
| Status | Description | Schema |
|---|---|---|
200 | Liste des départements de la région | — |
400 | Erreur. Requête mal formée | Error |
404 | Département introuvable | Error |
EPCI3
GET/epcisRecherche des EPCI
| Name | In | Required | Type |
|---|---|---|---|
nom | query | no | string |
boost | query | no | string |
codeEpci | query | no | string |
codeDepartement | query | no | string |
codeRegion | query | no | string |
zone | query | no | array |
fields | query | no | array |
format | query | no | string |
geometry | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Liste des EPCI | — |
400 | Erreur. Requête mal formée | Error |
GET/epcis/{code}Récupérer les informations concernant un EPCI
| Name | In | Required | Type |
|---|---|---|---|
code | path | yes | string |
fields | query | no | array |
format | query | no | string |
geometry | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Informations concernant un EPCI | Epci |
400 | Erreur. Requête mal formée | Error |
404 | EPCI introuvable | Error |
GET/epcis/{code}/communesRenvoi les communes d'un EPCI
| Name | In | Required | Type |
|---|---|---|---|
code | path | yes | string |
fields | query | no | array |
format | query | no | string |
geometry | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Liste des communes de l'EPCI | — |
400 | Erreur. Requête mal formée | Error |
404 | EPCI introuvable | Error |
Régions2
GET/regionsRecherche des régions
| Name | In | Required | Type |
|---|---|---|---|
code | query | no | string |
nom | query | no | string |
zone | query | no | array |
fields | query | no | array |
| Status | Description | Schema |
|---|---|---|
200 | La ou les régions | — |
400 | Erreur. Requête mal formée | Error |
GET/regions/{code}Récupérer les informations concernant une région
| Name | In | Required | Type |
|---|---|---|---|
code | path | yes | string |
fields | query | no | array |
| Status | Description | Schema |
|---|---|---|
200 | Informations concernant la région | Region |
400 | Erreur. Requête mal formée | Error |
404 | Région introuvable | Error |
Try it
Developer reference
https://geo.api.gouv.fr50 requests/second per IP address
- GET/communes
- GET/communes/{code}
- GET/departements/{code}/communes
Gotchas & limits
- The
fieldsparameter trims each result to the properties you list. With nofields, a live probe ofGET /communes?codePostal=75001returnednom,code,codeDepartement,siren,codeEpci,codeRegion,codesPostaux, andpopulation. Other properties, such assurface,centre, andcontour, only come back when you name them. A live probe withfields=nom,surface,centrereturned those 3 properties pluscode. The API addscodeeven when you leave it out. - A postcode with no match doesn't return a 404. A live probe of
GET /communes?codePostal=00000returned HTTP 200 with an empty JSON array[]. Check for an empty array rather than an error status. - CORS is open and reflects the caller's Origin rather than sending a fixed
*. A live probe withOrigin: https://example.comreturnedaccess-control-allow-origin: https://example.comin the response headers, so it's safe to call directly from browser JavaScript.
Availability
Changelog
- gained an OpenAPI spec