Aller au contenu principal

Démarrage rapide

Prérequis​

  • Une clé API (obtenez-en une ici)
  • Un outil pour émettre des requêtes HTTP (curl, ou le runtime de votre langage)
  • Python : Python 3.6+ (les exemples utilisent des f-strings et des annotations de type de la bibliothèque requests compatibles 3.6+)
  • JavaScript : Node.js 18+ (les exemples utilisent le await de premier niveau et les modules ES)
  • PHP : PHP 7.4+ avec l'extension curl activée (les exemples utilisent curl_init()). La plupart des distributions l'incluent ; sinon, installez php-curl via votre gestionnaire de paquets.

Effectuez votre première requête​

Remplacez gm_YOUR_API_KEY ci-dessous par la véritable clé API copiée depuis votre tableau de bord.

Pour cURL, passez-la directement dans le header. Pour Python, JavaScript et PHP, définissez d'abord la variable d'environnement GEOCODEME_API_KEY :

# macOS / Linux
export GEOCODEME_API_KEY="gm_YOUR_API_KEY"
# Windows PowerShell
$env:GEOCODEME_API_KEY = "gm_YOUR_API_KEY"
:: Windows Command Prompt
set GEOCODEME_API_KEY=gm_YOUR_API_KEY
curl -H "X-Api-Key: gm_YOUR_API_KEY" \
"https://api.geocodeme.net/v1/geocode?q=Paris%2C%20France&limit=1"

Pour vérifier également le code de statut HTTP, utilisez -f (échoue en cas d'erreur HTTP) :

curl -sf -H "X-Api-Key: gm_YOUR_API_KEY" \
"https://api.geocodeme.net/v1/geocode?q=Paris%2C%20France&limit=1" || echo "Error: request failed" >&2

Paramètres de requête​

ParamètreTypeRequisDescription
qstringOuiAdresse ou nom de lieu à rechercher (encodé en URL)
limitintegerNonNombre maximum de résultats à retourner (défaut : 10, max : 50)

Pour la liste complète des paramètres, voir la Référence API.

Réponse attendue​

Attribution OSM requise

Le champ attribution présent dans chaque réponse doit être affiché dans votre application lorsque vous utilisez des données geocodeme.net, comme l'exige la licence OpenStreetMap (ODbL). Incluez-le dans le footer de votre interface ou sur votre page « À propos », par exemple :

<footer>Geocoding by geocodeme.net — © OpenStreetMap contributors</footer>
{
"results": [
{
"name": "Paris",
"display_name": "Paris, Île-de-France, France",
"lat": 48.8566101,
"lon": 2.3514992,
"type": "city",
"importance": 0.9288,
"address": {
"city": "Paris",
"state": "Île-de-France",
"country": "France",
"country_code": "fr"
}
}
],
"attribution": "© OpenStreetMap contributors",
"meta": {
"took_ms": 12,
"cache_hit": false
}
}
ChampDescription
resultsTableau d'objets de localisation correspondant à la requête
results[].nameNom propre du lieu (tag OSM name) : null pour un objet sans nom, par exemple une simple rue. Affichez-le en titre, display_name en dessous. Voir Le champ name
results[].display_nameLibellé de lieu lisible par un humain (toujours présent)
results[].lat, lonCoordonnées sous forme de nombres (toujours présentes)
results[].addressObjet d'adresse structurée (optionnel, peut être absent pour certains résultats).

Les champs comme house_number, road, suburb, city, state, country et country_code sont optionnels et dépendent du lieu.

results[].type, importanceType de lieu (ex. city, house) et score de pertinence (0 à 1), optionnels
attributionChaîne d'attribution OSM obligatoire : doit être affichée dans toute application destinée au public
meta.took_msTemps de traitement serveur en millisecondes
meta.cache_hitIndique si la réponse a été servie depuis le cache Redis
attention

Les champs address, type et importance sont optionnels et peuvent être absents selon le résultat. Vérifiez toujours leur présence avant d'y accéder dans votre code.

Géocodage inverse​

Convertissez des coordonnées en adresse avec l'endpoint /v1/reverse.

Paramètres de requête​

ParamètreTypeRequisDescription
latnumberOuiLatitude du lieu (-90 à 90)
lonnumberOuiLongitude du lieu (-180 à 180)
zoomintegerNonNiveau de détail de l'adresse (3 à 18, défaut : 18). Des valeurs plus élevées retournent des adresses plus précises
addressdetailsintegerNonInclut une décomposition de l'adresse en éléments (0 ou 1, défaut : 1)

Pour la liste complète des paramètres, voir la Référence API du géocodage inverse.

curl -s -f -H "X-Api-Key: gm_YOUR_API_KEY" \
"https://api.geocodeme.net/v1/reverse?lat=48.8566&lon=2.3522" || echo "Error: request failed" >&2

Réponse attendue​

{
"result": {
"display_name": "3 Rue de Rivoli, Paris, Île-de-France, France",
"lat": 48.8565,
"lon": 2.3524,
"address": {
"house_number": "3",
"road": "Rue de Rivoli",
"city": "Paris",
"state": "Île-de-France",
"country": "France",
"country_code": "fr"
}
},
"attribution": "© OpenStreetMap contributors",
"meta": {
"took_ms": 8,
"cache_hit": false
}
}
attention

Contrairement à /v1/geocode qui retourne results (un tableau), /v1/reverse retourne result : un objet unique, ou null quand aucune adresse n'est trouvée. Les champs d'adresse comme house_number et road sont optionnels ; vérifiez toujours leur présence avant d'y accéder.

Erreurs courantes​

L'API retourne les erreurs dans un format standard :

{
"error": {
"code": "INVALID_API_KEY",
"message": "API key missing or invalid",
"field": null
}
}
Statut HTTPCode d'erreurCauseCorrectif
400MISSING_PARAMETERParamètre de requête requis manquant (ex. q absent)Ajoutez le paramètre manquant à votre requête
400INVALID_PARAMETERValeur de paramètre hors limites (ex. lat=999)Vérifiez les contraintes des paramètres dans la Référence API
401INVALID_API_KEYHeader X-Api-Key manquant ou clé révoquéeVérifiez votre clé dans le tableau de bord ; régénérez-la si nécessaire
429RATE_LIMIT_EXCEEDEDTrop de requêtes pour votre plan ; voir les limites par planImplémentez un backoff exponentiel ; consultez le header X-RateLimit-Remaining
500INTERNAL_ERRORErreur serveur inattendueRéessayez après un court délai ; contactez le support si le problème persiste

Limites de débit​

PlanRequêtes/secondeQuota de crédits
Free13 000 / jour
Startup10150 000 / mois
Growth15500 000 / mois
Pro251 500 000 / mois

Voir les tarifs en vigueur pour le détail des plans.

Chaque réponse de l'API inclut des headers de limite de débit. Inspectez-les avec :

curl -I -H "X-Api-Key: gm_YOUR_API_KEY" \
"https://api.geocodeme.net/v1/geocode?q=Paris"
  • X-RateLimit-Remaining : nombre de requêtes restantes dans la fenêtre par seconde en cours
  • X-RateLimit-Reset : timestamp Unix de réinitialisation de la fenêtre de limite de débit
  • X-RateLimit-Monthly-Remaining : nombre de requêtes restantes dans votre quota mensuel

Voir Limitation de débit pour la liste complète des headers et la gestion des réponses 429.

Étapes suivantes​

  • Authentification : bonnes pratiques de sécurité des clés API et limites de débit par plan
  • Référence API : documentation complète des endpoints avec tous les paramètres
  • Exemples : plus d'exemples de code pour les tâches de géocodage courantes