429 Client Error πŸ“‹

429 Too Many Requests: Rate Limiting in Action

Last updated: June 28, 2026 β€’ 6 min read

✦ The Golden Answer: The 429 Too Many Requests status code indicates that the client has sent too many requests in a given amount of time. This is a rate limiting mechanism to protect the server from being overwhelmed, to prevent abuse, or to enforce fair usage policies. The server should include a Retry-After header indicating how long the client should wait before making a new request. Clients should implement exponential backoff and respect the Retry-After value.

How Rate Limiting Works

Rate limiting restricts the number of requests a client can make within a specific time window (e.g., 100 requests per minute). When the limit is exceeded, the server returns 429 Too Many Requests. The server may also send a Retry-After header with a number of seconds or a date/time after which the client can retry.

Common Causes of 429 Errors

CauseExampleHow to Fix
High request frequencyClient sends 200 requests in 1 minute when limit is 100/min.Reduce request rate; implement caching or batch requests.
Multiple clients from same IPMany users behind a corporate proxy sharing the same IP.Use API keys to distinguish clients; increase IP-based limits.
Bursty trafficClient sends many requests in a short burst (e.g., scraping).Use exponential backoff or spread requests over time.
Server policyServer intentionally limits free tier users.Upgrade to a higher tier or wait for the limit to reset.

Example: 429 Response with Retry-After

A client exceeds the rate limit and the server responds:

GET /api/data HTTP/1.1 Host: example.com HTTP/1.1 429 Too Many Requests Retry-After: 60 Content-Type: application/json { "error": "Rate limit exceeded", "message": "You have exceeded the limit of 100 requests per minute. Please wait 60 seconds and try again." }

How to Fix 429 Errors

  • If you're a client developer: Implement exponential backoff (e.g., wait 1s, 2s, 4s, etc.) and respect the Retry-After header. Cache responses when possible to reduce the number of requests. Use batch endpoints if available.
  • If you're a server administrator: Adjust rate limiting settings (e.g., increase the limit, extend the time window, or use a sliding window algorithm). Use API keys to differentiate clients behind the same IP.
  • If you're an end‑user: This error usually indicates heavy usage of an API. Wait a few minutes and try again, or contact the service provider to increase your limits.

Rate Limiting Algorithms

  • Fixed Window – counts requests in a fixed time window (e.g., 100 requests per minute).
  • Sliding Window – more precise, counts requests in a moving time window.
  • Token Bucket – allows bursts but limits average rate.
  • Leaky Bucket – smooths out bursts, processes requests at a constant rate.

Frequently Asked Questions

Is 429 a client error or a server error?

It's a client error (4xx) because the client is sending too many requests. The server is working correctly but is enforcing a rate limit to protect itself.

What is the Retry-After header?

The Retry-After header tells the client how long to wait before making a new request. It can be an integer (seconds) or an HTTP date. Clients should respect this value to avoid being blocked further.

Can I get a 429 even if I'm not making many requests?

Yes, if your IP is shared with other users (e.g., corporate proxy, VPN), the aggregate request count may exceed the limit. Use an API key to get a separate limit.