429 Too Many Requests (RFC 6585)
This is an educational reference page about HTTP 429 Too Many Requests. The page itself is served as 200 OK so it can be indexed as HTTP documentation.
The user has sent too many requests in a given amount of time. Intended for use with rate-limiting schemes.
What it means
HTTP 429 Too Many Requests means the client has sent too many requests in a given time window.
Common causes
- Rate limits for API keys, users, IP addresses, or organizations were exceeded.
- A retry loop, crawler, or background job generated too much traffic.
- The service uses throttling to protect capacity or enforce quotas.
How to fix it
- Send Retry-After when the client should wait before retrying.
- Document quota windows and rate limit headers.
- Use exponential backoff and stop retrying immediately on repeated 429 responses.
Example response
HTTP/1.1 429 Too Many Requests
Retry-After: 60
Content-Type: application/json
{"error":"Rate limit exceeded"}
Developer notes
Use 429 for client-specific throttling. Use 503 when the whole service is temporarily unavailable.
Questions
What causes a 429 status code?
A 429 status code usually means a client, user, IP address, or API key exceeded a rate limit.
Should a 429 response include Retry-After?
Include Retry-After when the server knows how long the client should wait before trying again.