HTTP 429 Too Many Requests — Rate Limiting & Throttling Guide
About HTTP 429 Too Many Requests
HTTP 429 Too Many Requests means the user has sent too many requests in a given time window and the server is rate limiting, with retry guidance in Retry-After header. This guide covers everything you need to know about this topic, including common causes, step-by-step solutions, and answers to frequently asked questions.
Here are the key things to understand: Server is actively rate limiting your requests due to excessive volume. The Retry-After header indicates how long to wait before retrying (seconds or date). Rate limits are typically per IP address, API key, or user account. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset headers show your quota. Continued requests during rate limiting may result in longer bans or IP blocking. Understanding these fundamentals will help you diagnose and resolve this issue more effectively.
The most common reasons this occurs include: Automated scripts making too many API calls without rate limiting. Bot traffic or web scraping exceeding server thresholds. Misconfigured polling interval refreshing too frequently. Multiple clients sharing the same API key exhausting shared quota. DDoS mitigation triggering on legitimate but high-volume traffic. Identifying the root cause is the first step toward finding the right solution.
To resolve this, follow these recommended steps: Check the Retry-After response header and wait that duration before retrying. Implement exponential backoff: wait 1s, 2s, 4s, 8s between retries. Add rate limiting to your client code to stay under the API quota. Use X-RateLimit-Remaining header to proactively slow down before hitting the limit. Contact the API provider to request a higher rate limit if legitimate needs require it. If these steps do not resolve the issue, consider consulting additional resources or a qualified professional.
This article is part of our HTTP Status Codes collection on Error Codes Wiki. We provide comprehensive, up-to-date information to help you find solutions quickly.
Quick Answer
How long should I wait after a 429?
Check the Retry-After header. If not present, start with 1 second and use exponential backoff (double wait time each retry).
Overview
HTTP 429 Too Many Requests means the user has sent too many requests in a given time window and the server is rate limiting, with retry guidance in Retry-After header.
Key Details
- Server is actively rate limiting your requests due to excessive volume
- The Retry-After header indicates how long to wait before retrying (seconds or date)
- Rate limits are typically per IP address, API key, or user account
- X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset headers show your quota
- Continued requests during rate limiting may result in longer bans or IP blocking
Common Causes
- Automated scripts making too many API calls without rate limiting
- Bot traffic or web scraping exceeding server thresholds
- Misconfigured polling interval refreshing too frequently
- Multiple clients sharing the same API key exhausting shared quota
- DDoS mitigation triggering on legitimate but high-volume traffic
Steps
- 1Check the Retry-After response header and wait that duration before retrying
- 2Implement exponential backoff: wait 1s, 2s, 4s, 8s between retries
- 3Add rate limiting to your client code to stay under the API quota
- 4Use X-RateLimit-Remaining header to proactively slow down before hitting the limit
- 5Contact the API provider to request a higher rate limit if legitimate needs require it