Erreurs 429, 504 et timeout d'Overpass API : ce qu'elles signifient et que faire

Les serveurs Overpass publics se protègent de deux façons : une limite de débit par utilisateur et un contrôle que chaque requête tient dans la mémoire et le temps dont le serveur dispose. La plupart des erreurs viennent de l'un des deux. Ce guide explique les deux, d'après la documentation d'Overpass, et ce qu'il faut changer dans votre requête ou votre client.

Les erreurs en un coup d'œil

Vous recevezCela signifieQue faire
429 Too Many RequestsTous les emplacements de votre adresse IP étaient occupés pendant 15 secondes.Attendez avant la requête suivante, lancez une requête à la fois, vérifiez vos emplacements sur /api/status.
504 Gateway TimeoutLe serveur n'a pas trouvé de place, en 15 secondes, pour le temps et la mémoire que déclare votre requête.Demandez moins : un [timeout] ou un [maxsize] plus petit, une zone plus petite. Ou réessayez plus tard.
200 avec une remarque runtime error sur le tempsLa requête a duré plus que son [timeout] (180 secondes si vous ne le fixez pas) et a été arrêtée.Réduisez la zone ou les filtres, ou augmentez le timeout ; un timeout plus élevé est plus difficile à faire admettre.
200 avec une remarque runtime error sur la mémoireLa requête a eu besoin de plus que son [maxsize] (512 Mio si vous ne le fixez pas).Réduisez la requête, affichez moins (out center au lieu de out geom), ou augmentez [maxsize].

Les erreurs avec le statut 200 passent facilement inaperçues : la réponse est un JSON valide sans éléments, et la raison se trouve seulement dans le champ remark. Vérifiez-le dans votre client.

Comment fonctionne la limite de débit

Overpass compte les requêtes par utilisateur, et l'utilisateur est votre adresse IP (pour l'IPv6, ses 64 premiers bits) tant que vous n'envoyez pas de clé d'utilisateur. Chaque utilisateur a quelques emplacements. Une requête occupe un emplacement pendant son exécution et pendant un délai de récupération qui suit. Ce délai représente une fraction du temps d'exécution quand le serveur est calme, et plusieurs fois ce temps quand il est occupé ; un même client fait donc passer moins de requêtes un jour de forte charge.

Une requête qui ne trouve aucun emplacement libre attend jusqu'à 15 secondes, puis reçoit 429. Les deux serveurs publics derrière overpass-api.de tiennent des comptes séparés.

Pour voir votre propre état, ouvrez la page d'état :

curl https://overpass-api.de/api/status

Sa troisième ligne, après « Rate limit: », donne le nombre d'emplacements dont vous disposez. À partir de la sixième ligne, elles indiquent quand vos emplacements occupés se libèrent.

Pourquoi une petite requête peut recevoir un 504

Avant d'exécuter une requête, le serveur contrôle le temps et la mémoire qu'elle déclare : [timeout] vaut 180 secondes par défaut et [maxsize] 512 Mio. Une requête n'est admise que si les deux tiennent dans la moitié de ce dont le serveur dispose à cet instant. Sinon, elle attend jusqu'à 15 secondes puis reçoit 504. Une requête qui déclare [timeout:900] par précaution peut donc être refusée sur un serveur chargé, alors que la même requête avec [timeout:60] s'exécute.

Corrections côté client

  • Envoyez une requête à la fois. Le serveur principal n'autorise pas les scripts en parallèle.
  • Après un 429 ou un autre statut d'erreur, faites une pause avant la requête suivante ; le wiki d'OpenStreetMap suggère 30 secondes.
  • Mettez les réponses en cache. Pour la plupart des applications, les données cartographiques ne changent pas d'une minute à l'autre.
  • Envoyez un User-Agent qui nomme votre application, comme le demande la politique d'usage.
  • Déclarez un [timeout] proche de ce dont la requête a besoin, pas la plus grande valeur.
  • Découpez une grande zone en rectangles plus petits, et demandez out center ou out tags quand vous n'avez pas besoin de la géométrie complète.

Ce que permet le serveur public

La politique d'usage du wiki d'OpenStreetMap considère qu'en dessous d'environ 10 000 requêtes et 1 Go de téléchargements par jour, les autres utilisateurs ne sont pas gênés, et demande qu'un usage régulier reste cent fois en dessous. Une application compte tous ses utilisateurs ensemble. Les usages commerciaux sont invités à passer à des serveurs payants ou auto-hébergés, et le wiki indique actuellement que le serveur principal est surchargé et qu'il ne faut pas compter sur sa fiabilité.

Si votre backend envoie des requêtes Overpass pour vos utilisateurs, ils se partagent tous les emplacements de votre serveur. C'est le moment habituel de chercher une autre solution.

Options quand le serveur public ne suffit pas

  • Héberger votre propre Overpass. Langage de requête complet et mises à jour à la minute, mais vous gérez le serveur, son disque et ses mises à jour.
  • Une instance Overpass payante. Le wiki en liste plusieurs, avec leurs prix et leurs limites.
  • Notre endpoint. Votre propre clé et vos propres limites, avec 500 requêtes par jour gratuites. Il répond à un sous-ensemble d'Overpass QL à partir d'une base actualisée chaque mois, sans récursion ; la page alternative à l'API Overpass liste exactement ce qui est pris en charge, et les exemples montrent des requêtes courantes.

Sources : documentation d'Overpass API, « Commons » et la page Overpass API du wiki d'OpenStreetMap, consultées le 7 novembre 2026.

L’offre gratuite donne 500 requêtes par jour, y compris pour les applications commerciales. Créez un compte avec Google ou votre e-mail et générez vos clés tout de suite.