overpass-api.de: «429 Too Many Requests»
Warum der öffentliche Overpass-Server Ihre Abfragen ablehnt und was Sie dagegen tun können.
So funktioniert das öffentliche Rate-Limit
overpass-api.de wird von Freiwilligen des Vereins FOSSGIS betrieben und ist für alle kostenlos. Damit er fair geteilt wird, begrenzt er jeden Client nach IP-Adresse:
- Sie erhalten einige Slots. Jede laufende Abfrage belegt einen.
- Nach dem Ende einer Abfrage bleibt ihr Slot für eine Wartezeit gesperrt. Lange Abfragen bedeuten lange Wartezeiten.
- Eine Abfrage, die eintrifft, während alle Ihre Slots gesperrt sind, wird mit HTTP 429 abgelehnt.
Die Dokumentation von overpass-api.de nennt eine Faustregel: Mit weniger als etwa 10'000 Abfragen und 1 GB Download pro Tag stören Sie andere nicht. Regelmässige, intensive oder kommerzielle Nutzung ist nicht der Zweck der öffentlichen Instanz.
Ihre Slots prüfen
Der Status-Endpunkt zeigt Ihr Rate-Limit und wann Ihr nächster Slot frei wird:
curl https://overpass-api.de/api/status
Die Antwort nennt Ihre Client-ID, das Rate limit (Ihre Anzahl Slots), wie viele Slots jetzt frei sind, und für gesperrte Slots den Zeitpunkt, an dem jeder wieder frei wird. Warten Sie bis dann, bevor Sie die nächste Abfrage senden.
Häufige Ursachen
- Parallele Anfragen. Ein Skript, das Abfragen aus mehreren Threads sendet, oder eine Schleife über hunderte Orte belegt alle Slots in einer Sekunde.
- Lange Abfragen. Eine Abfrage, die eine Minute läuft, sperrt ihren Slot danach lange.
- Sofortige Wiederholungen. Wiederholungen ohne Warten führen nur zu weiteren 429 und halten die Slots gesperrt.
- Eine geteilte IP-Adresse. Firmennetze, Hochschulen, Cloud-Funktionen und CI-Runner teilen sich eine öffentliche IP. Abfragen Ihrer Kolleginnen und Kollegen zählen bei Ihren Slots mit.
- Overpass Turbo und ein Skript gleichzeitig, aus demselben Netz.
So beheben Sie es
- Senden Sie eine Abfrage nach der anderen. Entfernen Sie Thread-Pools und parallele Downloads.
- Warten Sie auf einen Slot, dann wiederholen Sie. Lesen Sie
/api/status, oder warten Sie zunehmend länger: 10 Sekunden, dann 20, dann 40. Unsere Anleitung zu den Fehlern hat fertigen Code für Wiederholungen. - Machen Sie Abfragen günstiger. Suchen Sie in einem Begrenzungsrahmen oder Gebiet statt auf dem ganzen Planeten, filtern Sie zuerst nach Tags, und verwenden Sie
out center;oderout tags;, wenn Sie die volle Geometrie nicht brauchen. - Fassen Sie Abfragen zusammen. Eine Abfrage mit einer Vereinigung ist günstiger als fünf einzelne. Eine for-Schleife berechnet Statistiken für viele Gruppen in einer Anfrage.
- Speichern Sie Ergebnisse zwischen. Kartendaten ändern sich innerhalb einer Stunde selten. Speichern Sie Antworten, und verwenden Sie sie wieder.
- Nehmen Sie Auszüge für grosse Datenmengen. Für ganze Länder laden Sie einen regionalen Auszug herunter (etwa von Geofabrik) und verarbeiten ihn lokal.
Wann es Zeit für einen Wechsel ist
Wenn Ihre Anwendung von Overpass abhängt, werden Ihnen die Limits des öffentlichen Servers immer wieder im Weg stehen: Er kann Ihnen keine Kapazität garantieren, weil er mit allen geteilt wird. Ihre Möglichkeiten sind eine andere öffentliche Instanz, ein eigener Server oder ein gehosteter. Unsere Anleitung zu den Alternativen vergleicht sie.
Auf overpass.ch gelten die Limits pro API-Schlüssel, andere Personen mit Ihrer IP-Adresse zählen also nicht mit. Sie stehen auf der Preisseite und kommen in den Headern X-RateLimit-* jeder Antwort. Erreichen Sie doch ein Limit, sagt Ihnen der Header Retry-After, wie lange Sie warten müssen. Für den Wechsel ändern Sie nur die Server-URL.
https://overpass-api.de/api/interpreter
→ https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/interpreter