What HTTP 429 means
The client hit a rate limit. The server can include Retry-After with the number of seconds to wait, and many APIs also send headers like X-RateLimit-Remaining and X-RateLimit-Reset. Well-behaved clients slow down instead of retrying immediately.
How to fix a 429 error
-
Honour
Retry-After, and otherwise back off exponentially with jitter (1 s, 2 s, 4 s … plus a random delay). - Cache responses and batch requests to make fewer calls.
- Behind a shared IP (CI runners, NAT), other users may be using up the same limit. Authenticate to get a per-account limit.
Retrying
Yes, after the delay in the Retry-After header if present, otherwise with exponential backoff.
Example response
HTTP/1.1 429 Too Many Requests
Date: Wed, 21 Oct 2026 10:30:00 GMT
Retry-After: 30
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
Content-Type: application/json
How to return 429
res.status(429).json({ error: 'Too Many Requests' });
from fastapi import HTTPException
raise HTTPException(status_code=429, detail="Too Many Requests")
http.Error(w, http.StatusText(http.StatusTooManyRequests), http.StatusTooManyRequests)
location /private/ {
return 429;
}
Related status codes
- 503 Service Unavailable : The server is temporarily unable to handle requests, usually overload or maintenance.
- 403 Forbidden : The server understood the request but refuses to authorize it.
- 402 Payment Required : Reserved for payment-related errors and has no standard meaning.
Other 4xx status codes
400 Bad Request · 401 Unauthorized · 402 Payment Required · 403 Forbidden · 404 Not Found · 405 Method Not Allowed · 406 Not Acceptable · 407 Proxy Authentication Required · 408 Request Timeout · 409 Conflict · 410 Gone · 411 Length Required · 412 Precondition Failed · 413 Content Too Large · 414 URI Too Long · 415 Unsupported Media Type · 416 Range Not Satisfiable · 417 Expectation Failed · 418 I’m a Teapot · 421 Misdirected Request · 422 Unprocessable Content · 423 Locked · 424 Failed Dependency · 425 Too Early · 426 Upgrade Required · 428 Precondition Required · 431 Request Header Fields Too Large · 444 No Response · 451 Unavailable For Legal Reasons · 499 Client Closed Request
See the full list of HTTP status codes.
Sources
Spotted a mistake? Email hello@devtoolsmith.com and we’ll fix it.
Frequently asked questions
What does HTTP 429 Too Many Requests mean?
HTTP 429 Too Many Requests means the client has sent too many requests in a given time (rate limiting). The client hit a rate limit. The server can include Retry-After with the number of seconds to wait, and many APIs also send headers like X-RateLimit-Remaining and X-RateLimit-Reset. Well-behaved clients slow down instead of retrying immediately.
How do I fix HTTP 429?
Honour Retry-After, and otherwise back off exponentially with jitter (1 s, 2 s, 4 s … plus a random delay). Cache responses and batch requests to make fewer calls. Behind a shared IP (CI runners, NAT), other users may be using up the same limit. Authenticate to get a per-account limit.