
API integration for API Adresse
We build your API Adresse connector
We wire the National Address Database geocoding service into your forms: the user types three letters, picks a normalised address, and your database gets the INSEE code and coordinates.
- Senior product team
- public-data connectors in production
- from scoping to monitoring
What does the API Adresse do and why integrate it in a French application?
The API Adresse turns a freely typed address into a normalised address with GPS coordinates, INSEE code and postcode. It also works in reverse: finding the closest address to a GPS position. Built on the Base Adresse Nationale, it is free, requires no registration, and is maintained by IGN. You integrate it to make address input reliable in a form, geolocate a job site, or validate a delivery address before shipping a parcel, replacing a freeform text field with a verified, structured data point.
What our clients build on the API Adresse
Autocomplete in the funnel
The address is chosen instead of typed. Fewer undelivered parcels, fewer returned letters, fewer visits to the wrong place.
Automatic assignment of a visit
Coordinates and the municipality code decide the branch, the round or the right technician, with no human arbitration.
Backfill of an address history
Tens of thousands of addresses entered by hand are geocoded in batch, with a report of unresolved rows to handle.
Geographic eligibility check
Service area, franchisee territory, perimeter of a local aid: the answer lands while typing, not after submit.
What it changes in your forms
Engineering in service of a measurable outcome: fewer bad addresses, fewer wasted trips, data you can actually use.
The end of approximate addresses
The address is chosen from an official list rather than typed freely. It is the most banal and the most expensive class of bugs that disappears.
A shorter form
Three letters are enough. Street, postcode and municipality arrive together, and the user no longer mistypes a digit in the postcode.
Data ready to use
Every validated address comes out with its coordinates and INSEE code, so it can drive routing, pricing or reporting.
A directory without duplicates
A stable identifier replaces string comparison, which always fails between 8 bd du Port and 8 Boulevard du Port.
How we ship your Adresse connector
Scoping
Live typing or bulk backfill, required precision, acceptance rule. We decide before writing a line of code.
Development
Abstraction layer over the provider, base URL in configuration, debounce and minimum length, cancellation of stale requests.
Testing
Replay on your real addresses, measure of the match rate at house-number level, manual review of cases resolved at street level only.
Monitoring
Alert on 429s and on a drop in the match rate, periodic refresh of the directory. The database evolves every week.
What the API Adresse allows
- Address autocomplete
- Autocomplete mode is on by default, with optional filtering by postcode, municipality code or department and up to fifty results.
- Reverse geocoding
- A GPS position becomes a usable address: site check-in, proof of visit, incident report, intervention report.
- Batch processing
- A CSV file geocoded in one operation, in synchronous mode up to fifty megabytes, or in asynchronous mode for very large volumes.
- Three queryable indexes
- Addresses updated every week, points of interest and cadastral parcels every quarter, combinable in a single request.
The vocabulary of geocoding
- banId
- The stable identifier of an address in the National Address Database. It is the deduplication key of a directory: string comparison always fails between 8 bd du Port and 8 Boulevard du Port.
- citycode
- The municipality INSEE code, not the postcode. This is what should serve as the territorial matching key: a postcode can cover several municipalities, and Paris alone has twenty-one.
- type
- The match level: housenumber, street, locality or municipality. This is the field on which acceptance is decided, not the score. A delivery needs a house number, an intervention zone can live with a street.
- score
- A confidence indicator, not a probability, and with no universal threshold. An exact match can come back under 0.5 simply because the label exists in two municipalities. Rejecting it would be a mistake.
- autocomplete
- The parameter that defaults to 1, suited to live typing. For bulk geocoding or matching existing addresses, it must be set to 0 to get a match on the full string.
- index
- The set queried: address for the BAN, poi for points of interest, parcel for cadastral parcels. They can be combined, and their freshness differs: weekly for the first, quarterly for the others.
The real constraints of the API Adresse
The old URL still answers, and that is the trap
The documentation states that api-adresse.data.gouv.fr is deprecated and was due to be decommissioned at the end of January 2026. In August 2026 it still answered. An integration built on it works today and will stop without useful notice.
The score is not read as a probability
A perfect match at house-number level can come back under 0.5 when the query is ambiguous. Treating a score threshold as a rejection criterion means discarding correct addresses. The decision is taken on the type field.
One concurrent CSV call per IP address
Fifty calls per second on unit requests, but only one file job in flight per IP. A batch is designed with a queue and a lock, never by naively parallelising, or everything falls over.
An address is personal data
Sending a named customer file to a geocoding service is a processing activity to document. You send only the address columns, never the name, email or customer identifier, and you display the source attribution.
API Adresse or a commercial geocoder?
Two ways to normalise an address. The right choice depends on your geographic coverage and your volume, not on the engineering.
| Criterion | API AdressePublic service | Commercial geocoderGoogle, Mapbox |
|---|---|---|
| Coverage | France, very fine | World, variable quality |
| Cost | Free, open licence | Billed per request |
| Municipality INSEE code | Yes, in the response | Rarely, to be rebuilt |
| Cadastral parcels | Yes, dedicated index | No, except a paid option |
| Throughput | 50 per second per IP | According to the contract |
| Service commitment | No enforceable contract | Contract and support |
| The right case | Your addresses are in France | You address several countries |
The two combine: the API Adresse for France, a commercial provider as a fallback for international. The abstraction layer makes that choice reversible.
What we measure on an Adresse integration
The other public APIs
The open-data building blocks we wire most often alongside.
API AdresseWe build your API Adresse connectorThis page
Météo FranceForecasts and observations, when weather enters your business rules.
URSSAFSocial data and checks, for your employer and payroll journeys.
SNCF & transportSchedules, disruptions and transport data in your journeys.
API ParticulierWe build your API Particulier connector
France TravailWe build your France Travail connector
DVF & cadastreWe build your DVF and cadastre connector
LegifranceWe build your Légifrance connector
API GéoWe build your API Géo connectorWe combine API Adresse with
The stack that surrounds geocoding on our projects.
API Adresse integration: your questions
On the browser side, a field with a wait of about three hundred milliseconds, a minimum length of three characters and cancellation of stale requests: without that, a twenty-five character keystroke generates twenty-five calls, twenty-four of them useless and arriving out of order. On the server side, a proxy that carries the calls as soon as there is volume, since the limit is per IP address, plus a short cache on autocomplete and a long one on resolved addresses. In the database, we store the label, the INSEE code, the coordinates, the address identifier and the match level, keeping the user's original input beside them.
Yes. The Géoplateforme geocoding service is open, with no account and no API key, under Open Licence 2.0, which requires mentioning the source, IGN and National Address Database, wherever the geocoded data is displayed. One exception: asynchronous batch processing, for files up to one gigabyte, requires a Géoplateforme workspace and OAuth 2.0 authentication. This is not a simple parameter change compared with synchronous mode, it is another access journey, to plan at scoping.
Never block the user. The National Address Database does not contain everything and does not claim to: very recent addresses, hamlets, some industrial zones may only come back at street or municipality level. A product that requires a house number to continue blocks legitimate users. The rule we set is acceptance by match level, with the original input kept and a deferred geocoding queue. An ungeocoded address is a quality defect, not a reason to refuse signup.
The answer sits in a constraint few people know: CSV file geocoding allows only one concurrent call per IP address. You therefore do not parallelise, you split into successive batches with a queue, a lock and resume after interruption. Synchronous mode accepts files up to fifty megabytes, asynchronous mode up to one gigabyte but with an authenticated access journey. We quote this kind of backfill on the real volume of your file, after a test on a representative sample.
Yes, and it is the most profitable audit we do in this category. The API changed domain and operator: it is now served by IGN on data.geopf.fr, and the old address is officially deprecated with decommissioning announced for the end of January 2026. It was still answering in August 2026, which explains why so many integrations live without knowing it on a condemned URL. The check takes one request. The fix, if the base URL is in configuration, takes a few minutes.
An Adresse integration project?
Let's talk. 30 minutes to scope your need, check what the geocoding service actually allows and tell you honestly what is feasible.
Discuss my API Adresse project