Python requests error
429 Client Error: Too Many Requests for url
raise_for_status() raises this when a site answers 429. The url after it is the page you asked for.
You asked the site too often.
It wants you to slow down.
What it means
429 means the client sent too many requests in a given amount of time. The server may add a Retry-After header that says how long to wait.
Limits are often per IP address, and per user or key when requests are signed in. They can cover the whole site or one path.
Fix it
- Read
Retry-Afterfrom the response and wait that long before the next request. - Add a delay between requests, and wait longer after each repeated 429.
- Reuse what you already fetched: cache pages and ask only for what changed.
- If the limit keeps biting, the site wants you on its API or a paid plan.
With superbot
superbot's read tool names a rate limit instead of raising. It answers page_rate_limited with this message, and passes along the site's Retry-After value when the site sends one:
page returned 429: the site is rate limiting readers. Read the same facts from another source, or read this page again later.
A real browser does not help with a plain rate limit, so superbot does not retry one in a browser. The next step is another source, or the same page later.
Read https://httpbin.org/status/429 and tell me why it did not open.
It opened fine; httpbin answered with HTTP 429, an empty body by design.
…
httpbin's /status/<code> endpoint exists to return exactly that status code and nothing else, so 429 here is not a rate limit you hit and not a failure of your connection.This needs an account.
An agent with none signs you in through /auth.md.
You read back one emailed code.
Related
Source: MDN: 429 Too Many Requests. Read on 2026-10-18.