Błędy Overpass API 429, 504 i timeout: co znaczą i co robić

Publiczne serwery Overpass chronią się na dwa sposoby: limitem żądań na użytkownika oraz sprawdzeniem, czy każde zapytanie mieści się w pamięci i czasie, które serwer ma wolne. Większość błędów wynika z jednego z tych dwóch mechanizmów. Ten poradnik wyjaśnia oba, na podstawie dokumentacji Overpass, i podpowiada, co zmienić w zapytaniu lub kliencie.

Błędy w skrócie

OtrzymujeszZnaczy toCo zrobić
429 Too Many RequestsWszystkie sloty Twojego adresu IP były zajęte przez 15 sekund.Poczekaj przed kolejnym zapytaniem, wysyłaj po jednym zapytaniu naraz, sprawdź swoje sloty pod /api/status.
504 Gateway TimeoutSerwer nie znalazł w ciągu 15 sekund miejsca na czas i pamięć, które deklaruje Twoje zapytanie.Poproś o mniej: mniejszy [timeout] lub [maxsize], mniejszy obszar. Albo spróbuj później.
200 z uwagą runtime error o czasieZapytanie trwało dłużej niż jego [timeout] (180 sekund, jeśli go nie ustawisz) i zostało zatrzymane.Zawęź obszar lub filtry albo podnieś timeout; wyższy timeout trudniej dopuścić do wykonania.
200 z uwagą runtime error o pamięciZapytanie potrzebowało więcej niż jego [maxsize] (512 MiB, jeśli go nie ustawisz).Zawęź zapytanie, wypisuj mniej (out center zamiast out geom) albo podnieś [maxsize].

Błędy ze statusem 200 łatwo przeoczyć: odpowiedź jest poprawnym JSON-em bez elementów, a przyczyna jest tylko w polu remark. Sprawdzaj je w kliencie.

Jak działa limit żądań

Overpass zlicza żądania na użytkownika, a użytkownikiem jest Twój adres IP (dla IPv6 jego pierwsze 64 bity), chyba że wyślesz klucz użytkownika. Każdy użytkownik ma kilka slotów. Zapytanie zajmuje slot na czas działania i na okres odpoczynku po nim. Okres odpoczynku to ułamek czasu działania, gdy serwer jest spokojny, i wielokrotność czasu działania, gdy jest zajęty, więc w intensywnym dniu ten sam klient przepuści mniej zapytań.

Zapytanie, które nie znajdzie wolnego slotu, czeka do 15 sekund, a potem dostaje 429. Dwa publiczne serwery za overpass-api.de liczą sloty osobno.

Żeby zobaczyć własny stan, otwórz stronę statusu:

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

Jej trzecia linia, po „Rate limit:”, to liczba Twoich slotów. Linie od szóstej mówią, kiedy zajęte sloty się zwolnią.

Dlaczego małe zapytanie może dostać 504

Przed uruchomieniem zapytania serwer sprawdza deklarowany czas i pamięć: [timeout] domyślnie wynosi 180 sekund, a [maxsize] 512 MiB. Zapytanie jest przyjmowane tylko wtedy, gdy obie wartości mieszczą się w połowie tego, co serwer ma w tej chwili wolne. Jeśli się nie mieszczą, czeka do 15 sekund i dostaje 504. Zapytanie z deklaracją [timeout:900] „na wszelki wypadek” może więc zostać odrzucone na zajętym serwerze, a to samo zapytanie z [timeout:60] się wykona.

Poprawki po stronie klienta

  • Wysyłaj po jednym zapytaniu naraz. Główny serwer nie dopuszcza równoległych skryptów.
  • Po 429 lub innym statusie błędu zrób przerwę przed kolejnym zapytaniem; wiki OpenStreetMap sugeruje 30 sekund.
  • Buforuj odpowiedzi. Dane map w większości aplikacji nie zmieniają się z minuty na minutę.
  • Wysyłaj nagłówek User-Agent z nazwą swojej aplikacji, jak wymaga polityka użycia.
  • Deklaruj [timeout] zbliżony do potrzeb zapytania, a nie największą możliwą wartość.
  • Dziel duży obszar na mniejsze prostokąty i używaj out center lub out tags, gdy nie potrzebujesz pełnej geometrii.

Na co pozwala serwer publiczny

Polityka użycia na wiki OpenStreetMap uznaje mniej niż około 10 000 zapytań i 1 GB pobranych danych dziennie za niezakłócające pracy innych użytkowników i prosi, by regularne użycie mieściło się sto razy poniżej tej granicy. Aplikacja liczy wszystkich swoich użytkowników łącznie. Użycie komercyjne ma przenieść się na serwery płatne lub własne, a wiki obecnie pisze, że główny serwer jest przeciążony i nie należy oczekiwać, że będzie niezawodny.

Jeśli Twój backend wysyła zapytania Overpass w imieniu użytkowników, wszyscy dzielą sloty Twojego serwera. To zwykle moment, by poszukać innej opcji.

Opcje, gdy serwer publiczny nie wystarcza

  • Własny Overpass. Pełny język zapytań i aktualizacje co minutę, ale sam dbasz o serwer, jego dysk i aktualizacje.
  • Płatna instancja Overpass. Wiki wymienia kilka, z cenami i limitami.
  • Nasz endpoint. Własny klucz i limity, od 500 żądań dziennie za darmo. Odpowiada na podzbiór Overpass QL z bazy odświeżanej co miesiąc, bez rekursji; strona o alternatywie dla Overpass API dokładnie wymienia, co jest obsługiwane, a przykłady pokazują typowe zapytania.

Źródła: dokumentacja Overpass API, „Commons” oraz strona Overpass API na wiki OpenStreetMap, odczytane 7 listopada 2026.

Plan darmowy daje 500 zapytań dziennie, także w aplikacjach komercyjnych. Załóż konto przez Google lub e-mail i od razu utwórz swoje klucze.