Client Error · 4xx

429 Too Many Requests

The client has sent too many requests in too short a time and is being rate-limited.

What 429 Too Many Requests means

429 Too Many Requests is the rate-limit response. The client has exceeded the allowed request rate and must back off. The response should include a Retry-After header (seconds to wait, or an HTTP date) so the client can schedule the retry. Many APIs also include rate-limit metadata: X-RateLimit-Limit (requests per window), X-RateLimit-Remaining (requests left), X-RateLimit-Reset (when the window resets).

When servers should return it: Return 429 when a client exceeds rate-limit thresholds. Always include Retry-After. Rate-limit per-IP, per-API-key, per-user, or per-account depending on threat model.

Common causes

How to fix 429 Too Many Requests

Example response

curl -i https://api.example.com/data

HTTP/2 429
retry-after: 60
x-ratelimit-limit: 100
x-ratelimit-remaining: 0
x-ratelimit-reset: 1714914000
content-type: application/json
{"error":"rate limit exceeded","retry_after_seconds":60}

Related status codes

Frequently Asked Questions

How should I respect Retry-After?
Wait at least the indicated time before retrying. Add jitter (random 0-25% extra) to avoid synchronized retry storms.
429 vs 503?
429 = "you specifically are over your limit". 503 = "the whole service is overloaded for everyone". Different fix, different alert path.
Should I count 429s in error budgets?
Yes, if you control the client. 429 means you sent too many requests; that is a client-side bug or a missing rate limiter.
Defined in: RFC 6585 · Class: 4xx Client Error

More references

For a one-page reference of all HTTP status codes, see the HTTP cheat sheet. For testing API responses, try the API Tester tool. For inspecting responses on the command line, the curl cheat sheet covers the most common flags.