overpass-api.de: “429 Too Many Requests”
Why the public Overpass server rejects your queries and what you can do about it.
How the public rate limit works
overpass-api.de is run by volunteers of the FOSSGIS association and is free for everyone. To share it fairly, it limits every client by IP address:
- You get a few slots. Each running query occupies one.
- After a query finishes, its slot stays blocked for a cool-down. Long queries cause long cool-downs.
- A query that arrives while all your slots are blocked is rejected with HTTP 429.
The documentation of overpass-api.de gives a rule of thumb: you don't disturb other users with fewer than about 10,000 queries and 1 GB of downloads per day. Regular, heavy or commercial use is not what the public instance is for.
Check your slots
The status endpoint shows your rate limit and when your next slot frees up:
curl https://overpass-api.de/api/status
The answer lists your client ID, the Rate limit (your number of slots), how many slots are available now, and, for blocked slots, the time at which each becomes free again. Wait until then before sending the next query.
Common causes
- Parallel requests. A script that sends queries from several threads, or a loop over hundreds of places, uses up all slots in a second.
- Long queries. A query that runs for a minute blocks its slot for a long time afterwards.
- Retrying immediately. Retries without waiting just get more 429s and keep the slots blocked.
- A shared IP address. Office networks, universities, cloud functions and CI runners share one public IP. Queries from your colleagues count against your slots.
- Overpass Turbo and a script at the same time, from the same network.
How to fix it
- Send one query at a time. Remove thread pools and parallel downloads.
- Wait for a slot, then retry. Read
/api/status, or back off: wait 10 seconds, then 20, then 40. Our errors guide has ready-made retry code. - Make queries cheaper. Search a bounding box or area instead of the whole planet, filter by tags first, and use
out center;orout tags;when you don't need full geometry. - Combine queries. One query with a union is cheaper than five separate ones. A for loop can compute statistics for many groups in one request.
- Cache results. Map data rarely changes within an hour. Store answers and reuse them.
- Use extracts for bulk data. For whole countries, download a regional extract (for example from Geofabrik) and process it locally.
When it's time to move on
If your application depends on Overpass, the limits of the public server will keep getting in the way: it can't give you guaranteed capacity, because it is shared with everyone. Your options are another public instance, your own server, or a hosted one. Our alternatives guide compares them.
On overpass.ch, limits are per API key, so other people on your IP address don't count against them. They are stated on the pricing page and returned in the X-RateLimit-* headers of every response. When you do hit a limit, you get a Retry-After header that says how long to wait. To switch, you only change the server URL.
https://overpass-api.de/api/interpreter
→ https://api.overpass.ch/v1/YOUR_API_KEY/interpreter