Comment géocoder des adresses avec l'API BAN (Base Adresse Nationale)
Comment géocoder des adresses avec l'API BAN (Base Adresse Nationale)
Si vous travaillez avec des adresses françaises, la Base Adresse Nationale (BAN) est votre meilleur allié. C'est la base de données officielle des adresses françaises, maintenue par les collectivités locales et l'IGN (Institut Géographique National), et elle est entièrement gratuite. Que vous ayez besoin de géocoder une seule adresse ou d'en traiter des milliers, la BAN fournit des résultats fiables et précis sans les restrictions de licence ni les coûts des fournisseurs commerciaux.
Contrairement aux services de géocodage commerciaux qui facturent à la requête et limitent l'utilisation des données, la BAN offre un géocodage gratuit et illimité avec une licence ouverte permissive. C'est idéal pour les organisations françaises, les administrations publiques et tous ceux qui développent des applications centrées sur la France.
Mise à jour importante : Depuis 2025, l'API BAN a été migrée vers le service Géoplateforme géré par l'IGN. L'ancien point d'accès
api-adresse.data.gouv.frest obsolète et sera désactivé en janvier 2026. Ce tutoriel couvre les nouveaux points d'accès du service Géoplateforme. (Source)Note : La BAN ne gère que les adresses - elle ne géocode pas les noms d'entreprises, les monuments ou les POI (Points d'Intérêt). Pour cela, vous aurez besoin d'un fournisseur commercial comme Google Maps ou HERE. Mais pour le géocodage pur d'adresses en France, la BAN est inégalée.
Sommaire :
- Comment géocoder des adresses avec l'API BAN (Base Adresse Nationale)
- Introduction : Pourquoi utiliser la BAN ?
- Géocodage d'une adresse unique
- Géocodage par lots : traiter plusieurs adresses
- Méthode 1 : Utiliser l'interface web BAN
- Méthode 2 : Utiliser l'API BAN
- Utilisation et coût
- Limites de requêtes
- Conclusion
Introduction : Pourquoi utiliser la BAN ?
Avant de plonger dans le guide pratique, comprenons ce qui rend la BAN spéciale et quand il est pertinent de l'utiliser.
Qu'est-ce que la BAN ?
La Base Adresse Nationale (BAN) est la base de données officielle des adresses françaises. Elle contient plus de 25 millions d'adresses compilées à partir des données des collectivités locales de toutes les communes françaises, y compris les territoires d'outre-mer. Ce qui rend la BAN unique :
- Officielle - maintenue par les autorités françaises officielles (IGN et collectivités locales)
- Exhaustive - couvre toutes les communes de France, y compris les zones rurales et les petites localités
- Précise - fournit des coordonnées exactes au niveau du bâtiment plutôt que des estimations interpolées
- Gratuite - entièrement gratuite sans quotas ni frais
- Ouverte - licence totalement ouverte permettant le stockage, la réutilisation et la redistribution
Voici un exemple d'adresse BAN, affichée dans l'outil de visualisation officiel :

Quand utiliser la BAN
La BAN est parfaite quand vous : - Devez géocoder des adresses françaises (France métropolitaine et territoires d'outre-mer) - Voulez des données officielles maintenues par l'État - Devez éviter les restrictions de licence commerciales - Développez des applications nécessitant la validation d'adresses - Voulez géocoder de grands volumes sans vous soucier des coûts - Devez stocker et réutiliser les coordonnées de façon permanente
Pourquoi la BAN fonctionne si bien : Comme la BAN est mise à jour par les collectivités locales qui connaissent intimement leurs adresses, elle fournit des coordonnées exactes plutôt que des estimations. C'est particulièrement précieux pour les adresses rurales et les petites localités que les fournisseurs commerciaux pourraient mal gérer.
Quand la BAN n'est pas le bon choix
La BAN ne fonctionnera pas si vous devez : - Géocoder des adresses en dehors de la France - Trouver des entreprises, monuments ou POI par leur nom - Gérer des requêtes en langage naturel ou des fautes de frappe (la BAN nécessite des adresses bien formatées) - Obtenir des informations commerciales en temps réel (horaires, avis, etc.)
Pour ces cas d'usage, vous devriez considérer des fournisseurs commerciaux comme Google Maps, HERE ou Mapbox.
Géocodage d'une adresse unique
Commençons par le cas d'usage le plus simple : géocoder une seule adresse. C'est parfait quand vous devez convertir une adresse en coordonnées, par exemple pour une validation de formulaire ou une recherche ponctuelle.
Le nouveau point d'accès et ses paramètres (2026)
Le service de géocodage BAN est désormais fourni via le service Géoplateforme géré par l'IGN. Le point d'accès pour le géocodage direct est :
https://data.geopf.fr/geocodage/search
Important : L'ancien point d'accès api-adresse.data.gouv.fr est obsolète et sera désactivé en janvier 2026. Vous devriez migrer vers le nouveau point d'accès Géoplateforme. (Source)
Ce point d'accès /search accepte les paramètres suivants :
-
q(obligatoire) : L'adresse à géocoder -
limit(optionnel) : Nombre de résultats à retourner (10 par défaut) -
autocomplete(optionnel) : Active le mode autocomplétion (true par défaut)
D'autres paramètres sont disponibles pour préciser le contexte de géocodage (ville, code postal, etc.), mais je ne les couvrirai pas ici. Pour la liste complète des paramètres, consultez la documentation OpenAPI.
Exemple de requête
Voici un exemple avec l'adresse "118 Rue St Charles, Paris" :
GET https://data.geopf.fr/geocodage/search?q=118+Rue+St+Charles,+Paris&limit=1
Et la réponse :
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [2.283496, 48.844484] }, "properties": { "label": "118 Rue Saint-Charles 75015 Paris", "score": 0.7424048484848483, "housenumber": "118", "id": "75115_8513_00118", "name": "118 Rue Saint-Charles", "postcode": "75015", "citycode": "75115", "x": 647415.92, "y": 6860731.63, "city": "Paris", "district": "Paris 15e Arrondissement", "context": "75, Paris, Île-de-France", "type": "housenumber", "importance": 0.83312, "street": "Rue Saint-Charles", "_type": "address" } } ], "query": "118 rue st charles, Paris" }
Dans cet exemple, nous avons ajouté une limite de 1 pour n'obtenir qu'un seul résultat. L'API retourne sa meilleure estimation pour l'adresse, classée par score de correspondance.
Que se passe-t-il ? L'API recherche dans sa base de données les adresses correspondant à votre requête et retourne une liste de correspondances possibles. La réponse inclut les coordonnées exactes, l'adresse formatée et des métadonnées supplémentaires comme le code postal et la ville.
La réponse
L'API retourne une FeatureCollection GeoJSON. Chaque feature contient :
-
ID - l'identifiant unique de l'adresse dans la base BAN (
properties.id) -
Coordonnées - latitude et longitude dans le champ
geometry.coordinates(format :[longitude, latitude]). Elles sont aussi disponibles en tant quexetydans l'objetproperties. -
Adresse formatée - le libellé standardisé de l'adresse dans
properties.label -
Composants de l'adresse -
housenumber,street,city,postcode,citycode, etc. Le numéro de rue et le nom de rue seront absents s'ils n'ont pas été trouvés. - Importance - importance estimée de l'adresse dans la base de données (échelle 0-1)
- Score - score de pertinence indiquant la qualité de la correspondance entre votre requête et le résultat (échelle 0-1)
Note : Les résultats sont retournés par ordre de score (le plus élevé en premier), donc le premier résultat est généralement la meilleure correspondance. Cependant, vérifiez toujours les composants de l'adresse (surtout la ville et le code postal) pour vous assurer que le résultat est correct, comme nous l'expliquerons dans la section suivante.
Le score de correspondance
L'API retourne un score de confiance entre 0 et 1. Cependant, un score élevé ne signifie pas que l'adresse est correcte, et il ne signifie certainement pas que l'adresse existe.
Prenons notre exemple "118 Rue St Charles, Paris". Le premier résultat a un score de 0,74, ce qui semble raisonnable. Mais regardez le second résultat à 0,62 - il pointe vers "Rue Charles Paris 33130 Bègles". C'est à 500 km dans la banlieue de Bordeaux !
Encore plus subtil : cherchez "17 Rue St Charles, Paris" et vous obtiendrez un score respectable de 0,74... sauf que cette adresse n'existe pas. L'API a trouvé quelque chose qui ressemble, mais elle fait correspondre des chaînes de caractères, pas vérifier la réalité.
La conclusion ? Vérifiez toujours les résultats du géocodage. Le score vous indique à quel point votre requête correspond à quelque chose dans la base de données, pas si ce quelque chose est ce que vous vouliez vraiment.
Géocodage par lots : traiter plusieurs adresses
Quand vous avez de nombreuses adresses à géocoder - que ce soit un tableur avec des adresses clients ou un export de base de données - vous voudrez utiliser le géocodage par lots. La BAN offre deux approches : une interface web pour les tâches ponctuelles et une API pour l'automatisation.
Méthode 1 : Utiliser l'interface web BAN
Le moyen le plus simple de géocoder un fichier CSV est via l'interface web de la BAN. C'est parfait si vous n'êtes pas développeur ou si vous faites un traitement par lots ponctuel.
Voici comment procéder :
- Préparez votre fichier CSV - Incluez des colonnes avec les données d'adresse (numéro de rue, nom de rue, code postal, ville). Exportez depuis Excel si nécessaire.
- Téléversez sur l'outil CSV BAN - Sélectionnez quelles colonnes contiennent vos composants d'adresse (ex. Numéro, Rue, Ville).
-
Téléchargez les résultats - Récupérez vos données originales plus les coordonnées, adresses formatées et la colonne
result_status.

