Guide pratique

Trois API de géocodage gratuites, seize adresses françaises, trois résultats

Il existe trois API de géocodage gratuites qui comptent pour une adresse française : le géocodage de la Géoplateforme de l'IGN, qui sert la Base adresse nationale, Nominatim, le moteur d'OpenStreetMap, et Photon, bâti par komoot sur les mêmes données. Le 27 septembre 2026, nous leur avons envoyé les seize mêmes requêtes : des adresses de ville, des fautes de frappe, deux adresses qui n'existent pas, des hameaux et des cols. Aucun des trois ne gagne partout. La Géoplateforme est imbattable sur une adresse postale et se trompe sur un sommet ; Nominatim trouve les lieux mais pas les fautes ; Photon tolère les fautes et invente parfois. Le tableau, le script et les règles d'usage sont ci-dessous.

Par Lucas Tesnier, co-fondateur de La Trace · Publié le 27 septembre 2026 · Lecture 10 minutes

  • 16requêtes françaises envoyées aux trois moteurs, le 27 septembre 2026Mesure La Trace, script ci-dessous
  • 1requête par seconde au plus sur le serveur public de Nominatim, avec un User-Agent qui vous identifiePolitique d'usage de Nominatim, OSM Foundation, consultée le 27/09/2026
  • 50requêtes par seconde et par adresse IP sur le géocodage de la GéoplateformeDocumentation du géocodage, IGN, consultée le 27/09/2026
  • 5,1 Gola base Photon prête à l'emploi pour la France et Monaco, mise à jour le 22/09/2026Service de téléchargement Photon, GraphHopper, consulté le 27/09/2026

L'essentiel

  • Pour une adresse postale française avec numéro, la Géoplateforme (BAN) est la référence : 4 bonnes réponses sur 4 adresses existantes, faute de frappe comprise, dans notre test.
  • Pour un hameau, un col, un refuge ou un monument, Nominatim et Photon font mieux que la recherche d'adresses de la Géoplateforme, qui cherche une rue portant le nom. Son index poi corrige une partie de l'écart.
  • Photon tolère les fautes de frappe, Nominatim non. Mais face à une adresse inexistante, seul Nominatim n'a rien répondu : c'était la bonne réponse.
  • Les serveurs publics de Nominatim et de Photon ne sont pas faits pour un site en production : 1 requête par seconde pour l'un, un usage « raisonnable » sans garantie pour l'autre.
  • Héberger Photon soi-même demande Java 21, une base de 5,1 Go pour la France et de la mémoire : c'est la voie pour un volume réel sur des données OpenStreetMap.

Trois API gratuites, trois réponses à la même question

Le 27 septembre 2026, à 19 h 09, nous avons demandé « Monastère de la Grande Chartreuse » aux trois moteurs. Nominatim et Photon ont rendu le monastère, à Saint-Pierre-de-Chartreuse, au même point à un mètre près. La Géoplateforme a rendu « Rue de la Briane, 12000 Le Monastère », dans l'Aveyron, à 277 kilomètres. Aucun des trois n'est en panne. Ils ne cherchent pas la même chose.

La Géoplateforme interroge par défaut la Base adresse nationale : des numéros, des voies, des lieux-dits adressés, avec un score de confiance. Nominatim et Photon interrogent OpenStreetMap, où un monastère, un col ou un refuge est un objet à part entière. Le bon choix dépend donc de ce que tapent vos visiteurs, bien avant la question du prix.

Sur une carte de randonnée, ils tapent rarement une adresse postale.

Le test : seize requêtes, le 27 septembre 2026

