HTTP 429 Too Many Requests โ Meaning, Causes & How to Fix
The client has sent too many requests in a given amount of time (rate limiting).
- Code
- 429
- Name
- Too Many Requests
- Class
- 4xx Client Error
- Specification
- RFC 6585 ยง4
- Cacheable by default
- Only with explicit Cache-Control / Expires
What HTTP 429 means
429 Too Many Requests is the standard rate-limiting response. The server may include Retry-After to say how long the client should wait. It was defined in RFC 6585.
Common causes
- An API client exceeding its per-minute or per-day quota.
- Scrapers or bots requesting too fast.
- Login or form endpoints protected against brute force.
How to fix it
For site owners
- Send
Retry-Afterand document your limits. - Make sure legitimate search engine crawlers are not rate-limited too aggressively.
For visitors & developers
- Wait for the
Retry-Afterperiod, then retry with exponential backoff. - Cache results and batch requests to stay under the limit.
SEO impact
Google treats 429 like a server error: Googlebot slows its crawl rate. Long-lasting 429s can lead to URLs being dropped from the index, so use it only briefly.
Example 429 response
HTTP/1.1 429 Too Many Requests
Retry-After: 60
Content-Type: application/json
{"error":"rate_limited","limit":"100/min"}
Related status codes
Check or look up another code
Search and filter every code in the HTTP Status Codes tool, browse the full list by class, or read HTTP status codes explained: the complete developer guide.
Open HTTP Status Codes tool โAll status codesFrequently asked questions
What does HTTP 429 mean?
HTTP 429 Too Many Requests is a 4xx Client Error status code. The client has sent too many requests in a given amount of time (rate limiting).
What is the difference between 429 and 503?
429 says this client sent too many requests; 503 says the server as a whole is unavailable. Both can carry Retry-After.
Which specification defines 429?
It is defined in RFC 6585 ยง4.
Is a 429 response cacheable?
Not by default. A 429 response is only stored by caches when it carries explicit freshness information such as Cache-Control: max-age or Expires.