HTTP 429 Too Many Requests: What It Means and How to Fix It
DIRECT ANSWER
HTTP 429 Too Many Requests means the server or an intermediary has rate-limited the client after receiving too many requests in a defined period. Check the `Retry-After` header, stop rapid retries, and retry after the indicated delay. Site owners should identify whether the application, web server, proxy, CDN or WAF generated the response before changing limits or configuration.
Key takeaways
- HTTP 429 is a rate-limiting response, not proof that the entire website is down.
- A
Retry-Afterheader may state when the client can try again; follow it when present. - Confirm the exact URL, HTTP method, client, response headers and timestamp before troubleshooting.
- Use logs to identify whether the application, server, reverse proxy, CDN or WAF produced the response.
- Apply the narrowest safe change and avoid bypassing security controls without authorization.
Site Administrator
Last reviewed: September 25, 2026
What this error means & how to recognize it
- A browser, API client, monitoring tool or checker receives
429 Too Many Requests. - The response may affect one URL, API route, HTTP method, IP address, account or client rather than the whole site.
- Requests may begin working again after a delay, which is consistent with a temporary rate limit.
- The response may include
Retry-Afteror other rate-limit-related headers. - DNS can resolve and TLS can succeed because the request reached an HTTP-speaking endpoint; those checks do not prove that the request is permitted at the application layer.
- Different clients or networks may receive different results when the limit is scoped to an IP, identity, token or session.
Root causes, ordered by likelihood
- A request-rate limit was exceeded. The application, API gateway or web server may limit requests by IP address, account, session, API key, route or another client identity.
- A proxy, CDN or WAF applied its own policy. An intermediary can return 429 before the request reaches the origin server.
- Automated traffic is sending requests too quickly. Crawlers, monitoring checks, scripts, retries or parallel workers can trigger a limit even when individual requests appear valid.
- A client is retrying without backoff. Repeated retries after failures can keep the client inside the limit window or intensify load.
- A configuration or deployment changed the effective threshold. A recent rule, routing change, authentication integration or proxy policy may have altered which requests are counted or limited.
- The limit is intentional but the client workflow is incompatible with it. For example, a batch process may need pacing, connection reuse or an approved request quota rather than repeated immediate retries.
How to fix it
For visitors and API consumers
- Stop rapid refreshes, parallel requests and automatic retries while investigating.
- Check the response headers for
Retry-After. If it is present, wait for the stated delay or time before retrying. - Retry the exact URL or API endpoint with the same method after the delay. Do not switch methods or repeatedly vary requests just to evade the limit.
- If you control the client, use bounded retries with exponential backoff and jitter, and respect the service’s documented request quota. Avoid retrying requests that are not safe to repeat unless the API defines their retry behavior.
- Check whether the problem affects one client, account, API key, network or endpoint. A different result from another client does not by itself identify the cause.
- If the 429 persists, contact the site or API owner with the endpoint, method, timestamp, response headers and a description of request frequency. Remove cookies, authorization values and API secrets from anything you share.
For site owners and developers
- Reproduce the response with the smallest authorized test that matches the affected method, URL, client identity and request rate. Record the status, timestamp and relevant response headers.
- Identify the generating layer. Check the CDN or WAF response details, reverse-proxy logs, web-server logs and application logs in the order that matches your architecture. Do not assume the origin generated the response.
- Search the relevant logs for the same timestamp, route, client identifier and rate-limit decision. Determine what is being counted and which limit window or policy was applied.
- Compare the affected request with a normal request. Check the HTTP method, authentication context, source identity, route, caching path and recent deployment or configuration changes.
- If the limit is intentional, improve the client guidance: return an accurate
Retry-Aftervalue where appropriate, document quotas, and ensure clients can use controlled backoff rather than tight retry loops. - If the limit is incorrect, apply the narrowest authorized correction at the layer that generated the response. Validate its effect on the affected route without weakening unrelated security or abuse protections.
- Retest the same request and rate, then test representative neighboring routes and client identities. Confirm that intentional limits still work and that the response no longer blocks legitimate traffic.
Prevention & how to verify the fix
- Define and document request quotas, limit scope and retry behavior for APIs and automated clients.
- Return useful rate-limit information, including
Retry-Afterwhen appropriate and supported by the service design. - Implement bounded exponential backoff with jitter in clients instead of immediate repeated retries.
- Monitor 429 rates by route, client identity, network and deployment so broad increases are distinguishable from isolated abuse or misbehaving clients.
- Keep CDN, WAF, proxy, server and application rate-limit settings version controlled and review changes before release.
- Test important API methods and public routes after deployments, including expected behavior when a threshold is reached.
- Retain enough sanitized request and policy-decision logging to match a 429 response to the component that generated it.
When to get outside help
Escalate to the site or API owner when 429 responses continue after the indicated retry period, affect a legitimate workflow unexpectedly, or occur across many users or important public routes. Site owners should involve the team responsible for the CDN, WAF, proxy, server or application when logs disagree about the generating layer. Before escalation, provide sanitized URLs and methods, timestamps with timezone, request frequency, response headers and relevant rate-limit logs; never share passwords, cookies, authorization tokens or API secrets.
Frequently asked questions
Does HTTP 429 mean the whole website is down?
No. HTTP 429 applies to a request that was rate-limited. It may affect only one route, method, client, account, IP address or API key while other parts of the site continue to work.
What should I do when a 429 response includes Retry-After?
Stop immediate retries and wait for the delay or time specified by that header. Then retry according to the service’s documented limits. If the problem continues, provide the endpoint, timestamp and sanitized headers to the service owner.
Can DNS and TLS be healthy when HTTP 429 is returned?
Yes. A 429 is an HTTP-layer response, so DNS resolution and TLS negotiation may have succeeded. Those results do not show that the request passed the application, proxy, CDN or WAF rate-limit policy.
Why does one client receive 429 while another works?
Rate limits can be scoped by IP address, account, session, API key, route, method or another identity. Compare the request context and frequency rather than assuming the server is randomly failing.
Should I keep retrying a 429 request?
No. Repeated immediate retries can extend the limit or increase load. Respect Retry-After when supplied and use bounded backoff with jitter when you control the client.
What should a site owner check first?
Confirm the exact method, URL, client identity, request rate and response headers, then determine which layer generated the response. Match that event to CDN/WAF, proxy, server or application logs before changing a limit.
Further documentation
- MDN Web Docs — HTTP 429 Too Many Requests: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429
- RFC 9110 — HTTP Semantics: https://www.rfc-editor.org/rfc/rfc9110
For implementation details, consult the documentation for the specific application, web server, reverse proxy, CDN or WAF that generated the response, especially its rate-limit policy and Retry-After behavior.