Aller au contenu

Forfaits et limites

Les trois forfaits incluent les API de base, dont les cartes, le géocodage, les itinéraires et Optimize. Les jeux de données sectoriels et les capacités premium peuvent nécessiter un module; consultez la page des tarifs.

Les forfaits

dev (identifiant de forfait hobby dans l'API de compte) : 0 $ US/mois. 10 000 appels inclus par mois civil. La plupart des appels d'origine dev sont gratuits; les envois d'Optimize comptent dans ce volume même depuis une origine dev. Aucun dépassement : une fois la limite atteinte, les requêtes facturables sont bloquées jusqu'au mois suivant. Aucune origine de production ne peut figurer sur une clé de ce forfait : les origines dev seulement.

Indie : 19 $ US/mois. 250 000 appels inclus par mois. Le dépassement est à 1,00 $ US par 1 000 appels. Une origine de production par clé, plus les origines dev, qui ne comptent pas contre elle.

Growth : 99 $ US/mois. 2 000 000 d'appels inclus par mois. Le dépassement est à 0,75 $ US par 1 000 appels. Jusqu'à 100 origines de production par clé.

Les appels inclus sont comptés par mois civil UTC.

Ce qui compte comme un appel

Une requête est un appel sur les points de terminaison facturés ordinaires : une tuile, un document de style, une requête de géocodage, un itinéraire, une isochrone, une altitude portant mille coordonnées, une matrice 10 x 10. Un 204 pour une tuile vide et un 400 pour un mauvais paramètre comptent tous les deux; une requête refusée à la porte (401, 429, 403) ne compte pas. Une réponse servie depuis le cache périphérique compte autant qu'une réponse qui a atteint un service en amont, parce que le cache fait partie du service et n'est pas un moyen de le contourner.

Un point de terminaison en lot facture par unité de travail, pas par requête. Il y en a trois, et chacun le dit sur sa propre page :

  • POST /geocode/batch est un appel par requête non vide, jusqu'à 100 par appel HTTP. Une entrée vide ne coûte rien. Voir Géocodage par lots.
  • Un traitement par lot hébergé est un appel par ligne admissible, jusqu'à 100 000. Une ligne qui a une valeur dans la colonne d'adresse coûte un appel même sans correspondance; une ligne sans valeur ne coûte rien. Les reprises de la plateforme n'ajoutent jamais de frais. Le tableau de bord affiche l'estimation avant l'étape qui dépense quoi que ce soit.
  • POST /optimize est un appel par envoi effectué lors d'une résolution réussie. La validation, une résolution qui échoue et un envoi laissé de côté ne coûtent rien, tout comme résoudre de nouveau le même envoi dans les 24 heures. Voir API Optimize.

Jamais compté, quoi que vous envoyiez :

  • Les glyphes et les sprites. Un seul chargement de carte tire de nombreuses plages de police, et les compter noierait votre usage réel et pénaliserait les cartes riches en étiquettes.
  • POST /feedback et POST /places/{id}/feedback. Nous dire que nos données sont fausses ne devrait rien vous coûter.
  • GET /routing/status. Il existe pour être interrogé par un tableau de bord; facturer la question reviendrait à facturer la transparence.
  • GET /timezone/meta. La version du jeu de données, interrogée de la même façon.

Les glyphes, les sprites, les signalements, les métadonnées de fuseau horaire et la sonde d'état d'itinéraire sont authentifiés et limités en débit comme le reste, mais pas facturés.

La plupart du trafic d'origine dev est compté mais non facturé. Optimize applique ses règles de facturation par envoi sur toutes les origines. Le reste du trafic dev apparaît dans le tableau de bord sous un préfixe dev: pour que vous le voyiez, et le quota mensuel l'ignore. La règle qui définit une origine dev suit.

Comme les cartes et le géocodage puisent dans le même bassin, une carte qui charge 40 tuiles coûte 40 appels, autant que 40 frappes de saisie semi-automatique. Les tuiles sont mises en cache de façon agressive par MapLibre et par le navigateur, donc une session typique en tire beaucoup moins que le premier affichage ne le laisse croire.

Facturation des origines dev

Sauf pour Optimize, une requête dont l'en-tête Origin, ou l'origine de son Referer à défaut d'Origin, correspond à l'un des hôtes suivants ne compte contre le volume inclus d'aucun forfait :

  • localhost, 127.0.0.1, [::1], ou tout hôte *.localhost
  • tout hôte *.pages.dev ou *.workers.dev

C'est une correspondance de nom d'hôte, pas de sous-chaîne : notlocalhost.example.com ne compte pas.

Optimize fait exception. POST /optimize et ses chemins compatibles avec Google facturent une requête provenant d'une origine dev exactement comme une requête de production, puisque chaque résolution mobilise une vraie puissance de calcul. Résoudre de nouveau les mêmes envois dans les 24 heures reste gratuit, ce qui permet d'itérer à peu de frais sur une même requête. Voir API Optimize.

Une requête sans en-tête Origin ou Referer, le cas normal côté serveur, compte toujours comme trafic non dev. Les appels depuis un backend, un script ou une app mobile sont donc facturables dès la première requête, même sur le forfait dev, faute d'origine fournie par le navigateur que la vérification puisse exempter.

Plafond de dépenses

Indie et growth ont un plafond de dépenses à 0 $ US par défaut. Ce n'est pas un détail d'affichage : un forfait payant s'arrête au volume inclus exactement comme le forfait gratuit, jusqu'à ce que vous augmentiez explicitement ce plafond dans le tableau de bord. Vous ne serez jamais facturé pour un dépassement surprise que vous n'avez pas choisi; vous devez d'abord relever le plafond, et ensuite le dépassement est facturé au tarif par 1 000 appels de votre forfait.

À quoi ressemble un blocage

L'application des forfaits est une tâche qui s'exécute toutes les cinq minutes, pas à chaque requête, donc une clé peut dépasser sa limite de quelques minutes avant d'être arrêtée, et un plafond relevé ou un nouveau mois prend jusqu'à cinq minutes pour lever le blocage. Une fois bloquée, chaque requête reçoit un 429 avec un code qui dit pourquoi :

  • quota_exceeded : une clé dev à ses 10 000 appels inclus. Se lève le premier du mois.
  • spend_cap : une clé payante dont le dépassement a atteint son plafond de dépenses. Se lève quand vous relevez le plafond.
  • billing_required : un forfait payant dont le dernier paiement a échoué. Se lève quand une nouvelle tentative réussit après la mise à jour du mode de paiement.

L'application des origines est différente : elle est vérifiée à chaque requête et retourne 403 avec origin_not_allowed. Elle s'applique à toute clé, sur tout forfait, dont la liste d'origines autorisées n'est pas vide, et elle est stricte dès qu'elle s'applique : une requête sans Origin ni Referer, une dont l'en-tête ne se lit pas, et une provenant d'une origine absente de la liste reçoivent le même refus. Une clé dont la liste est vide n'a aucune restriction, ce qui est le cas attendu d'une clé côté serveur. Les origines dev ne sont pas implicites et doivent être inscrites. Voir Erreurs pour les corps de réponse.

Limite de débit

Indépendamment du volume mensuel, chaque clé de chaque forfait est limitée à 1 000 requêtes par 60 secondes, par emplacement Cloudflare. La vérification de blocage (quota, plafond ou paiement échoué) passe d'abord; une clé déjà bloquée n'atteint pas la limite de débit. Cette limite sert à borner l'abus d'une seule clé, pas à faire respecter le volume inclus de votre forfait.

Un dépassement retourne 429 avec un en-tête Retry-After; voir Erreurs.

Vérifier votre état

Le tableau de bord affiche votre forfait, votre plafond de dépenses, les origines autorisées de chaque clé et les compteurs d'appels du mois par point de terminaison, avec le trafic d'origine dev présenté à part. Il les lit depuis GET /account/me et GET /account/usage sur la passerelle, qui s'authentifient par votre session navigateur plutôt que par clé API; ce ne sont pas des points de terminaison à intégrer dans votre application.

Voir aussi la politique de confidentialité et les conditions.