429 Too Many Requests through a proxy: slow down, or spread out
A 429 means someone is counting your requests and you went over the limit. The standard says the user “has sent too many requests in a given amount of time (“rate limiting”)“, and adds that it “does not define how the origin server identifies the user, nor how it counts requests” (RFC 6585, section 4). Through a proxy, two different counters can send it: the site’s, which counts per address, account or session, and the proxy provider’s, which counts your connections or requests against your plan. They need opposite fixes.
Proxy error · Last revised Oct 20, 2026
On this page
Find out which counter it is
curl -s -o /dev/null -x "http://USERNAME:[email protected]:8000" \
-w "proxy %{http_connect} site %{http_code}\n" https://the-site-you-need.com/page
proxy 200 site 429 (what our test printed on Oct 19, 2026, against a page that returns 429) means the proxy connected you and the site is limiting you. proxy 429 site 000 means your provider refused to open another connection: you are over the plan’s limit on connections or requests at once.
When the site is limiting you
- Read Retry-After and wait that long. A 429 “MAY include a Retry-After header indicating how long to wait before making a new request” (RFC 6585). Print the headers with
curl -s -D - -o /dev/null ...and honour it; retrying sooner usually resets the wait or gets the address blocked. - Back off between retries. Wait longer after each 429 (for example 2, 4, 8 and 16 seconds) instead of retrying at once.
- Check what the site counts. If you are logged in, the site counts the account, and a new address changes nothing. If not, it usually counts the address: rotating IPs, or more of them, spreads the same requests over more counters (static vs rotating proxies).
- Keep sticky sessions short. A session that keeps one address for 30 minutes sends every request of those 30 minutes from one counter. For page-by-page collection, rotate per request; keep a session only for steps that must come from one visitor.
- Ask for less. Skip pages that have not changed, request the data endpoint instead of the full page, and do not download images or scripts you do not use. Fewer requests cost less traffic too.
When your provider is limiting you
Your plan caps the connections, threads or requests you may run at once. Lower your tool’s concurrency to the number in your plan, or buy a plan with a higher cap; the web scraping page compares plans whose pages say they do not cap connections at all. How the caps work: concurrency limits and thread limits.
What retrying costs
Each retry is a new request, and on a plan billed by the GB each 429 response is traffic you pay for unless your provider’s terms say failed requests are free. A retry loop without a wait can spend a day’s traffic in minutes.
What failed responses cost: on a plan billed by the GB, a refused or blocked page is traffic too, unless your provider's terms say failed requests are free. 1,000 of them at about 100 KB each are 0.1 GB, about $0.07 at today's cheapest residential rate for 50 GB (Geonode, $0.69 a GB, the cheapest of 55 plans checked up to Oct 24, 2026). A retry loop that runs all night, 10 requests a second for 8 hours, is 288,000 of them: 28.8 GB, about $19.96. Retrying a 429 at once instead of waiting out its Retry-After, at the same 10 a second, is 600 responses a minute: 0.06 GB, about $0.04 a minute and $2.49 an hour. The wait itself costs nothing. Price your own amount →
Related
A site that limits you without saying so may answer 403 Forbidden instead, or a page with a 200 that is really a captcha: see 200 OK but blocked.
Price it for your amount
Today's checkout totals, every billing type competing. Change the amount to recalculate.
Geonode
$34.65Residential monthly subscription · Monthly
Checked Oct 24, 2026 · $0.69 per GB used
Buy at Geonode →GB and IP packages use separate amounts and billing units.