How Many IPs Do I Need for Web Scraping?
One of the most common questions from teams setting up a proxy-backed scraping infrastructure is: how many IPs do I actually need? The answer depends on several interacting variables: request volume, target site tolerance, session requirements, and the mix of use cases you are running. This guide breaks down each factor and provides a practical formula you can apply to your own project.
Why IP Count Matters for Scraping Projects
Most websites implement some form of IP-based rate limiting. The thresholds vary widely. A large e-commerce platform backed by a global CDN will tolerate significantly more requests per IP per hour than a mid-tier news site running on shared infrastructure, but the principle is consistent: too many requests from a single IP address within a given time window triggers a throttle or block response.
The role of a proxy pool is to distribute your request volume across enough distinct IP addresses that no single IP approaches the target site’s threshold. If your scraper needs to make 1,000 requests per hour and the target site tolerates 50 requests per IP per hour before throttling, you need at least 20 IPs available at any given time, with some headroom built in to account for variance.
This is the core IP sizing problem, and it is more nuanced than a simple division exercise. Rotation speed, session length, target tolerance, and the nature of your requests all affect the calculation.
It is also worth being explicit about what IP count does not solve: it does not make unethical scraping ethical, and it does not substitute for rate limiting on your end. Distributing a genuinely abusive request rate across more IPs is not a compliant solution. It is just spreading the harm. The use cases and examples in this guide assume legitimate, compliance-conscious collection programs. See our article on ethical web scraping for the full compliance framework.
Factors That Determine How Many IPs You Need
Several variables interact to determine your IP requirements. Working through each one gives you the inputs for the sizing formula in a later section.
Request volume
The total number of requests per unit of time is the primary driver. A price monitoring job that checks 10,000 product pages per day is a very different infrastructure problem from a market research pipeline processing 1 million pages per day. Measure your target throughput in requests per hour. That is the most useful unit for IP sizing.
Target site tolerance
This is the hardest variable to determine precisely, because most sites do not publish their rate limiting thresholds. Proxy infrastructure providers who have operated at scale typically have accumulated data on common targets, but for new targets you will need to calibrate empirically, starting conservatively and observing error rates. A reasonable starting assumption for an unknown target is 30–60 requests per IP per hour for a mid-tier site; large platforms often tolerate more.
Session requirements
Some scraping tasks require maintaining a consistent IP across multiple requests. For example: paginating through search results, or maintaining state across a multi-step data extraction flow. These sticky sessions tie up an IP for the duration of the session rather than releasing it after each request. If a high proportion of your requests are session-dependent, your effective IP utilization per concurrent session is higher, and your pool needs to accommodate those sessions without exhausting available IPs.
Geographic targeting
If your use case requires collection from specific countries (for example, checking localized pricing in Germany and Japan simultaneously) your pool needs adequate coverage in each target geography. A pool with 10,000 IPs concentrated in the US is not useful for a project that needs 200 concurrent IPs in Southeast Asia. Geographic distribution of your pool is as important as raw pool size for geo-targeted projects. See the LocalProxies locations page for current geographic coverage.
Success rate target
Your IP requirements scale non-linearly with your success rate target. Getting from 90% to 95% success rate on a challenging target requires disproportionately more IPs than getting from 80% to 90%, because the marginal blocks are typically happening on the IPs that are most heavily used. Planning for a buffer above the theoretical minimum is always worthwhile.
Sizing by Use Case
Different legitimate scraping use cases have characteristic IP requirements based on their typical request patterns, session needs, and target diversity.
Price monitoring
Price monitoring typically involves checking a defined set of URLs at regular intervals (daily or multiple times per day) across a set of retailers. The request rate is usually low to moderate, but the target diversity is high (many different retailers) and may require geo-specific IPs to see localized pricing. IP requirements tend to be modest in absolute terms but the geographic distribution requirement is significant. For a catalog of 50,000 products checked twice daily across 5 retailers, a pool of 50 to 150 rotating IPs distributed across target geographies is typically sufficient. See our price monitoring guide for more detail on use case architecture.
SEO rank tracking
SEO tracking involves querying search engines for a set of keywords, typically daily, and recording the results. Search engines are among the most aggressive rate limiters in common scraping use cases. Google, Bing, and regional equivalents apply per-IP rate limits that are deliberately low to deter automated queries. This use case often requires a larger IP pool relative to request volume, because the per-IP tolerance is low. A campaign tracking 5,000 keywords daily will typically require 100 to 300 IPs with rotation across each query. Residential IPs with authentic traffic profiles perform better for this use case than datacenter IPs. See our SEO proxy use case page for configuration recommendations.
Market research and competitive intelligence
Market research scraping is characterized by high URL diversity (crawling many sites rather than hitting the same site repeatedly), moderate to high request volumes, and often batch-oriented workflows. The IP requirement scales with throughput: a pipeline processing 500,000 pages per day at a target of 30 seconds per page needs approximately 100 concurrent IPs running at that rate. Session requirements are typically low; most market research collection does not require sticky sessions. This is one of the more pool-efficient use cases.
Ad verification
Ad verification requires viewing ad placements from the perspective of users in specific geographic locations to verify that ads display correctly, reach the intended audience, and are not associated with fraudulent or brand-unsafe inventory. This use case has strong geo-targeting requirements: you need IPs in each specific country, region, or city where ads are running, and benefits from residential IPs with authentic browsing profiles. The raw request volume may be modest, but the geo-distribution requirement drives pool needs. See our scraping use case overview for technical notes on browser-based verification workflows.
The Relationship Between IP Count, Rotation Speed, and Success Rate
IP count, rotation speed, and success rate form a three-way relationship that experienced proxy users learn to tune over time.
Increasing rotation speed (using each IP for fewer requests before rotating) reduces the risk that any single IP accumulates enough request history to trigger a block. But faster rotation requires a larger pool: if you rotate after every request to a target that limits you to 50 requests per IP per hour, you need 50 IPs just to sustain one request per minute from that target without repeating an IP within the hour.
Success rate is the output of this relationship. At a given request volume, a larger pool with slower rotation and a smaller pool with faster rotation can achieve similar success rates, but the larger pool with slower rotation is more robust to pool quality variation (some IPs in any residential pool will have lower success rates due to prior use history or ISP routing characteristics) and provides better headroom for volume spikes.
The practical implication: if you are seeing unexpectedly high block rates with adequate IP count, try reducing rotation speed before increasing pool size. Conversely, if you have very fast rotation but limited pool size, you may be cycling back to IPs that have not fully recovered, causing correlated failures.
When You Need More IPs vs Better Session Management
More IPs is not always the answer to a scraping reliability problem. Sometimes the problem is session management, not pool size.
If your scraper is getting blocked mid-session (for example, partway through paginating a large result set) the issue is likely session consistency, not IP count. Using sticky sessions (maintaining the same IP across a multi-request sequence) and ensuring that session-related cookies and headers are correctly propagated will often solve mid-session block problems without requiring more IPs.
If you are getting blocked immediately on the first request to a target, that is more likely an IP reputation issue (the IP you were assigned has prior history with that target) which more pool diversity can address.
If you are seeing elevated error rates on a small number of target sites but not others, the issue may be site-specific configuration rather than pool size: try adjusting request headers, adding delays, or checking whether the target has updated its rate limiting policy.
More IPs are the right answer when: your target volume has genuinely increased, you have added new geographic targets, or you are seeing correlated failures across many IPs simultaneously (which suggests you are near the capacity ceiling of your current pool).
IP Count vs Bandwidth: Which Costs More?
Residential proxy pricing models typically bill on one or more of three dimensions: bandwidth (GB transferred), IP count (number of distinct IPs available), or request count. Understanding which dimension you are optimizing for matters for cost planning.
For most web scraping use cases, bandwidth is the dominant cost driver, not IP count. A typical HTML page response is 50 to 200 KB; a page with heavy JavaScript rendering can be 1 to 5 MB. At 100,000 pages per day at an average of 200 KB each, you are consuming 20 GB of bandwidth per day, and that is the primary cost variable. Whether you achieve that throughput with 50 IPs or 500 IPs affects reliability and rotation strategy, but the bandwidth cost is roughly the same.
IP count becomes the binding constraint in two scenarios: geo-targeting (you need coverage in specific countries where the pool may be smaller) and use cases with very low page weight but high rate-limiting risk (such as search engine queries, where each response is small but per-IP tolerance is very low). In these cases, you may find that IP diversity is more expensive per successful request than raw bandwidth. For a deeper analysis of these tradeoffs, see our article on proxy bandwidth vs IP count pricing.
A Simple Formula for Estimating Your IP Requirements
The following formula gives a starting estimate for residential IP pool size. It is a starting point for planning, not a guaranteed specification. You will need to calibrate against actual target behavior.
| Variable | Symbol | Description |
|---|---|---|
| Target requests per hour | R | Your total desired throughput, in requests/hour |
| Target site tolerance | T | Estimated requests per IP per hour before throttle (start: 30–60 for unknown targets) |
| Rotation utilization factor | U | Fraction of pool in use at any given time. Use 0.7 as a default (leave 30% headroom). |
| Safety multiplier | S | 1.3–1.5 to account for IP quality variance and volume spikes |
The base formula:
IPs needed = (R / T) / U × S
Worked example: Price monitoring project:
- Target: 5,000 product pages checked twice daily = 10,000 requests/day = ~417 requests/hour (R)
- Target sites: large e-commerce retailers, estimated tolerance 60 requests/IP/hour (T)
- Utilization factor: 0.7 (U)
- Safety multiplier: 1.4 (S)
- IPs needed: (417 / 60) / 0.7 × 1.4 = 6.95 / 0.7 × 1.4 ≈ 14 IPs minimum
Worked example: SEO rank tracking:
- Target: 5,000 daily keyword checks in a 4-hour window = 1,250 requests/hour (R)
- Target: major search engine, estimated tolerance 8 requests/IP/hour (T: search engines are aggressive rate limiters)
- Utilization factor: 0.7 (U)
- Safety multiplier: 1.5 (S)
- IPs needed: (1,250 / 8) / 0.7 × 1.5 = 156.25 / 0.7 × 1.5 ≈ 335 IPs minimum
The SEO example illustrates why target tolerance is the most important variable. A target with tolerance of 8 requests/IP/hour requires roughly 7.5x more IPs than one with tolerance of 60, for the same request volume. Getting an accurate read on target tolerance (through careful calibration rather than assumption) has more impact on your cost than almost any other factor.
How LocalProxies Handles Dynamic Pool Allocation
Static IP pool allocations are a poor fit for scraping workloads that vary significantly by time of day, project phase, or target mix. A pipeline that runs heavy crawls overnight and light spot-checks during business hours should not pay for peak capacity 24 hours a day.
LocalProxies uses dynamic pool allocation: your effective pool size adjusts to match demand rather than being fixed at provisioning time. The pool draws from a shared residential network, with per-account quotas enforced on concurrent usage rather than on a pre-allocated subset of IPs. This means you can burst to higher concurrency for time-sensitive projects without pre-provisioning capacity, and your baseline cost reflects your actual average usage rather than your peak requirement.
Real-time pool health metrics (available IPs per geography, median latency, success rates, and pool freshness) are exposed via the API, so scraping infrastructure can make autonomous routing decisions based on current pool state rather than static configuration. This matters particularly for multi-geo projects where the optimal routing decision may change based on pool availability in each target region.
For teams managing multiple scraping projects simultaneously, per-project quota tracking provides visibility into which projects are consuming pool capacity and at what rate. This prevents a high-volume project from starving lower-priority workloads and provides the data needed to refine your sizing estimates over time.
If you are starting a new scraping project and want to validate your IP sizing estimate against real pool behavior, contact us to start a trial. We can help you calibrate based on your specific target mix and throughput requirements. For a general overview of how to configure LocalProxies for scraping workflows, see the scraping use case guide and our locations overview.