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]}")
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
- French address autocomplete widget for e-commerce checkout forms
- Delivery route planner using official government address data
- Map of all French cities and towns with population lookup
- Postal code finder for any location in France
- Real estate search tool with precise building-level geocoding