Skip to content

4xx Client error

429 Too Many Requests

You've sent too many requests in a given time: you're being rate-limited.

What 429 means

Every API limits how fast you can call it, per key or per IP. 429 means you hit that limit. The Retry-After header (seconds or a date) says when to try again, and many APIs send X-RateLimit-* headers showing your quota.

Common causes

  • Too many requests per second or minute, e.g. a loop or many parallel requests.
  • A daily or monthly quota is used up (free tiers especially).
  • Sharing an IP (or key) with other heavy users.

How to fix it

If you're calling an API

  • Wait for Retry-After before retrying, then use exponential backoff with jitter.
  • Cache responses so you make fewer calls; batch requests where the API allows.
  • Throttle your client (a queue or rate limiter) and watch the X-RateLimit-Remaining header.

If you run the server

  • Always send Retry-After and rate-limit headers (RateLimit-Limit, RateLimit-Remaining) so clients can slow down.

Should you retry?

Yes, after the Retry-After time, with exponential backoff.

Example response

HTTP
HTTP/1.1 429 Too Many Requests
Retry-After: 30
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
Content-Type: application/problem+json

{
  "type": "about:blank",
  "title": "Too Many Requests",
  "status": 429,
  "detail": "You've sent too many requests in a given time: you're being rate-limited."
}

Related headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Defined in: RFC 6585. 429 is a client error: change the request before retrying.

Debugging an API call? Convert your request with the cURL converter, check the response with the JSON formatter, or see whether the API is down on its status page.

Often confused with

HTTP 429 FAQ

What does HTTP 429 mean?

429 Too Many Requests: You've sent too many requests in a given time: you're being rate-limited. Every API limits how fast you can call it, per key or per IP. 429 means you hit that limit. The Retry-After header (seconds or a date) says when to try again, and many APIs send X-RateLimit-* headers showing your quota.

Is 429 a client or server error?

It's a client error (4xx): something about the request needs to change before it can succeed.

How do I fix a 429 error?

Wait for Retry-After before retrying, then use exponential backoff with jitter. Cache responses so you make fewer calls; batch requests where the API allows. Throttle your client (a queue or rate limiter) and watch the X-RateLimit-Remaining header.

Should I retry after a 429?

Yes, after the Retry-After time, with exponential backoff.

Other 4xx status codes

All HTTP status codes