DD
DevDash

HTTP 429 Too Many Requests: What It Means and When You See It

Quick Answer

HTTP 429 Too Many Requests means the user has sent too many requests in a given time period (rate limiting). The Retry-After header may indicate when to retry.

Why HTTP 429 Occurs

HTTP 429 Too Many Requests means the client has exceeded the API's rate limit. Rate limits prevent abuse, protect servers from overload, and enforce fair usage. The response should include Retry-After (seconds to wait) and optionally X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. Limits may apply per IP, per API key, per user, or per endpoint.

Handling 429 in Code

Implement exponential backoff: wait 1s, 2s, 4s, 8s between retries. Read the Retry-After header: const retryAfter = parseInt(res.headers["retry-after"] || "1"); await sleep(retryAfter * 1000). For server-side rate limiting (Express): use express-rate-limit. const limiter = rateLimit({ windowMs: 60000, max: 100 }); app.use("/api/", limiter). Returning 429 with a Retry-After header is required by RFC 6585.

Try the interactive tool

Convert any value instantly — no sign-up required

Open tool →

Frequently Asked Questions

Related Values

Want API access + no ads? Pro coming soon.