The client has sent too many requests in too short a time and is being rate-limited.
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.
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}
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.