Proxy Requirement Calculator
Estimate how many proxies your job needs from its request volume, deadline and per-IP limits. Four numbers you already have or can measure in an afternoon go in, and the calculator shows every step of the working.
Example settings to start from. Their figures are illustrations, not measurements of any target.
Include every page of pagination, every API call a page fires and every asset you fetch.
The time the run has to finish in, not the calendar day.
Your measured r: the rate one address sustains against this target. It depends on the target, not on the provider.
What your deadline needs running at once. Leave at 0 if you do not know it yet.
Defended targets often cap this at one or two, independently of request rate.
Share of attempts that return no usable response (timeouts, resets, 403s, 429s, challenge pages) and get retried. Measure it on a small sample against your target. 0 to 95.
Measure it with your real fetch settings. HTML only and everything-loaded differ by an order of magnitude.
Only changes the plan size. Bandwidth packages are monthly, so a daily job runs about 30 times.
Estimated proxies needed
14
This is the estimated minimum from the inputs above. Real runs usually want some headroom over it: new addresses start with no history, some trip a defense and need resting, and volume tends to grow.
Which product fits
A static pool, bought by the address
14 addresses is within the 100 this calculator treats as a pool you can shard yourself, and the 0% failure allowance is under the 30% point where it switches to rotating. You are sizing an address count, so per-IP pricing fits.
Smallest listed size that covers 14 addresses: Premium Datacenter, 25 addresses at $32.25/mo. See Premium Datacenter pricing
The working
- Run window
- 28,800 s
- Peak aggregate rate
- 6.9 req/s
- Per-IP rate (r)
- 0.50 req/s
- Rate floor
- 13.9 addresses
- Concurrency floor
- not given
- Binding constraint
- Pace against the per-IP rate limit
- Retry multiplier
- 1.00x
- Requests including retries
- 200,000
- Requests per proxy
- 14,286
- Each proxy busy for
- 7 h 56 min of the window (99%)
- Bandwidth for the run
- 80.0 GB
The same job at other failure rates
Illustrative rates, worked by the same formula as the answer above. Your own input is highlighted.
| Failure rate | Attempts per success | Proxies | GB / run | Shape |
|---|---|---|---|---|
| 0% (yours) | 1.00 | 14 | 80.0 GB | Static |
| 5% | 1.05 | 15 | 84.2 GB | Static |
| 20% | 1.25 | 18 | 100 GB | Static |
| 40% | 1.67 | 24 | 133 GB | Rotating |
What this number assumes
- No in-flight figure was given, so only the rate floor was computed. If your target caps simultaneous connections per address, that can set a higher floor on its own.
- With a 0% failure allowance this is the paper number: every attempt succeeds first time. Enter the failure rate you measure against your own target, and use the sensitivity table to see how far the answer moves.
- Every address would be working almost the entire window at its tolerated rate, with no slack for a cold start or a rested address. Plan for some headroom above this floor.
- More addresses only help when the limit is keyed to the address. A limit keyed to an account, an API key, a session cookie or a fingerprint follows your traffic through every exit you own.
How the number is derived
Two independent floors, and the larger one wins. The rate floor is your peak aggregate request rate divided by the rate a single address is tolerated at. The concurrency floor is the number of requests you need in flight divided by the simultaneous connections one address is allowed. The retry multiplier then inflates whichever floor won, because a failed attempt still costs a request.
- Count the full request volume, pagination and per-page extras included.
- Convert it to peak requests per second over the run window.
- Rate floor: peak rate divided by r.
- Concurrency floor: required in-flight divided by the per-address cap.
- Take the larger floor, then apply the retry multiplier.
- Decide the shape: an address count you shard, or bandwidth through a pool.
Rates are converted to requests per second and windows to seconds before anything is divided, so 30 per minute and 0.5 per second give the same answer. Bandwidth is attempts including retries times the average transfer, in decimal units (1 GB is 1,000,000 KB). It counts a failed attempt at full size, so treat it as an upper estimate. The calculator suggests a static pool while the answer is 100 addresses or fewer and the failure allowance is under 30%, and a rotating gateway otherwise. Those two cut-offs are planning rules of thumb, shown so you can apply your own. The plan size is the smallest listed size that covers the answer: addresses for a static pool, or GB per run times runs per month for a rotating one.
Failures and the retry multiplier
A failure is any attempt you have to repeat to get the response you need: a timeout, a reset connection, a 403 or 429, or a challenge page in place of content. If a share f of attempts fail and every failure is retried until it succeeds, each success costs 1 / (1 − f) attempts on average, so attempts = requests / (1 − f). At 20% that is 1.25 attempts per success and at 40% about 1.67. At 100% no number of retries finishes the job, which is why the field stops at 95%. The multiplier assumes failures are spread evenly across attempts; a target that blocks an address outright after a few tries costs more than this.
To measure your own rate, send a few hundred requests to your target at the pace you plan to run, through the kind of address you plan to use, and divide the failed attempts by the total. The rate moves with pace, time of day and the target's defenses, so re-check it before a large run. The 5%, 20% and 35% in the example settings are illustrations, not typical values.
Measuring r
r is the sustained rate one address holds against your specific target before the 429s and challenge pages start. It depends on that target's defenses, not on any proxy, so it has to be measured. From one address, request at a gentle pace, step the rate up while holding at each level, and take half of the last clean rate as your working figure. The headroom is deliberate, because limits are enforced over bursts rather than smooth averages. Re-measure per target and re-measure occasionally, since defenses change without announcement.
When more proxies will not help
More addresses raise your ceiling only when the limit is keyed to the address. Limits keyed to an account, an API key, a session cookie or a TLS fingerprint follow your traffic through every exit you own, so a job that collects 429s can triple its pool and collect the same 429s. The check takes minutes: run the same pattern through two exits at once. If combined throughput roughly doubles, the limit is per-address and more addresses help. If it stays put, the fix is pacing, session handling or header hygiene, and this estimate does not apply.
The full derivation, with worked examples
This calculator implements the arithmetic from How Many Proxies Do I Need: The Actual Math, which walks two jobs at different scales through the same steps, covers why the window and r dominate the result far more than page count does, and explains when a rotating gateway is the better shape than a static pool you shard yourself. If you already know your address count and just need the connection details, the connection string builder takes it from there.
More free tools
Request one URL from a datacenter IP and residential IPs at once, and see which of them gets blocked.
What your HTTP client gives away: header order, missing client hints, and contradictions with your user-agent.
Five questions and a straight answer, including when the answer is that you do not need proxies at all.
Your public IP address, the country it resolves to, reverse DNS and the headers your browser sends.
Check a path against a pasted robots.txt and see the exact rule that allowed or disallowed it.
Paste a curl command and read it back as Python, Node.js, Go or PHP, with the flags translated properly.
Turn a proxy host, port and credentials into working curl, Python, Node.js and Scrapy snippets.
Network address, broadcast, usable range and host counts for any CIDR prefix length.
Decode any user-agent string into browser, engine, OS and device, including bots and HTTP libraries.
Need proxies behind your code?
Node4 sells datacenter, rotating and residential proxies over HTTP(S), with SOCKS5 on paid plans. Datacenter and rotating exits are in the US, Italy and Spain; residential exits cover 170+ countries. Start with free proxies, no card required.