CIIFragments Studio is CII-accredited: recover up to 20% of your software development spendLearn more

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
In short

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.

Use cases

What our clients build on the API Adresse

01

Autocomplete in the funnel

The address is chosen instead of typed. Fewer undelivered parcels, fewer returned letters, fewer visits to the wrong place.

02

Automatic assignment of a visit

Coordinates and the municipality code decide the branch, the round or the right technician, with no human arbitration.

03

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.

04

Geographic eligibility check

Service area, franchisee territory, perimeter of a local aid: the answer lands while typing, not after submit.

For you

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.

Method

How we ship your Adresse connector

01

Scoping

Live typing or bulk backfill, required precision, acceptance rule. We decide before writing a line of code.

02

Development

Abstraction layer over the provider, base URL in configuration, debounce and minimum length, cancellation of stale requests.

03

Testing

Replay on your real addresses, measure of the match rate at house-number level, manual review of cases resolved at street level only.

04

Monitoring

Alert on 429s and on a drop in the match rate, periodic refresh of the directory. The database evolves every week.

The API

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.
Vocabulary

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.
Good to know

The real constraints of the API Adresse

01

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.

02

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.

03

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.

04

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.

Public or commercial

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.

CriterionAPI AdressePublic serviceCommercial geocoderGoogle, Mapbox
CoverageFrance, very fineWorld, variable quality
CostFree, open licenceBilled per request
Municipality INSEE codeYes, in the responseRarely, to be rebuilt
Cadastral parcelsYes, dedicated indexNo, except a paid option
Throughput50 per second per IPAccording to the contract
Service commitmentNo enforceable contractContract and support
The right caseYour addresses are in FranceYou 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.

Our expertise

What we measure on an Adresse integration

10 d
address autocomplete in production
50/s
throughput cap per IP address
1 field
typed instead of four in the form
4
senior developers on the project

We combine API Adresse with

The stack that surrounds geocoding on our projects.

  • React
  • PostgreSQL
  • PostGIS
  • Redis
  • Node.js
FAQ

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
Discuss my API Adresse project