Chaque requête est partie telle qu'un visiteur l'aurait tapée, sans nettoyage, vers data.geopf.fr/geocodage/search, nominatim.openstreetmap.org/search (limité à la France) et photon.komoot.io/api (limité à l'emprise de la France métropolitaine), en ne gardant que le premier résultat. Une pause d'au moins une seconde séparait chaque appel. Nous avons jugé chaque réponse à la main : bon si le point tombe sur l'objet demandé, partiel si c'est le bon secteur mais pas le bon objet, faux sinon. Le score est celui de la Géoplateforme, de 0 à 1. Nominatim et Photon n'en rendent pas d'équivalent.

RequêteGéoplateforme (BAN)NominatimPhoton
20 avenue de Ségur 75007 ParisBon (0,97)BonBon
8 boulevard du Port 80000 AmiensBon (0,97)BonBon
1 place de la Comédie 34000 MontpellierBon (0,97)BonPartiel : la place, à 103 m
12 rue de la Répiblique 69002 LyonBon, faute corrigée (0,78)Aucun résultatBon, faute corrigée
3 rue du Général de Gaule 38380 Saint-Laurent-du-Pont (voie absente de la BAN dans cette commune)Faux : Saint-Laurent-Médoc, Gironde (0,60)Aucun résultat, à raisonFaux : une caserne de la commune
10 rue des Lilas Grenble (voie absente à Grenoble)Faux : Toulouse (0,60)Aucun résultat, à raisonFaux : Bouranton, Aube
Col de Porte 38700 SarcenasBon : la route du col (0,66)BonBon : le col lui-même
Habert de Chamechaude Sarcenas (commune erronée)Faux : un chemin à 2,2 km (0,56)Aucun résultatBon, commune corrigée
La Ruchère 73670 Saint-Christophe-sur-Guiers (code postal erroné)Partiel : la route, à 549 m (0,62)BonBon
Monastère de la Grande ChartreuseFaux : Le Monastère, Aveyron (0,37)BonBon
Valchevrière Villard-de-LansPartiel : un chemin à 2,1 km (0,67)BonBon
Refuge du Goûter Saint-Gervais-les-BainsFaux : une route à 9,4 km (0,60)BonPartiel : l'aiguille voisine, à 52 m
Le Planet 74400 ArgentièrePartiel : Argentière, à 637 m (0,53)BonBon
Pic du Midi de BigorreFaux : une allée à Rieumes, Haute-Garonne (0,68)BonBon
Chamonix Mont BlancBon (0,95)BonBon
Gare de GrenobleBon : la place de la Gare (0,57)BonFaux : la gare de Gières, à 5,4 km
Bilan sur 167 bons, 3 partiels, 6 faux12 bons, 2 refus justes, 2 sans résultat11 bons, 2 partiels, 3 faux

Deux limites, dites franchement. Seize requêtes ne font pas une étude : c'est un échantillon choisi pour faire apparaître les différences, lourd en montagne parce que c'est le terrain de nos cartes. Et les temps de réponse, mesurés depuis un seul poste en France, ne sont qu'un ordre de grandeur : un dixième de seconde en médiane pour la Géoplateforme, un quart de seconde pour Photon, une demi-seconde pour Nominatim.

Ce que le tableau dit de chaque moteur

La Géoplateforme a rendu les quatre adresses postales existantes sans une erreur, faute de frappe comprise, avec un score de 0,97 sur les adresses exactes. C'est la référence pour une adresse de livraison, un formulaire, un fichier de clients. Son piège est ailleurs : elle rend toujours quelque chose. « 3 rue du Général de Gaule » à Saint-Laurent-du-Pont, une voie qui n'existe pas dans la BAN de cette commune, est parti en Gironde avec un score de 0,60. Un score sous 0,7 se vérifie, toujours.

Sur les lieux, la recherche d'adresses de la Géoplateforme cherche une voie qui porte le nom : la « route du col de Porte », les « allées du Pic du Midi » d'une commune de Haute-Garonne. Relancées avec index=poi, les requêtes du monastère, du Pic du Midi, du refuge du Goûter et du habert de Chamechaude ont toutes trouvé le bon lieu, avec un score proche de 0,9. La page migration vers la Géoplateforme détaille ces index.

Nominatim est le plus prudent. Il n'a jamais rendu de point faux, et il a répondu « rien » aux deux adresses inventées. En échange, une seule lettre de travers suffit à le perdre : « Répiblique » n'a rien donné.

Photon est le plus tolérant. Il a corrigé la faute de Lyon et retrouvé le habert malgré une commune erronée. Il invente aussi : une caserne pour une rue qui n'existe pas, la gare de Gières pour la gare de Grenoble. Sur un col, il rend le point du col, pas le centre du village voisin, et c'est pour cela que la recherche de lieux de nos cartes passe par une instance Photon que nous hébergeons, bornée à la France.

Aucun ne remplace les autres. Le bon montage en combine deux.

À emporter : la checklist de mise en production d'une carte web

Recevoir la checklist

Ce que « gratuit » permet vraiment

La politique d'usage du serveur public de Nominatim, consultée le 27 septembre 2026, tient en quelques lignes : une requête par seconde au maximum, un User-Agent ou un Referer qui identifie votre application, une attribution visible, des résultats mis en cache. Elle interdit aussi d'en faire une autocomplétion côté client. Elle prévient enfin qu'elle peut changer sans préavis, et que les applications commerciales doivent en tenir compte.

Photon public, servi par komoot, accepte les projets « tant que le nombre de requêtes reste raisonnable », sans chiffre, sans garantie de disponibilité, et bride ou bannit les usages intensifs. La Géoplateforme est la plus généreuse : 50 requêtes par seconde et par adresse IP, sans clé, et un géocodage par fichier CSV pour les volumes.

Le piège de la barre de recherche

Une barre de recherche qui interroge le géocodeur à chaque frappe envoie cinq à dix requêtes pour un seul mot. Branchée sur Nominatim public, elle viole la règle d'une requête par seconde dès le premier visiteur, et l'autocomplétion y est explicitement interdite. Pour une recherche au fil de la frappe, c'est la Géoplateforme, avec un délai d'attente entre deux frappes, ou votre propre Photon.

Les données d'OpenStreetMap sont sous licence ODbL : tout résultat de Nominatim ou de Photon affiché sur une carte porte la mention « © les contributeurs d'OpenStreetMap ». Prévoyez-la dès la maquette.

La carte du Parc naturel régional de Chartreuse, telle qu'elle s'intègre sur un site : on y cherche un col, un hameau ou un départ de sentier, et les itinéraires et les lieux autour s'affichent.

Héberger son propre Photon

Le dépôt de Photon, dans sa version 1.3.0 publiée le 7 août 2026, le dit lui-même : au-delà d'un usage modéré, montez votre instance, « aussi simple que télécharger deux fichiers ». C'est presque vrai. Les deux fichiers sont le programme Java et une base déjà préparée, que GraphHopper publie chaque semaine par pays. Pour la France et Monaco, la base de la version 1.x pesait 5,1 Go compressés au 22 septembre 2026.

La mémoire décide du reste. Le dépôt recommande 64 Go de RAM pour la planète entière, avec 95 Go de disque sur SSD, et permet de tourner avec moins en augmentant le tas Java (-Xmx). Pour la France seule, nous n'avons pas de mesure publiée à citer : partez d'une machine à 16 Go, observez, et laissez de la marge au système pour qu'il ne pagine jamais.

  1. 1

    Préparer la machine

    Java 21 ou plus récent, un disque SSD ou NVMe avec deux fois la place de la base, et pbzip2 pour décompresser plus vite. Le dépôt déconseille WinRAR pour l'extraction.

  2. 2

    Télécharger la base qui correspond à votre version

    Sur le serveur de téléchargement de GraphHopper (lien dans les sources), choisissez l'extrait Europe, France-Monacco, et la base de la même génération que votre programme : la base 1.x pour Photon 1.x. Une base d'une autre version ne démarre pas.

  3. 3

    Lancer le serveur

    Depuis le dossier qui contient photon_data, lancez java -jar photon-*.jar serve. L'API répond sur le port 2322. Activez le CORS avec -cors-origin si le navigateur l'appelle directement.

  4. 4

    Mettre à jour sans casser

    Téléchargez et décompressez la nouvelle base à côté de l'ancienne, échangez les dossiers, redémarrez, puis supprimez l'ancienne. Ne décompressez jamais par-dessus : le dépôt prévient que la base en sort corrompue.

  5. 5

    L'emballer dans Docker, si c'est votre standard

    Le dépôt ne publie pas d'image Docker officielle. Une image Java 21 qui copie le programme et monte photon_data en volume suffit ; la base reste hors de l'image, sinon chaque mise à jour pèse 5 Go.

Une image Docker minimale pour Photon (notre proposition, pas une image officielle)

FROM eclipse-temurin:21-jre
WORKDIR /photon
COPY photon-1.3.0.jar photon.jar
EXPOSE 2322
# La base se monte en volume : docker run -v /srv/photon_data:/photon/photon_data -p 2322:2322 ...
CMD ["java", "-Xmx8g", "-jar", "photon.jar", "serve", "-listen-ip", "0.0.0.0"]

Le même contenu, à imprimer : la checklist de mise en production d'une carte web

Recevoir la checklist

Refaire le test sur vos propres adresses

Le script ci-dessous est celui qui a produit le tableau, allégé. Il tourne sous Node 18 ou plus récent, sans dépendance, et respecte les règles des trois services : User-Agent explicite, une pause d'une seconde et plus entre deux appels. Remplacez notre liste par vingt requêtes tirées de votre propre barre de recherche : c'est le seul test qui compte.

Comparer la Géoplateforme, Nominatim et Photon sur une liste de requêtes

const UA = 'MonSite-geocoding-test/1.0 (contact@exemple.fr)';
const requetes = ['8 boulevard du Port 80000 Amiens', 'Col de Porte 38700 Sarcenas'];
const pause = ms => new Promise(r => setTimeout(r, ms));
const get = async url => (await fetch(url, { headers: { 'User-Agent': UA } })).json();

for (const q of requetes) {
  const e = encodeURIComponent(q);
  const ban = await get(`https://data.geopf.fr/geocodage/search?q=${e}&limit=1`);
  await pause(1100);
  const nom = await get(`https://nominatim.openstreetmap.org/search?q=${e}&format=jsonv2&limit=1&countrycodes=fr`);
  await pause(1100);
  const pho = await get(`https://photon.komoot.io/api/?q=${e}&limit=1&bbox=-5.5,41.2,9.8,51.2`);
  await pause(1100);
  const b = ban.features[0]?.properties;
  const p = pho.features[0]?.properties;
  console.log(q);
  console.log('  BAN      ', b ? `${b.label} (score ${b.score.toFixed(2)})` : 'aucun résultat');
  console.log('  Nominatim', nom[0]?.display_name ?? 'aucun résultat');
  console.log('  Photon   ', p ? [p.name, p.street, p.city].filter(Boolean).join(', ') : 'aucun résultat');
}

Avant de choisir un géocodeur pour votre site

  • Vingt requêtes réelles de vos visiteurs testées sur les trois moteurs
  • Un seuil de score sous lequel un résultat de la Géoplateforme est vérifié ou écarté
  • Aucune autocomplétion branchée sur Nominatim public
  • Un User-Agent qui identifie votre application sur Nominatim et Photon
  • Les résultats mis en cache de votre côté
  • La mention des contributeurs d'OpenStreetMap visible sur la carte
  • Un plan pour le jour où le serveur public vous bride : votre propre Photon, ou un service dédié

FAQ

Quelle est la meilleure API de géocodage gratuite pour la France ?

Pour une adresse postale, le géocodage de la Géoplateforme, qui sert la Base adresse nationale : sans clé, 50 requêtes par seconde, un score de confiance. Pour des lieux nommés, cols, hameaux, refuges, Nominatim et Photon ont fait mieux dans notre test du 27 septembre 2026. Beaucoup de sites combinent les deux.

Peut-on utiliser Nominatim gratuitement sur un site commercial ?

Le serveur public le tolère pour un faible volume, sous conditions : une requête par seconde au plus, un User-Agent identifiant, une attribution visible, un cache, et aucune autocomplétion. Sa politique prévient qu'elle peut changer sans préavis. Pour un site qui compte, hébergez votre propre instance ou passez par un fournisseur.

Quelle différence entre Nominatim et Photon ?

Les deux lisent OpenStreetMap. Nominatim est le moteur de référence du projet, strict sur l'orthographe. Photon, développé par komoot sur une base OpenSearch, tolère les fautes, sait chercher au fil de la frappe et se déploie à partir d'une base toute prête.

Faut-il une clé d'API pour géocoder une adresse française ?

Non, aucun des trois services testés n'en demande. La Géoplateforme limite par adresse IP ; Nominatim et Photon publics demandent de vous identifier par votre User-Agent.

Combien de mémoire faut-il pour héberger Photon ?

Le dépôt recommande 64 Go de RAM et 95 Go de disque pour la planète entière. Un extrait France pèse 5,1 Go compressé au 22 septembre 2026 et demande beaucoup moins de mémoire, sans chiffre officiel publié : mesurez sur votre machine avant de dimensionner.

Sources

  1. Géocodage, documentation des services de la Géoplateforme, IGN, limite de 50 requêtes par seconde et par IP, données BAN et BD TOPO, consulté le 27 septembre 2026
  2. Nominatim Usage Policy, OpenStreetMap Foundation, une requête par seconde, User-Agent, cache, attribution, autocomplétion interdite, consulté le 27 septembre 2026
  3. Dépôt komoot/photon, README, serveur public, Java 21, 95 Go et 64 Go de RAM pour la planète, bases prêtes, mise à jour, consulté le 27 septembre 2026
  4. Documentation d'usage de Photon, commande serve, port 2322, CORS, consulté le 27 septembre 2026
  5. Version 1.3.0 de Photon, publiée le 7 août 2026, consultée le 27 septembre 2026
  6. Bases Photon France-Monacco, GraphHopper, 5,1 Go pour la version 1.x, mise à jour du 22 septembre 2026, consulté le 27 septembre 2026
  7. Licence et attribution d'OpenStreetMap, ODbL, consulté le 27 septembre 2026
  8. Mesure La Trace : 16 requêtes envoyées à data.geopf.fr/geocodage/search, nominatim.openstreetmap.org/search et photon.komoot.io/api, le 27 septembre 2026 à 19 h 09 (heure de Paris), puis 4 requêtes relancées avec index=poi
Lucas Tesnier

Lucas Tesnier

Co-fondateur de La Trace

Lucas Tesnier a cofondé La Trace en 2023 et en dirige le produit et la technique. Il écrit sur ce qu'il voit chez les offices, les parcs et les hébergeurs qui publient leurs itinéraires : l'intégration, les données, les marchés publics.

Tous ses guides · Comment nous écrivons

À emporter

La checklist de mise en production d'une carte sur un site

Consentement et cookies, clés et quotas, tuiles, géocodage, accessibilité et performance : les points à vérifier avant de mettre une carte en ligne, avec une case par point.

Merci, la checklist part dans votre boîte mail.

Ouvrir la checklist

Votre carte doit trouver une rue, un hameau et un col ?

Une démonstration de trente minutes pour voir une carte La Trace posée sur votre site, avec sa recherche d'adresses et de lieux, ses itinéraires, et aucun quota de géocodage à surveiller de votre côté.

Demander une démonstration
Thank you! Your submission has been received!
L'envoi n'a pas abouti. Réessayez, ou écrivez-nous à contact@latrace.com.
Les VéloroutesPour les prosMes enregistrementsMes informationsBlogNous contacterAidez-nous à nous améliorer