Residential Proxy Pricing: What You Actually Pay Per GB
Residential proxy pricing looks simple until you run the math. Here is what you really pay per GB, the hidden multipliers, and when flat rate wins.

Residential proxy pricing is quoted per gigabyte, and the quoted number is almost never the number that lands on your invoice. Retries, prepaid bandwidth that expires, overage rates and premium targeting surcharges all sit between the sticker price and your real cost. This guide gives you the current price bands, the arithmetic that converts a list rate into an effective rate, and the break-even points where a flat-rate plan or a per-request API beats per-GB billing outright.
The Short Answer on Price
As of September 2026, published entry pay-as-you-go rates for rotating residential proxies sit roughly between $3 and $9 per GB across the major vendors, with committed and enterprise tiers published as low as the $1 to $4 range at large volume. That spread of 3x to 6x between the entry rate and the committed rate is the single biggest lever on your bill, bigger than any difference between providers at the same tier.
Three things follow from that, and they decide most purchases:
- If your target site accepts datacenter IP ranges, per-GB residential billing is the wrong product. A flat-rate datacenter plan costs a fraction of a cent per page at volume.
- If you genuinely need residential exit IPs, the tier you commit to matters more than the logo on the invoice.
- If your pages are heavy or need JavaScript rendering, per-request billing usually beats per-GB billing, because you stop paying for megabytes of images, fonts and analytics scripts you never parse.
The rest of this guide is the math behind those three sentences.
Six Pricing Models and What Each One Bills For
Vendors use six billing shapes. Knowing which one you are buying tells you where the cost leak will be.
| Model | Billed unit | Cost leak to watch | Best fit |
|---|---|---|---|
| Pay as you go, per GB | Bytes in and out through the proxy | Highest per-GB rate, often with expiry on the prepaid block | Spikes, one-off jobs, evaluation |
| Monthly commit, per GB | Prepaid GB block per month | Unused GB at month end, punitive overage rate | Predictable, steady residential volume |
| Annual commit | Prepaid GB for the year | Locking a rate before you know your real consumption | Mature pipelines with 12 months of history |
| Per IP, static residential or ISP | One IP per month, bandwidth usually unmetered | Paying for idle IPs, subnet reuse across customers | Account-bound work, long-lived sessions |
| Flat rate, unlimited bandwidth | Threads and speed ceiling, not bytes | Thread cap and speed cap, not the byte count | High-volume scraping on datacenter-tolerant targets |
| Per request, credits | One request, priced by fetch type | Paying full price for pages you could have fetched raw | Heavy pages, rendering, mixed targets |
The models are not interchangeable. Per-GB billing punishes heavy pages. Per-request billing punishes very light pages. Flat-rate billing punishes low volume. Match the model to the shape of your traffic before you compare rates, because comparing a $5 per GB residential quote to a $75 flat plan without normalising both to cost per successful record tells you nothing.
For a deeper breakdown of the flat-rate and thread-based side of that table, see our guide to datacenter proxy pricing models.
Scraping at scale? Skip the blocks.
Fast, unblockable datacentre proxies with unlimited bandwidth.
Published List Prices, September 2026
The table below reflects each vendor's own published pricing pages as of September 2026. Proxy pricing changes frequently, promotional rates come and go, and enterprise quotes are negotiated privately and are not public. Treat this as the shape of the market, not as a quote, and check each vendor's current pricing page before you budget.
| Provider (each vendor's own published rates, September 2026) | Entry pay-as-you-go, per GB | Lowest published committed rate |
|---|---|---|
| Bright Data | High single digits | Low single digits on large annual commitments |
| Oxylabs | High single digits | Roughly the $4 range and below at enterprise volume |
| Decodo (formerly Smartproxy) | Mid single digits | Roughly the $2 to $3 range at higher tiers |
| SOAX | Mid to high single digits | Mid single digits |
| IPRoyal | Mid single digits, with non-expiring packages advertised | Under $2 at large prepaid volume |
| Webshare | Low to mid single digits | Lower again on annual billing |
Two structural notes matter more than the exact digits. First, several vendors publish a lower headline rate that applies only to a specific pool tier, and route premium or city-level targeting to a higher rate. Second, the advertised committed rate usually assumes you consume the whole block. If you do not, see the next section.
Effective Cost Per GB: The Three Multipliers
Your effective rate is the list rate multiplied by three factors that no pricing page shows.
effective $/GB = list rate
x (1 / success share) # you pay for failed attempts too
x (purchased GB / consumed GB) # you pay for GB you never used
+ overage exposure # the rate above your commit
Work an example. You buy a 100 GB monthly block at $6 per GB, your pipeline succeeds on 80% of attempts, and you consume 80 GB before the month resets.
6.00 x (1 / 0.80) x (100 / 80) = $9.38 per consumed, successful GB
That is a 56% premium over the sticker price, and nothing went wrong. The pipeline behaved normally.
Multiplier one: failure share
Every blocked response, CAPTCHA interstitial and timeout still moved bytes through the proxy, and metered vendors bill those bytes. A block page is small in raw HTML terms, often 5 KB to 30 KB, so the direct byte cost of a failure is minor. The real cost is the successful retry, which pays full page weight a second time. Raw HTML pipelines absorb this. Headless pipelines do not, because a failed render still pulled the entire asset bundle before the block was detected. Retry policy is a pricing decision, not just a reliability decision. Our guide on detecting when your scraper is blocked covers classifying those responses so you stop retrying the ones that will never succeed.
Multiplier two: unused prepaid GB
Bandwidth blocks that reset monthly convert a per-GB price into a subscription. If you routinely finish the month at 70% consumption, you are paying 1.43x list. Ask two questions before you commit: does unused bandwidth roll over, and for how long. A non-expiring package at a slightly higher list rate is often cheaper in practice than an expiring package at a lower one.
Multiplier three: overage
Overage is priced above your in-plan rate at most vendors, sometimes well above it. Traffic is bursty, so a pipeline sized exactly to its average will overrun in any month with a target redesign or an extra crawl. Size the commit to your median month and confirm the overage rate in writing, or size it to your peak and confirm rollover.
If bandwidth accounting itself is unfamiliar, our explainer on bandwidth in proxy services defines what actually gets metered, including request headers, TLS handshakes and CONNECT tunnels.
Buy on Cost Per 1,000 Successful Records
Cost per GB is a vendor metric. Cost per 1,000 successful records is a business metric, and it is the only number that survives a change of provider, pool or fetch strategy.
Converting between the two takes one input: bytes per successful page. The table below uses 1 GB = 1,000 MB, which is how most proxy dashboards count, and prices 100,000 pages at both the $6 list rate and the $9.38 effective rate calculated above.
| Fetch path | Bytes per successful page | GB per 100,000 pages | At $6.00 list | At $9.38 effective |
|---|---|---|---|---|
| Raw HTML only | 120 KB | 12 GB | $72 | $113 |
| HTML plus 3 JSON or XHR calls | 350 KB | 35 GB | $210 | $328 |
| Headless, images and fonts blocked | 1.2 MB | 120 GB | $720 | $1,126 |
| Headless, full page load | 2.8 MB | 280 GB | $1,680 | $2,626 |
The span from the top row to the bottom row is 23x on identical data. Before you negotiate a rate, check whether the page you are rendering actually needs rendering. Many product and listing pages ship their data in embedded JSON or in a public XHR endpoint that a plain fetch can reach, and that single change moves you three rows up the table.
Break-Even: Per GB vs Flat Rate vs Per Request
Per GB against a flat rate
A flat-rate plan has no byte meter, so its cost per page falls as volume rises. SparkProxy's published plans are flat-rate datacenter plans with unlimited bandwidth and 30 days validity: Starter at $75 per month with 100 threads and 5 whitelist slots, Core at $140 with 250 threads and 10 slots, Boost at $240 with 500 threads and 15 slots, and Plus at $440 with 1,000 threads and 25 slots.
At a $6 per GB residential list rate, the $75 Starter plan is break-even at 12.5 GB per month, which is roughly 104,000 pages of 120 KB raw HTML.
| Monthly volume, 120 KB pages | GB | Residential at $6/GB | SparkProxy Starter, $75 flat | SparkProxy Boost, $240 flat |
|---|---|---|---|---|
| 50,000 pages | 6 GB | $36 | $75 | $240 |
| 250,000 pages | 30 GB | $180 | $75 | $240 |
| 1,000,000 pages | 120 GB | $720 | $75 | $240 |
| 5,000,000 pages | 600 GB | $3,600 | $75 | $240 |
The honest caveat: this comparison is only valid where datacenter IPs actually work on your target. Residential exits exist because some sites score datacenter ASNs harshly, and no amount of flat-rate pricing fixes a 100% block rate. Test first, then price. Our comparison of residential and datacenter proxies covers where each type holds up.
The second caveat is that "unlimited" is bounded by the plan's speed ceiling, not by a byte quota. SparkProxy's Fair Usage speed caps run 25 Mbps on Starter, 50 on Core, 100 on Boost, 150 on Plus, 200 on Pro, 250 on Pro+, and up to 1 Gbps on custom arrangements. That is a ceiling rather than a guaranteed rate, and Pro and Pro+ are not publicly priced. A 25 Mbps ceiling is about 11 GB per hour if you saturated it continuously, so the practical limit on the entry plan is throughput and thread count, not bandwidth. Size on threads and concurrency, not on gigabytes.
Per GB against per request
Credit-based billing prices a request by what it costs to serve, not by what it weighs. On the SparkProxy Scraping API, a plain fetch is 1 credit, a JavaScript render is 5, and a screenshot or PDF is 10. Plans are Starter at $49 for 250,000 credits and 50 concurrent requests, Growth at $99 for 1,000,000 credits and 100 concurrent, Pro at $249 for 3,000,000 credits and 200 concurrent, and Scale at $599 for 8,000,000 credits and 400 concurrent. There are 1,000 free credits with no card, which is enough to run the price test in the next section.
| Plan | Cost per credit | Per 1,000 plain fetches | Per 1,000 JS renders |
|---|---|---|---|
| Starter, $49 | $0.000196 | $0.196 | $0.98 |
| Growth, $99 | $0.000099 | $0.099 | $0.495 |
| Pro, $249 | $0.000083 | $0.083 | $0.415 |
| Scale, $599 | $0.0000749 | $0.075 | $0.374 |
Now find the page weight at which one credit costs the same as the bytes it would have consumed on a per-GB plan, using the Growth rate.
| Residential list rate | Plain fetch breaks even at | JS render breaks even at |
|---|---|---|
| $3 per GB | 33 KB per page | 165 KB per page |
| $6 per GB | 16.5 KB per page | 82.5 KB per page |
| $9 per GB | 11 KB per page | 55 KB per page |
Almost no real page is under 55 KB rendered. That is the point most buyers miss: on a per-page basis, per-request billing is cheaper than per-GB residential for essentially every page heavy enough to need a browser. Per-GB billing only wins when you are fetching small, light responses such as JSON APIs, and when you need a residential exit IP that a managed API cannot give you. The trade-off analysis in web scraping API vs self-managed proxies goes further into where each one breaks.
Contract Terms That Change the Price After You Sign
Ask these before you pay. Every one of them has moved a real invoice by double digit percentages.
- Does unused bandwidth expire, and does it roll over? Get the rollover window in months, not in adjectives.
- What is the overage rate, exactly? Compare it to your in-plan rate as a multiple.
- Is premium or city-level targeting billed at a different rate? Country targeting is usually included. Deeper targeting often is not.
- What counts as billable traffic? Confirm whether blocked responses, redirects, CONNECT tunnels and request headers are metered.
- What are the concurrency and speed limits? On a flat-rate plan these are the real product. On SparkProxy that is the thread ladder of 100, 250, 500 and 1,000 across Starter through Plus.
- How many sub-users and whitelist slots? SparkProxy publishes 5, 10, 15 and 25 whitelist slots across those same four plans. If you run multiple teams or servers, a low slot count forces credential sharing.
- What is the refund window and is there a trial? A provider unwilling to give you a small paid test on your own targets is telling you something.
- Is the price locked for the term? Promotional first-month rates that renew at list are common.
If you are building a formal evaluation, the criteria list in what to evaluate when selecting a proxy service pairs with this checklist.
Run a Real Price Test in One Afternoon
Vendor benchmarks are run on vendor-chosen targets. Run yours on your own URLs.
- Take 500 real URLs from your production target list, not a homepage and not a test endpoint.
- Run the same 500 through each candidate, at the same hour, with the same retry policy.
- Record two numbers per candidate: billed bytes from the vendor dashboard, and successful parses from your own logs. Do not trust HTTP 200 alone, because soft blocks return 200 with a challenge body.
- Divide, and compare only cost per 1,000 successful records.
- Repeat once during your target's peak traffic hours. Block rates and page weights both move.
Measuring per-response size through the SparkProxy gateway takes one curl flag. The gateway is gateway.sparkproxy.io on port 11000 for HTTP and HTTPS, port 11002 for sticky sessions, and port 13000 for SOCKS5.
curl -x http://USERNAME:PASSWORD@gateway.sparkproxy.io:11000 \
-s -o /dev/null \
-w "%{http_code} %{size_download} %{time_total}\n" \
https://example.com/product/12345
Then turn the log into the number you actually buy on:
def cost_per_1k_records(billed_gb, price_per_gb, successful_records):
"""Effective spend per 1,000 successfully parsed records."""
if successful_records == 0:
raise ValueError("no successful records: the run tells you nothing about price")
return (billed_gb * price_per_gb) / successful_records * 1000
# 500-URL trial: 0.42 GB billed at $6.00/GB, 388 records parsed cleanly
print(round(cost_per_1k_records(0.42, 6.00, 388), 2)) # -> 6.5
Those input numbers are placeholders for your own run, not measurements published by SparkProxy. Swap in what your dashboard and logs report.
If your successful-record count depends on holding a session across several requests, price the sticky path separately, since session length changes both byte volume and success rate. See rotating vs static residential proxies for how that choice affects consumption.
Which Model to Buy, by Workload
| Your situation | Buy this | Why |
|---|---|---|
| Target tolerates datacenter ASNs, volume above roughly 15 GB per month | Flat-rate unlimited datacenter plan | Cost per page falls to a fraction of a cent, and you stop optimising bytes |
| Target hard-blocks datacenter ranges, pages are light JSON | Committed per-GB residential | Byte billing is cheap when pages are small, and commit tiers cut the rate |
| Pages need a real browser, mixed or unknown targets | Per-request scraping API credits | You stop paying per megabyte for assets you discard |
| Account-bound work, long sessions, one identity per IP | Static residential or ISP, per IP | Rotation actively hurts, so byte metering is the wrong axis |
| Under 5 GB a month, still evaluating | Pay as you go, plus a free credit tier | Do not commit before you have a month of real consumption data |
| Large volume, mixed block behaviour by domain | Tiered fallback: flat-rate datacenter first, escalate on block | Most domains never need the expensive path |
That last row is where most mature pipelines land. Route every request to the cheapest path that works for that domain, escalate only on a classified block, and record which domains needed escalation. The escalation rate becomes your budget model, and it is usually far lower than a blanket "we need residential" assumption suggests.
Frequently asked questions
FAQ
Published entry pay-as-you-go rates sit roughly between $3 and $9 per GB across major vendors as of September 2026, with committed and enterprise tiers published as low as the $1 to $4 range at high volume. Check each vendor's current pricing page, because these rates change often and enterprise quotes are private.
Three multipliers sit between the list rate and your invoice: bytes spent on failed attempts, prepaid bandwidth that expired unused, and overage priced above your in-plan rate. A pipeline at 80% success that consumes 80% of a 100 GB block pays about $9.38 per useful GB on a $6 list rate.
Above the break-even volume, yes, by a wide margin. A $75 flat plan matches a $6 per GB plan at 12.5 GB per month and beats it at everything above that. The constraint moves from bytes to threads and the plan's speed ceiling, and it only applies where datacenter IPs work on your target.
On metered plans, generally yes, because the bytes still crossed the proxy. Confirm it in writing with your vendor. The larger cost is not the block page itself but the retry that pays full page weight again, which is why headless pipelines are hit much harder than raw HTML ones.
Per page, usually. At $99 for 1,000,000 credits, a JavaScript render costs about $0.000495, which equals only 82.5 KB of traffic at $6 per GB. Since almost no rendered page is that light, credits win on heavy pages. Per-GB residential still wins for very small responses and when you specifically need a residential exit IP.
Only after you have a month of real consumption data, and only if the package rolls over or does not expire. Committing to a block you consume at 70% turns a headline discount into a 1.43x premium, which erases most volume discounts on offer.
Get 20% off your first month
Premium datacentre proxies with unlimited bandwidth. Use the code at checkout.
Save up to 15% more on quarterly, half-yearly and yearly plans
Related articles

Scraping API Pricing: How Credit Multipliers Set Real Cost
Scraping API pricing explained: how JS rendering, premium proxies, domain surcharges and billed failures multiply credit costs, with a worked estimate.

How to Read a Proxy Provider SLA Before You Sign
How to read a proxy SLA clause by clause: what counts as downtime, exclusions that void it, how service credits are calculated and claimed, what to negotiate.

Proxy Pool Size Claims: What Millions of IPs Really Means
Proxy pool size claims decoded: how vendors count IPs, the discounts between headline and usable pool, and a sampling method to estimate the pool you reach.