Et voilà : une fois que vous avez spécifié les colonnes, le traitement se lance automatiquement.
Méthode 2 : Utiliser l'API BAN
Pour l'automatisation, l'intégration dans des applications ou le traitement régulier par lots, vous voudrez utiliser directement l'API BAN. Cela vous donne un contrôle total sur le processus et vous permet de construire des workflows personnalisés.
Comprendre le géocodage par lots avec l'API
Le service Géoplateforme fournit un point d'accès dédié au géocodage par lots qui accepte les fichiers CSV. C'est l'approche recommandée pour traiter plusieurs adresses de façon programmatique.
Le point d'accès batch est disponible à https://data.geopf.fr/geocodage/batch/.
La requête doit être une requête POST avec le fichier CSV dans le corps de la requête. Elle accepte plusieurs paramètres importants :
- columns : les colonnes à concaténer pour l'adresse. Peut être laissé vide pour utiliser toutes les colonnes.
- indexes : la colonne à utiliser comme index. C'est utile pour pouvoir identifier l'adresse dans le fichier CSV original.
Note : Vous pouvez toujours faire plusieurs requêtes au point d'accès /search, une pour chaque adresse, mais ce sera moins efficace que d'utiliser le point d'accès batch.
Exemple de requête
Voici un exemple de fichier CSV avec les adresses à géocoder :
id,rue,street,city,postal_code 1,12.0,Avenue des Champs-Élysées,Paris,75008 2,45.0,Rue de la République,Lyon,69002 3,78.0,Boulevard de la Croisette,Cannes,6400 4,,,???????, 5,156.0,Rue Saint-Honoré,Paris,75001
Dans ce cas, les colonnes à concaténer pour l'adresse sont : rue, street, city, postal_code, donc nous pouvons spécifier columns=rue,street,city,postal_code.
La requête devrait être :
POST https://data.geopf.fr/geocodage/search/csv data=addresses.csv columns=rue,street,city,postal_code
La réponse sera aussi un fichier CSV, retournant à la fois les données originales et les données géocodées avec de nouvelles colonnes toutes préfixées par result_ (result_score, result_score_next, result_label, result_type, result_id, result_housenumber, result_name, result_street, result_postcode, result_city, result_context, result_citycode, result_oldcitycode, result_oldcity, result_district, result_status).
id;rue;street;city;postal_code;longitude;latitude;result_score;result_score_next;result_label;result_type;result_id;result_housenumber;result_name;result_street;result_postcode;result_city;result_context;result_citycode;result_oldcitycode;result_oldcity;result_district;result_status 1;12;Avenue des Champs-Élysées;Paris;75008;2.302859;48.871285;0.8596027272727272;0.6467871900826445;Avenue des Champs Elysées 75008 Paris;street;75108_1733;;Avenue des Champs Elysées;Avenue des Champs Elysées;75008;Paris;75, Paris, Île-de-France;75108;;;Paris 8e Arrondissement;ok 2;45;Rue de la République;Lyon;69002;4.835859;45.761928;0.9157595187165776;0.6972321052631578;45 Rue de la République 69002 Lyon;housenumber;69382_6005_00045;45;45 Rue de la République;Rue de la République;69002;Lyon;69, Rhône, Auvergne-Rhône-Alpes;69382;;;Lyon 2e Arrondissement;ok 3;78;Boulevard de la Croisette;Cannes;06400;7.032336;43.54684;0.9329795565410199;;78 Boulevard de la Croisette 06400 Cannes;housenumber;06029_0880_00078;78;78 Boulevard de la Croisette;Boulevard de la Croisette;06400;Cannes;06, Alpes-Maritimes, Provence-Alpes-Côte d'Azur;06029;;;;ok 4;;;???????;;;;;;;;;;;;;;;;;;;skipped 5;156;Rue Saint-Honoré;Paris;75001;2.339989;48.862052;0.9164409090909089;0.6147660173160173;156 Rue Saint-Honoré 75001 Paris;housenumber;75101_8635_00156;156;156 Rue Saint-Honoré;Rue Saint-Honoré;75001;Paris;75, Paris, Île-de-France;75101;;;Paris 1er Arrondissement;ok
La colonne result_status contient "ok" si l'adresse a été géocodée avec succès, "skipped" si l'adresse n'a pas pu être géocodée.
Intéressant ! En mode CSV par lots, l'API ne retourne qu'un seul résultat par ligne. Cependant, vous pouvez toujours connaître le score de la deuxième meilleure correspondance dans la colonne result_score_next.
Utilisation et coût
La BAN est entièrement gratuite, sans coûts cachés ni quotas. C'est un excellent choix pour les organisations de toute taille.
Structure des coûts
- Utilisation de l'API : GRATUIT - Aucun frais pour les requêtes API
- Pas de quotas - Traitez autant d'adresses que nécessaire
- Pas de frais d'abonnement - Aucun coût mensuel ou annuel
- Téléchargement de la base : GRATUIT - Vous pouvez télécharger l'intégralité de la base BAN gratuitement
Pourquoi la BAN est gratuite : La BAN est un service public maintenu par les agences gouvernementales françaises. Elle est financée par les contribuables et fournie en données ouvertes au bénéfice de la société et de l'économie françaises.
Si vous traitez des millions d'adresses ou avez besoin d'un accès hors ligne, vous pouvez télécharger la base de données BAN complète et exécuter votre propre géocodage localement.
Pour une comparaison détaillée avec les fournisseurs commerciaux (Google Maps, HERE, Mapbox...), consultez mon guide Meilleurs fournisseurs de géocodage pour la France.
Limites de requêtes
La BAN autorise 50 requêtes par seconde par IP. Si vous dépassez cette limite, vous obtiendrez des erreurs HTTP 429. Limitez-vous à ~40/seconde et tout ira bien.
Conclusion
La BAN est gratuite, précise et ouverte. Pour les adresses françaises, c'est difficile à battre. N'oubliez pas : migrez vers le nouveau point d'accès Géoplateforme (data.geopf.fr) avant janvier 2026 si vous utilisez encore l'ancien.
Référence complète de l'API : Documentation OpenAPI Géoplateforme.
Pour avoir une vue d'ensemble complète des fournisseurs de géocodage pour la France et une comparaison entre eux, consultez notre guide : Meilleurs fournisseurs de géocodage pour la France.
Dernière mise à jour : 2025-01-15 | Mis à jour par : François Andrieux | Sources : Documentation API BAN, Outil de géocodage CSV, Annonce de migration de l'API, Capacités Géoplateforme, Documentation OpenAPI Géoplateforme
Avertissement : Ce guide est fourni à titre informatif. Consultez toujours la documentation officielle de la BAN et de Géoplateforme pour les points d'accès et conditions actuels.