| Status code | 429 |
|---|---|
| Status text | Too Many Requests |
| Category | 4xx Client Error |
| Response has body | Usually |
| Specification | RFC 6585 |
What does 429 Too Many Requests mean?
You have sent too many requests in a given amount of time and are being rate limited. It belongs to the 4xx Client Error class, which means the request contains bad syntax or cannot be fulfilled. Something about the request needs to change.
When do APIs return 429?
Exceeding an API quota, often from a retry loop or an unthrottled batch job.
How to fix a 429 Too Many Requests
Check the Retry-After header and wait that long before retrying. Implement exponential backoff with jitter rather than retrying immediately, and watch X-RateLimit-Remaining to back off before you hit the wall.
Reproduce a 429 response
The fastest way to understand a status code is to trigger one and read the full response. Open the
API tester and send a request to https://httpbin.org/status/429 — you will
see the 429 status along with every response header the server sent. Comparing those headers against
a working request is often what reveals the cause.
When you are debugging a real endpoint, check the response headers as carefully as the body, and confirm you are using the right HTTP method for the operation.
Related 4xx status codes
400 Bad Request
The server could not understand the request because it is malformed.
401 Unauthorized
The request lacks valid authentication credentials. Despite the name, this means unauthenticated.
402 Payment Required
The request cannot be processed until payment is made.
403 Forbidden
The server understood the request and knows who you are, but refuses to authorise it.
404 Not Found
The server cannot find the requested resource.
405 Method Not Allowed
The endpoint exists but does not support the HTTP method you used.
429 Too Many Requests FAQ
How long should I wait after a 429?
Read the Retry-After header if the response has one: it gives either a number of seconds or a date. Without it, back off exponentially, doubling the wait after each attempt and adding some random jitter.
What is the difference between 429 and 503?
429 is about you: this client has sent too many requests. 503 is about the server: it cannot handle requests from anyone at the moment. Both may carry a Retry-After header.
Why am I rate limited when I have only sent a few requests?
Limits are often counted per API key, per IP address or per account, so other applications sharing the same key or address use the same allowance. Some limits also count cost, not just the number of requests.
See also
- 509 Bandwidth Limit Exceeded — The site has used up the data transfer its hosting plan allows.
- API rate limiting — How limits are counted and how to back off and retry.
References
- RFC 6585 — The specification that defines this status code.
- MDN: 429 Too Many Requests — MDN's reference page for this status code.