429 Too Many Requests
The HTTP 429 Too Many Requests client error response status code indicates the client has sent too many requests in a given amount of time.
This mechanism of asking the client to slow down the rate of requests is commonly called "rate limiting".
A Retry-After header may be included to this response to indicate how long a client should wait before making the request again.
Implementations of rate limiting vary; restrictions may be server-wide or per resource. Typically, rate-limiting restrictions are based on a client's IP but can be specific to users or authorized applications if requests are authenticated or contain a cookie.
Status
429 Too Many Requests
Examples
>Response containing Retry-After header
The following request is being sent repeatedly in a loop by a client that is misconfigured:
GET /reports/mdn HTTP/1.1
Host: example.com
In this example, server-wide rate limiting is active when a client exceeds a set threshold of requests per minute.
A 429 response is returned with a Retry-After header that indicates that requests will be allowed for this client again in 60 minutes:
HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600
<html lang="en-US">
  <head>
    <title>Too Many Requests</title>
  </head>
  <body>
    <h1>Too Many Requests</h1>
    <p>You're doing that too often! Try again later.</p>
  </body>
</html>
Specifications
| Specification | 
|---|
| RFC 6585> # section-4>  | 
            
See also
- HTTP response status codes
 Retry-After- Python solution: How to avoid HTTP error 429 python