French Address Search

Geocoding API · Government of France · Addresses & postal codes

TL;DR

The French government's api-adresse.data.gouv.fr provides official geocoding for all French addresses and postal codes. Search by street name, city, or postal code to get GPS coordinates (latitude/longitude), house numbers, and full address breakdowns. Returns GeoJSON format, no API key required. It is the authoritative source for French address data, used by La Poste and French government services — updated monthly from the official address database.

Quick start: https://api-adresse.data.gouv.fr/search/?q=paris

No API key needed — French open government data!

How to Use This API

1. Search by City or Street

Searching for "Paris" returns matching addresses with coordinates, postcodes, and city context:

https://api-adresse.data.gouv.fr/search/?q=paris

2. Search with Full Address and Limit

Search for a specific street in Lyon with 5 results:

https://api-adresse.data.gouv.fr/search/?q=5+Rue+de+la+R%C3%A9publique+Lyon&limit=5

Parameters: q (query), limit (max results, default 5), autocomplete (0 or 1), lat/lon (prefer results near this location).

3. Reverse Geocoding — Coordinates to Address

https://api-adresse.data.gouv.fr/reverse/?lon=2.349&lat=48.853

Returns the nearest address to the given GPS coordinate.

4. JavaScript — Autocomplete Search Field

function searchAddress(query) {
  const url = `https://api-adresse.data.gouv.fr/search/` +
    `?q=${encodeURIComponent(query)}&limit=5&autocomplete=1`;
  return fetch(url).then(r => r.json());
}
searchAddress('15 rue de la paix').then(data => {
  data.features.forEach(f => {
    console.log(f.properties.label, '→',
      f.geometry.coordinates[0] + ',' + f.geometry.coordinates[1]);
  });
});

5. Python — Batch Geocode from CSV

import requests, csv

addresses = ['5 Rue de la République Lyon', '10 avenue des Champs-Élysées Paris']
for addr in addresses:
    r = requests.get('https://api-adresse.data.gouv.fr/search/', params={'q': addr, 'limit': 1})
    if r.status_code == 200 and r.json()['features']:
        coords = r.json()['features'][0]['geometry']['coordinates']
        print(f"{addr} → {coords[1]}, {coords[0]}")
Search for Paris addresses: https://api-adresse.data.gouv.fr/search/?q=paris&limit=3

Frequently Asked Questions

What address formats are accepted?
Free-form French text queries work best. Examples: "15 rue de la paix", "mairie de lyon", "75001", "bordeaux". The API handles punctuation and accents automatically.
Does it cover overseas territories (DOM-TOM)?
Yes — Martinique, Guadeloupe, Réunion, French Guiana, Mayotte, Saint-Pierre-et-Miquelon, Wallis-et-Futuna, French Polynesia, and New Caledonia are all included.
What is the accuracy of the coordinates?
For validated addresses, coordinates are accurate to the building level (centroid of the building footprint). For street-level matches, the point falls on the street segment.
Are there usage limits?
The API is provided by the French government with no rate limits for reasonable use. There is no registration or API key required.
What is the GeoJSON structure?
Each feature includes geometry (coordinates), properties (label, score, housenumber, street, postcode, city, district, oldcity, context, citycode, id, type).
How current is the data?
The address database (Base Adresse Nationale) is updated monthly by the French government with contributions from municipalities and La Poste.

API Details

API URL
https://api-adresse.data.gouv.fr/search/
Documentation
geo.api.gouv.fr/adresse
Category
Geocoding
Authentication
Not Required
Geographic Coverage
France métropolitaine and DOM-TOM overseas territories
Response Format
GeoJSON — includes coordinates, score, and address components

What You Can Build