computerscience.co.uk

HTTP 4xx status code

429 Too Many Requests

429 Too Many Requests is the code a server sends when a client is asking for too much, too fast. It does not mean the request was wrong or forbidden. It means the client has hit a limit on how often it may call the server, and it should wait before trying again. This is the mechanism behind rate limiting, which almost every serious API relies on to stay fair and stay up.

The point of rate limiting is to protect a shared service from being overwhelmed, whether by accident or on purpose. Without it, a single misbehaving script, or a sudden flood of traffic, could exhaust a server’s capacity and degrade the service for everyone. By capping how many requests each client may make in a window of time and returning 429 when the cap is passed, the server keeps things stable and shares its capacity out.

Handling a 429 correctly matters, especially for automated clients. The polite response is to slow down, not to retry immediately, which only makes the problem worse. Many servers include a Retry-After header telling the client exactly how long to wait. When they do not, the standard approach is exponential backoff, waiting a little after the first failure and roughly doubling the wait after each further one, so a struggling server is given room to recover. As more software calls APIs automatically, including AI agents that can generate requests far faster than any human, handling 429 gracefully has become a basic requirement of writing a well-behaved client.

Frequently asked

What does HTTP 429 mean?

It means the client has sent too many requests in a given amount of time and has been rate limited. The server is asking the client to slow down and try again later rather than refusing the request permanently.

How do you fix a 429 error?

Slow down and retry. If the response includes a Retry-After header, wait that long before trying again. Otherwise back off for a growing delay between attempts, a pattern called exponential backoff, so you stop hammering the server.

What is the Retry-After header?

It is a response header that tells the client how long to wait before making another request, given either as a number of seconds or as a date. Well-behaved clients read it and pause for exactly that long.

Sources

Last reviewed: 10 July 2026.