The client has sent too many requests in a given time (rate limiting).
429 Too Many Requests (RFC 6585) means a rate limit was hit. The server may say when to retry with Retry-After, and many APIs add headers with the limit, remaining quota and reset time. Clients should back off rather than retry immediately, otherwise they extend the block.
limit_req when configured with limit_req_status 429; (the default status is 503).RateLimit-Policy/RateLimit (IETF draft) or X-RateLimit-*.limit_req_status 429; in nginx so clients see the right code.| Header | Role |
|---|---|
Retry-After | Seconds to wait, or a date. |
RateLimit / RateLimit-Policy | IETF draft headers for quota and reset. |
X-RateLimit-Remaining | Common vendor header for remaining requests. |
HTTP/1.1 429 Too Many Requests
Retry-After: 30
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
Content-Type: application/json
{"error": "rate_limited"}