Whether a scraping API beats raw proxies comes down to page weight
Proxy Compare priced both models off one vendor that sells both, Geonode, on the same day, then measured the actual HTML transfer size of twelve vendor pages, re-fetching five on 27 Aug 2026 with and without compression. The break-even is your average page weight, not either headline rate.
16 Aug 2026 · updated 27 Aug 2026 · 7 min read
Point in time. The figures below were read on 15 Aug 2026 and are not updated after publication. For current numbers see the comparison table.

Per-GB and per-request prices cannot be compared until you convert one into the other, and the conversion is a single number: your average response size. Priced off one vendor that sells both models, the two meet between 194 KB and 442 KB per request. Here is the arithmetic and where real pages land.
The conversion, in one line
A proxy bills the bytes you move. A scraping API bills the requests you make. To compare them, divide the API's price per request by the proxy's price per GB. The answer is the response size at which the two cost the same.
break-even size (GB) = API price per request ÷ proxy price per GB
break-even size (KB) = that, times 1,000,000
Above that size the API is cheaper, because one flat fee per request covers any number of bytes. Below it the proxy is cheaper, because the meter stops sooner than the fee does. Every argument about which model wins is really an argument about that one number, and almost nobody writing about it says so.
Geonode sells both, which holds everything else still
Most comparisons of these two models are written by a party selling one of them. Geonode sells both, so pricing them against each other removes the vendor, the network and the date as variables. Both ladders were read on 15 August 2026.
Its per-request ladder runs from $0.35 per 1,000 (read 15 Aug 2026) at 10K requests down to $0.13 per 1,000 (read 15 Aug 2026) at 1M. Its residential ladder runs from $0.792/GB at 10 GB down to $0.27/GB at 100 TB. Crossing them:
Matched by volume, because the corners of a grid are not purchasable. An API tier of 10,000 requests is about $3.50 a month; Geonode's $0.27/GB rung is its 100 TB commitment. Nobody buys both, so crossing every API tier against every proxy rate produces cells that describe no real buyer. Each row below instead solves for the proxy rung that the same monthly work would actually land on:
| API tier | Cost per request | Monthly GB at break-even | Rung that buys | $/GB | Break-even |
|---|---|---|---|---|---|
| 10,000 requests | $0.000350 | 4 GB | 10 GB | $0.792 | 442 KB |
| 50,000 requests | $0.000260 | 16 GB | 10 GB | $0.792 | 328 KB |
| 250,000 requests | $0.000172 | 62 GB | 50 GB | $0.693 | 248 KB |
| 1,000,000 requests | $0.000126 | 194 GB | 100 GB | $0.648 | 194 KB |
Read a row as: at this API tier, the equivalent proxy spend buys this rung, and a response of this size costs the same either way.
The spread is far narrower than the ladders suggest: 194 KB to 442 KB, not the 160 KB to 1.3 MB an unmatched grid implies. The reason is that the deep proxy discounts are unreachable at these volumes. A million requests a month at the break-even size is 194 GB of traffic, which buys the 100 GB rung at $0.648, not the 100 TB rung at $0.27. A rough rule for real buyers is 300 KB.
The market has converged on the request price, too. ZenRows charges $0.000356 per credit on its entry plan against Geonode's $0.000350 per request, and $0.000091 at the top of its ladder against Geonode's $0.000126. Those are different companies with different networks arriving at the same number.
The multiplier that moves the answer by sixty times
Here is the part the per-credit headline hides. A credit is a billing unit, and one request does not always cost one credit. Scrapfly's own estimator prints the rate card:
credits per scrape · click to adjust 1 HTTP · datacenter 5 + ASP / browser 25 + residential 60 screenshot
Its plans price a credit directly, so the multipliers can be costed without leaving the vendor. Read 27 August 2026: $0.15 per 1,000 credits on Discovery at $30 a month, $0.10 on both Pro and Startup, $0.09 on Enterprise at $500. Taking the $0.10 rung, which covers the two middle plans:
| What you turn on | Credits | Cost per scrape | Break-even vs $0.27/GB |
|---|---|---|---|
| Plain fetch, datacenter | 1 | $0.00010 | 370 KB |
| ASP or browser rendering | 5 | $0.00050 | 1.9 MB |
| Residential addresses | 25 | $0.00250 | 9.3 MB |
| Screenshot | 60 | $0.00600 | 22.2 MB |
Both halves of that comparison are one vendor's own published numbers: Scrapfly's credit price against Scrapfly's own multipliers, set beside Geonode's cheapest residential rate.
At 25 credits a scrape you would need a 9.3 MB response before raw proxies lost on price, and almost nothing is 9.3 MB. So the option you tick matters more than the vendor you pick, and a comparison that comes out even at 1 credit comes out lopsided at 25.
This is the same shape as the second meter on unlimited plans: the advertised unit is not the unit you are billed in.
The method
We fetched twelve vendor pricing and policy pages on the night of 15 August 2026, which is ordinary work for this site rather than a benchmark. Their HTML averaged 397 KB, with a median of 253 KB. The largest was 1.57 MB and the smallest 54 KB.
That figure is uncompressed, and a proxy does not bill uncompressed bytes.
Re-fetching five of those vendor pricing pages on 27 August, once with
Accept-Encoding: identity and once with the compression every HTTP client asks
for by default, the raw HTML averaged 215 KB and the same pages crossed the wire
at 35 KB. That is 6.1x, and it is the figure the meter reads:
$ curl -sA "$UA" -H 'Accept-Encoding: identity' -o /dev/null -w '%{size_download}' <url>
$ curl -sA "$UA" --compressed -o /dev/null -w '%{size_download}' <url>
raw KB wire KB ratio
iproyal.com 189 35 5.43x
webshare.io 233 27 8.55x
oxylabs.io 388 70 5.51x
geonode.com 264 45 5.91x
nodemaven.com --- --- no response
decodo.com --- --- no response
Apply that ratio and the 397 KB average is roughly 65 KB billed, which is not on the crossover at all. It is well below the whole grid, and for fetching documents like these the proxy is the cheaper model by a wide margin rather than a close one.
Two things pull the other way and both are real. 397 KB is the HTML document
alone, so a headless browser that does not block subresources puts the images,
CSS, fonts and scripts across the meter too, and the rendered figure is often
several times the document. And two of the six pages returned nothing to a plain
curl, which is itself the reason people reach for a scraping API.
The rule that survives all of it: measure at the proxy, not at the parser, and not at the file size. Your provider's own usage counter is the only number that matches your invoice.
Working out your own number
Three steps, and the first is the one people skip:
- Measure your average response, at the proxy. Sum the bytes your proxy account actually reports over a real run, and divide by requests. Do not use the HTML size, and do not use a figure from an article. With no run to measure yet, the bandwidth estimator starts you from page weights we measured ourselves.
- Take both prices at the volume you will really buy. Entry-tier rates on either side are the worst case for both. Our cost calculator will give you the per-GB side across every metered plan we track.
- Divide, and check the multiplier. API price per request over proxy price per GB, times a million, gives your break-even in KB. If the API charges more than one credit for the mode you need, multiply the API side first.
We are not declaring a winner between the two models, here or anywhere else on this site, because the answer changes with page weight and with which unblocking you need. What we can do is give you the arithmetic and both sets of real numbers with the date attached. How we check covers where the proxy side of these figures comes from.
This article prices two ways of fetching a page. If the layer you are choosing is one higher up, request-response API versus a hosted browser session you operate yourself, that is a product decision before it is a cost one, and what each one sells takes that layer.
Sources
- Pricing Scrapfly, read 27 Aug 2026
credits per scrape · click to adjust 1 HTTP · datacenter 5 + ASP / browser 25 + residential 60 screenshot
- Pricing, credit rate by plan Scrapfly, read 27 Aug 2026
DISCOVERY $30 /mo $0.15 per 1k credits, prepaid
- Pricing Geonode, read 15 Aug 2026
Per-request plans Requests Price / 1k requests Price / mo 10K $3.50 $0.35 50K $13.00 Popular $0.26 250K $43.00 $0.17 1M $126.00 $0.13
- Pricing, credit estimator Scrapfly, read 15 Aug 2026
credits per scrape · click to adjust 1 HTTP · datacenter 5 + anti-bot / browser 25 + residential 60 screenshot
- Pricing ZenRows, read 15 Aug 2026
Build Ship your first workloads. $ 16 /mo 45K credits/month ... Launch Reliable web data in production. $ 57 /mo 250K credits/month ... Growth Scale across your team. $ 165 /mo 1.2M credits/month
Questions
Is a scraping API cheaper than proxies?
It depends on your average response size. Priced off Geonode, which sells both, the two cost the same between 194 KB and 442 KB per request once you match the volumes a single buyer could actually purchase. Below that the proxy wins, because the meter stops sooner than the flat fee. Above it the API wins, because a flat fee stops rising and the meter does not.
How do I compare a per-GB price to a per-request price?
Divide the API price per request by the proxy price per GB. That gives the response size, in gigabytes, at which the two cost the same. Multiply by a million for kilobytes. Then measure your own average and see which side you land on.
What is a credit on a scraping API?
A billing unit, and one request does not always cost one. Scrapfly's own estimator prices a plain datacenter fetch at 1 credit, anti-bot or browser rendering at 5, residential at 25, and a screenshot at 60. The headline per-credit price is the floor.
Do scraping API prices differ much between vendors?
Less than you would think at matching volume. Read on 15 August 2026, ZenRows costs $0.000356 per credit on its entry plan and Geonode $0.000350 per request. At the top of each ladder they are $0.000091 and $0.000126.
Why does my proxy bill exceed my page-weight estimate?
Because a proxy carries whatever the client asks for. If you run a headless browser, images, CSS, fonts and scripts all cross the meter. Measuring the HTML alone gives you the floor, not the bill. Block subresources or measure at the proxy.
Which should I choose if the maths comes out even?
Then price is not the deciding factor and you should pick on something else: who maintains the unblocking, whether you need the raw response, and how much control you want. We do not rank the two here because the honest answer varies by workload.
