Open Data — entry 011 of 44
French Address Search
geo.api.gouv.fr's address search now redirects to Etalab's Base Adresse Nationale API at api-adresse.data.gouv.fr, which geocodes and reverse-geocodes French addresses down to the housing-unit level from the country's authoritative address registry. Responses come back as GeoJSON FeatureCollections scored by match confidence, and the service is free and keyless for reasonable use.
The Base Adresse Nationale (BAN) geocoder — France's authoritative government address registry — turns free-text French addresses into ranked, scored GeoJSON matches down to the individual housenumber, and reverse-geocodes coordinates back to the nearest address. It's free and keyless, but it is rate-limited and fussier about its `q`/`limit` parameters than the other three entries in this quartet.
GreatAPIs Score
Auth quickstart
- No API key or account is required — search and reverse-geocoding are both public and keyless.
- CORS is open on every response: a probe in this run confirmed `access-control-allow-origin: *` both on a bare request and on one carrying an `Origin: https://example.com` header.
- The provider's own docs publish a per-IP rate limit of 50 requests/second ("50 appels/IP/seconde"), so cache results and back off on a 429 rather than retrying immediately.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Search an address
GEThttps://api-adresse.data.gouv.fr/search/?q=8+bd+du+port&limit=1
{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[2.062821,49.031624]},"properties":{"label":"8 Boulevard du Port 95000 Cergy","score":0.4924265550239234,"housenumber":"8","id":"95127_1448_00008","banId":"8e6b04d7-f6fd-48a1-80be-4ec984a286e8","name":"8 Boulevard du Port","postcode":"95000","citycode":"95127","x":631468.28,"y":6881710.34,"city":"Cergy","context":"95, Val-d'Oise, Île-de-France","type":"housenumber","importance":0.67985,"depcode":"95","street":"Boulevard du Port","_type":"address"}}],"query":"8 bd du port"}limit=1 was requested directly in this run's probe (not truncated after capture) — the single returned Feature is complete and unmodified. A real search without `limit` returns up to 10 candidates by default, ranked by descending `properties.score`.
Developer reference
https://api-adresse.data.gouv.fr50 requests/second per IP, documented by the provider as "50 appels/IP/seconde" -- exceeding it returns a 429 on every request for a 5-second block whose remaining duration is reported in a retry-after header, decaying once the caller backs off
Gotchas & limits
- `q` is required — a live probe of `/search/` with no `q` parameter returned `400 {"code":400,"message":"Failed parsing query","detail":["q: required param"]}` rather than an empty result set or a default listing.
- A query with no real match still returns `200` with an empty `features` array (confirmed live with a nonsense query string), not a 404 or an error body — check `features.length`, not the HTTP status, to detect "no results".
- `limit` defaults to 10 and caps at 50 — a live probe with `limit=100` was rejected with `400 {"code":400,"message":"Failed parsing query","detail":["limit: must be an integer between 1 and 50"]}`. Results are always ordered by descending `properties.score`.
- The rate limit is documented (not live-triggered in this run, to avoid hammering a shared public service) as 50 requests/second per IP; exceeding it returns a 429 on every request for a 5-second block whose remaining duration is reported in a `retry-after` header, decaying once the caller backs off — per the provider's own "Limite d'usage" documentation.