Try France Address Verification live
Forward Geocoding - Address to Coordinates
About This Tool
Convert a single French address to geographic coordinates using the official French government API. Enter any valid French address to get latitude and longitude coordinates.
Geocoding Results
Reverse Geocoding - Coordinates to Address
About This Tool
Convert geographic coordinates (latitude, longitude) to a human-readable French address. Enter coordinates within French territory to get the nearest address.
Reverse Geocoding Results
Bulk Address Geocoding
About This Tool
Process multiple French addresses in bulk by uploading a CSV or Excel file. Perfect for large datasets that need geocoding.
Upload Address File
Drag and drop your CSV or Excel file here, or click to browse
Bulk Processing Format
Your file should contain at least one column with French addresses. Supported formats:
- Single address column (e.g., "12 Rue Watteau, 75013 Paris")
- Separated columns (address, city, postcode, country)
- Maximum 10,000 addresses per batch
Bulk Geocoding Results
| Original Address | Latitude | Longitude | Formatted Address | City | Postcode | Status |
|---|
Bulk Reverse Geocoding
About This Tool
Convert multiple coordinates to addresses in bulk by uploading a CSV or Excel file with latitude and longitude columns.
Upload Coordinates File
Drag and drop your CSV or Excel file here, or click to browse
Coordinates Format
Your file should contain latitude and longitude columns. Ensure coordinates are within French territories for optimal results.
- Latitude: Decimal degrees (e.g., 48.828)
- Longitude: Decimal degrees (e.g., 2.356)
- France bounding box: 41.3° to 51.1° N, -5.1° to 9.6° E
Bulk Reverse Geocoding Results
| Latitude | Longitude | Formatted Address | Street | City | Postcode | Country | Status |
|---|
API Documentation
About the API
Integrate geocoding services directly into your applications using the official French government API (api-adresse.data.gouv.fr). RESTful endpoints with JSON responses.
Quick Start
Base URL
Response Format
Content-Type: application/json
Authentication
The API is open and free to use without authentication for basic usage. For high-volume requests, consider using our proxy service.
Rate Limits
- 10 requests per second per IP
- 1000 requests per hour per IP
- Bulk requests: Contact for limits
Headers
User-Agent: YourApp/1.0
Accept: application/json
Accept-Language: fr
API Endpoints
GET Forward Geocoding
FREEConvert addresses to geographic coordinates
Parameters
| Parameter | Type | Description |
|---|---|---|
| q | string | Address query (required) |
| limit | integer | Max results (default: 5, max: 20) |
| autocomplete | 0/1 | Enable autocomplete |
Example Request
GET https://api.atlasgeotech/search/?q=12+Rue+Watteau+75013+Paris&limit=5&autocomplete=1
Example Response
{
"type": "FeatureCollection",
"version": "draft",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [2.356, 48.828]
},
"properties": {
"label": "12 Rue Watteau 75013 Paris",
"score": 0.95,
"housenumber": "12",
"street": "Rue Watteau",
"postcode": "75013",
"city": "Paris"
}
}
]
}
GET Reverse Geocoding
FREEConvert coordinates to addresses
Parameters
| Parameter | Type | Description |
|---|---|---|
| lat | float | Latitude (required) |
| lon | float | Longitude (required) |
| type | string | housenumber/street/city |
Example Request
GET https://api.atlasgeotech/reverse?lat=48.828&lon=2.356&type=housenumber
Example Response
{
"type": "FeatureCollection",
"version": "draft",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [2.356, 48.828]
},
"properties": {
"label": "12 Rue Watteau 75013 Paris",
"distance": 15,
"housenumber": "12",
"street": "Rue Watteau",
"postcode": "75013",
"city": "Paris"
}
}
]
}
POST Batch Geocoding
PREMIUMProcess multiple addresses in bulk
Request Format
# CSV Format
address;postcode;city
12 Rue Watteau;75013;Paris
8 Boulevard du Palais;75001;Paris
1 Parvis Notre-Dame;75004;Paris
Example Request
POST https://api.atlasgeotech/search/csv/
Content-Type: multipart/form-data
// Form data with CSV file
data=@addresses.csv
columns=address
citycode=postcode
Example Response
{
"type": "FeatureCollection",
"features": [
{
"properties": {
"result_label": "12 Rue Watteau 75013 Paris",
"result_score": 0.95,
"latitude": 48.828,
"longitude": 2.356
}
}
]
}
GET Address Completion
FREEAutocomplete address suggestions
Use Cases
- Address search boxes
- Form autocomplete
- Real-time suggestions
Example Request
GET https://api.atlasgeotech/search/?q=12+Rue+Watteau+Par&autocomplete=1
Example Response
{
"type": "FeatureCollection",
"features": [
{
"properties": {
"label": "12 Rue Watteau 75013 Paris",
"context": "75, Paris, Île-de-France"
}
}
]
}
HTTP Response Codes
| Code | Description | When |
|---|---|---|
| 200 | OK | Successful request |
| 400 | Bad Request | Invalid parameters |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Internal Server Error | Server error |
Code Examples
Forward Geocoding with cURL
curl -X GET \
"https://api.atlasgeotech/search/?q=12+Rue+Watteau+75013+Paris&limit=5" \
-H "Accept: application/json" \
-H "User-Agent: YourApp/1.0"
Reverse Geocoding with cURL
curl -X GET \
"https://api.atlasgeotech/reverse?lat=48.828&lon=2.356" \
-H "Accept: application/json"
Forward Geocoding with Python
import requests
def geocode_address(address):
url = "https://api.atlasgeotech/search/"
params = {
"q": address,
"limit": 5,
"autocomplete": 1
}
headers = {
"User-Agent": "YourApp/1.0",
"Accept": "application/json"
}
response = requests.get(url, params=params, headers=headers)
return response.json()
Forward Geocoding with JavaScript
async function geocodeAddress(address) {
const url = new URL('https://api.atlasgeotech/search/');
url.searchParams.append('q', address);
url.searchParams.append('limit', '5');
url.searchParams.append('autocomplete', '1');
const response = await fetch(url, {
headers: {
'Accept': 'application/json',
'User-Agent': 'YourApp/1.0'
}
});
return await response.json();
}
Forward Geocoding with PHP
function geocodeAddress($address) {
$url = "https://api.atlasgeotech/search/";
$params = [
'q' => $address,
'limit' => 5,
'autocomplete' => 1
];
$query = http_build_query($params);
$context = stream_context_create([
'http' => [
'header' => "Accept: application/json\r\n" .
"User-Agent: YourApp/1.0\r\n"
]
]);
$response = file_get_contents($url . '?' . $query, false, $context);
return json_decode($response, true);
}
Best Practices
Performance
- Use appropriate limit parameter
- Cache results when possible
- Implement exponential backoff for retries
- Use bulk endpoints for large datasets
Reliability
- Implement error handling
- Monitor rate limits
- Use retry logic for transient failures
- Validate responses before processing