geoportail-urbanisme.gouv.fr APIgeoportail-urbanisme.gouv.fr ↗
Retrieve French parcel details, geocoding, and urban planning documents for any address via the Géoportail de l'Urbanisme API. Covers DU and SUP layers.
curl -X GET 'https://api.parse.bot/scraper/9496e96d-d5eb-400c-9fdf-18fb948f127e/search_address?address=place+Landouzy%2C+63400+Chamali%C3%A8res' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace geoportail-urbanisme-gouv-fr-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.géoportail_de_l_urbanisme_api import Urbanisme, AddressReport, Geocoding, Parcel, Document, DocumentFile
urbanisme = Urbanisme()
report = urbanisme.addressreports.search(address="place Landouzy, 63400 Chamalières")
print(report.search_query, report.geocoding.city)
print(report.geocoding.lon, report.geocoding.lat, report.geocoding.zipcode)
if report.parcel:
print(report.parcel.id, report.parcel.section, report.parcel.number, report.parcel.city)
for doc in report.associated_documents:
print(doc.id, doc.title, doc.type, doc.files_count)
for f in report.target_document_files:
print(f.name, f.title, f.path, f.download_url)
Search for a French address and retrieve parcel details, geocoding information, and associated urban planning documents. Geocodes the address, reverse-geocodes to identify the cadastral parcel, then queries urban planning layers (DU and SUP) for associated documents including zoning rules, land use classifications, and infrastructure servitudes. Returns transport infrastructure noise classification files when present.
| Param | Type | Description |
|---|---|---|
| address | string | The French address to search for (e.g. 'place Landouzy, 63400 Chamalières', 'Rue de la Paix, 75002 Paris'). |
{
"type": "object",
"fields": {
"parcel": "object containing parcel id, departmentcode, municipalitycode, section, sheet, number, city, distance, score",
"geocoding": "object containing lon, lat, fulltext, city, zipcode",
"search_query": "string - the address that was searched",
"associated_documents": "array of objects with id, title, type, files_count for each urban planning document found at the location",
"target_document_files": "array of objects with name, title, path, download_url, parent_document for files matching transport infrastructure noise classification criteria"
},
"sample": {
"data": {
"parcel": {
"id": "63075000AL0463",
"city": "Chamalières",
"score": 0.9983,
"sheet": "01",
"number": "0463",
"section": "AL",
"distance": 17,
"departmentcode": "63",
"municipalitycode": "075"
},
"geocoding": {
"lat": 45.767845,
"lon": 3.05885,
"city": "Chamalières",
"zipcode": "63400",
"fulltext": "place Landouzy, 63400 Chamalières"
},
"search_query": "place Landouzy, 63400 Chamalières",
"associated_documents": [
{
"id": "5b28b1689d7ce8d3cbca791a552166d3",
"type": "PLUi",
"title": "Plan Local d'Urbanisme intercommunal (PLUi) CLERMONT AUVERGNE METROPOLE",
"files_count": 119
}
],
"target_document_files": [
{
"name": "246300701_6022_arrete_de_classement_sonore_des_infrastructures_20251219.pdf",
"path": "Annexes",
"title": "6022 arrete de classement sonore des infrastructures",
"download_url": "https://www.geoportail-urbanisme.gouv.fr/api/document/5b28b1689d7ce8d3cbca791a552166d3/download/246300701_6022_arrete_de_classement_sonore_des_infrastructures_20251219.pdf",
"parent_document": "Plan Local d'Urbanisme intercommunal (PLUi) CLERMONT AUVERGNE METROPOLE"
}
]
},
"status": "success"
}
}About the geoportail-urbanisme.gouv.fr API
The Géoportail de l'Urbanisme API gives developers access to 9 structured response fields covering parcel identity, geocoordinates, and associated urban planning documents for any French address. The single search_address endpoint accepts a free-text French address and returns the matching cadastral parcel, full geocoding data, and linked planning documents including zoning (DU) and easement (SUP) layers from France's official urban planning register.
What the API returns
The search_address endpoint accepts a single address parameter — a free-text French address string such as 'place Landouzy, 63400 Chamalières' — and returns three main data groups. The geocoding object contains resolved coordinates (lon, lat), the normalised fulltext address, city, and zipcode. The parcel object identifies the cadastral parcel at that location: id, departmentcode, municipalitycode, section, sheet, number, city, distance, and a score indicating match confidence.
Planning documents
The associated_documents array lists every urban planning document linked to that parcel, with each entry carrying an id, title, type, and files_count. The target_document_files array goes further and surfaces individual files — name, title, path, download_url, and parent_document — specifically filtered to transport infrastructure noise classification documents (classements sonores). This makes it possible to check noise exposure obligations without manually navigating the Géoportail portal.
Coverage and data source
All data originates from the official French Géoportail de l'Urbanisme platform, which aggregates planning documents submitted by French municipalities and intercommunal authorities. Coverage depends on local authorities having uploaded their documents; not every commune has a complete digital file. The score field in the parcel object and distance reflect how closely the resolved parcel matches the queried address, which is useful for detecting ambiguous or rural addresses.
The geoportail-urbanisme.gouv.fr API is a managed, monitored endpoint for geoportail-urbanisme.gouv.fr — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when geoportail-urbanisme.gouv.fr changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official geoportail-urbanisme.gouv.fr API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Verify zoning classification for a French property before submitting a building permit application.
- Enrich a real estate listing database with parcel identifiers (
departmentcode,section,number) for French addresses. - Check transport infrastructure noise classifications via
target_document_filesdownload URLs for environmental due diligence. - Geocode French addresses and retrieve cadastral parcel IDs in a single call for land registry reconciliation.
- Audit planning document availability (
files_count) across multiple communes to identify gaps in municipal compliance. - Automate retrieval of SUP (servitudes d'utilité publique) documents for legal and notarial property searches.
- Map urban planning document density by municipality using
associated_documentscounts aggregated over many addresses.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Géoportail de l'Urbanisme offer an official developer API?+
What does the `parcel` object actually identify, and how reliable is the match?+
parcel object returns the cadastral parcel resolved at the queried address, including departmentcode, municipalitycode, section, sheet, and number — the five components that uniquely identify a French parcel in the cadastre. The score field reflects geocoding confidence and distance shows how far the matched parcel centroid is from the resolved coordinates, so you can filter out low-confidence matches programmatically.Does the API return the full content or text of planning documents?+
id, title, type, files_count) and, for noise classification files, direct download_url links to the actual files hosted on Géoportail. Document text extraction is not covered. You can fork this API on Parse and revise it to fetch and parse document content from those download URLs.Are all French communes covered?+
associated_documents array. Rural or recently merged communes may have partial data. You can fork this API on Parse and revise it to add a fallback lookup against the national cadastre API for parcels with no associated documents.Can I search by parcel ID or coordinates instead of address?+
search_address endpoint only accepts a free-text address string via the address parameter. Coordinate- or parcel-reference-based lookup is not exposed. You can fork this API on Parse and revise it to accept lon/lat inputs or a cadastral reference directly.