Authentification

Les 2 500 premières requêtes par jour depuis une adresse ne nécessitent aucune clé. Une clé sert pour tout ce qui va au-delà : elle détermine sur quel crédit ou quel forfait une requête est prélevée et quelles machines peuvent l'utiliser, et elle vous fournit un historique d'utilisation. Les clés sont gratuites et s'obtiennent en une minute.

Sans clé

Envoyez la requête sans aucun identifiant et elle obtient une réponse. Chaque adresse dispose ainsi de 2 500 requêtes par jour, comptées à partir de 00:00 UTC sur tous les endpoints et tous les hôtes compatibles, avec les mêmes données et les mêmes réponses qu'un compte payant. Au-delà, l'API répond 429 quota_exceeded avec un en-tête Retry-After jusqu'à la remise à zéro ; rien n'est facturé et rien n'est mis en file d'attente.

Deux choses à savoir. Les adresses qui appartiennent au même réseau partagent un même quota, si bien qu'un bureau très actif, un campus ou une région cloud peut l'épuiser plus vite qu'une seule machine. Et un réseau et les clés utilisées depuis ce réseau puisent dans le même quota : les requêtes faites sans clé réduisent ce qu'une clé utilisée depuis ce réseau obtient aujourd'hui, et les requêtes gratuites faites avec cette clé réduisent ce que le réseau obtient sans clé. S'inscrire apporte donc du crédit, des forfaits et un historique, pas un second lot de 2 500 requêtes gratuites depuis le même endroit.

Obtenir une clé

Inscrivez-vous sur www.mygeocode.com/signup avec votre nom, une adresse e-mail et un mot de passe. Votre première clé est affichée une seule fois, sur-le-champ ; copiez-la, car seul un hachage est conservé. Créez autant de clés supplémentaires que vous le souhaitez dans Clés d'API, donnez à chacune un libellé (une par serveur ou par application est une bonne habitude) et révoquez-en n'importe laquelle à tout moment.

Chaque clé dispose de 2 500 requêtes gratuites par jour, comptées à partir de 00:00 UTC sur tous les endpoints et tous les hôtes compatibles. Au-delà, les requêtes sont prélevées sur le crédit prépayé du compte à 0,0001 € l'unité, sauf si la clé est liée à un forfait Unlimited.

Envoyer la clé

Chacune de ces méthodes fonctionne sur tous les hôtes. Préférez l'en-tête : les chaînes de requête finissent dans les journaux des serveurs, l'historique des navigateurs et les proxys.

$ curl -H "X-API-Key: mg_7f3c2a19e04b...d1" "https://api.mygeocode.com/v1/reverse?lat=51.5&lon=-0.12"

$ curl -H "Authorization: Bearer mg_7f3c2a19e04b...d1" "https://api.mygeocode.com/v1/reverse?lat=51.5&lon=-0.12"

$ curl "https://api.mygeocode.com/v1/reverse?lat=51.5&lon=-0.12&key=mg_7f3c2a19e04b...d1"

$ curl -u "mg_7f3c2a19e04b...d1:" "https://api.mygeocode.com/v1/reverse?lat=51.5&lon=-0.12"

Sur les hôtes compatibles, la clé va aussi là où allait la clé du fournisseur d'origine : key pour Google, Bing, Geocode.Farm, OpenCage, LocationIQ, TomTom et MapQuest ; apiKey pour HERE et Geoapify ; access_token pour Mapbox ; api_key pour Geocodio ; access_key pour PositionStack et ipstack ; token pour ipinfo. Les clients Nominatim et Open-Elevation ajoutent key= ou un en-tête, puisque ces deux services n'ont pas de clé propre.

En plus du paramètre de requête, quatre façons d'envoyer les identifiants sont acceptées sur tous les hôtes, si bien qu'une bibliothèque cliente qui s'authentifie à la manière du fournisseur n'a besoin d'aucune modification : l'en-tête X-API-Key, Authorization: Bearer, l'authentification HTTP Basic avec la clé comme nom d'utilisateur (ce qu'envoie curl -u KEY:, et ce qu'utilisent les exemples ipinfo), et l'en-tête X-Goog-Api-Key qu'envoient les clients de Google. Une clé dans le corps d'un formulaire est également lue, pour les endpoints qui reçoivent des POST. Changer le nom d'hôte et la clé constitue toute la migration.

Deux types de clé

Clé en paiement à l'usageClé Unlimited
Comment l'obtenirCréez-la dans le tableau de bord, gratuitementFournie avec chaque forfait Unlimited (50 € par mois)
Requêtes gratuites2 500 par jourToutes
Au-delà du quota gratuit0,0001 € l'unité, prélevé sur le crédit du compte ; 402 lorsque le solde est videRien
Emplacements IP (période glissante de 24 heures)23
Quand le forfait expireLa clé continue de fonctionner comme une clé en paiement à l'usage

Emplacements IP

Une clé peut être utilisée depuis un nombre limité d'adresses IP à la fois : deux pour une clé en paiement à l'usage, trois pour une clé Unlimited. La règle est glissante, par adresse :

Ainsi, si deux serveurs ont utilisé une clé pour la première fois à 02:00 et un troisième à 04:00, deux emplacements se libèrent à 02:00 le lendemain et le troisième à 04:00. Le tableau de bord indique quelles adresses occupent les emplacements d'une clé et quand chacun se libère. Besoin de plus de machines ? Créez d'autres clés en paiement à l'usage ou ajoutez d'autres forfaits Unlimited ; chaque forfait apporte sa propre clé.

Cette limite existe parce que les clés fuient. Grâce à elle, une clé qui se retrouve dans un dépôt public ne vaut pas grand-chose pour qui la trouve, et comme le crédit est prépayé, personne ne peut dépenser plus que le solde que vous avez chargé.

Clés et navigateurs

Ne placez pas de clé dans du JavaScript ni dans une application mobile. N'importe qui peut la lire dans la page, et chaque visiteur est une nouvelle adresse IP : les emplacements de la clé sont donc épuisés dès le deuxième ou le troisième visiteur. Appelez l'API depuis votre propre serveur et gardez-y la clé. Les hôtes compatibles pour cartes JavaScript chargent les tuiles et les bibliothèques sans clé ; seuls leurs appels de géocodage doivent passer par votre serveur.

Révocation et rotation

Révoquez une clé dans le tableau de bord et elle cesse de fonctionner en moins d'une minute. Créez d'abord la nouvelle clé, déployez-la, puis révoquez l'ancienne ; les deux fonctionnent entre-temps. Les clés n'expirent jamais d'elles-mêmes.

Refus

HTTPcodeSignification
401missing_keyAucune clé n'a été envoyée et l'accès sans clé est désactivé sur ce serveur (il est activé par défaut).
429quota_exceededL'adresse a épuisé son quota gratuit du jour sans clé ; Retry-After indique le délai avant la remise à zéro.
401invalid_keyLa clé n'existe pas.
401key_revokedLa clé a été révoquée.
402no_creditsQuota gratuit du jour épuisé et solde du compte vide.
403key_ip_limitTous les emplacements IP de la clé sont occupés par d'autres adresses.
403account_suspendedLe compte est suspendu ; contactez le support.

Aucun de ces refus n'est décompté du quota ni ne coûte de crédit. Sur les hôtes compatibles, ils sont renvoyés dans le format du fournisseur d'origine ; voir compatibilité.