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

http
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:

http
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
HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600

<html>
  <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