← all guides

How to read a proxy pricing page

proxies web-scraping proxy-pricing buying-proxies bandwidth

Five sellers in a spreadsheet and the price column was useless. One cell said $3. One said $49. One said $0.90. I had copied the headline figures across without recording what each one was per, and by the time I noticed, the comparison was worthless.

That is a normal afternoon of proxy shopping. The unit does more work than the number, and the unit is usually set in the smallest type on the page.

I sell mobile proxy lines. Sim cards on Singapore carriers, modems on a shelf in my flat, roughly $10 a month per line in carrier data and another $1.50 in modem depreciation. I bill per port per month, so my bias is obvious and you should read everything below with it attached. I also buy other people’s proxies for my own scraping, which is where most of this got learned the expensive way.

Every dollar figure here is invented so the arithmetic reads cleanly. Do not go looking for these prices on anyone’s site.

The unit is the product

Five units are in common circulation.

Per gigabyte bills the traffic crossing the proxy, counted in both directions.

Per port rents one endpoint for a month, with traffic uncapped or capped somewhere you will not reach.

Per thread bills concurrency. How many requests you may have in flight at once, with your bytes unmetered.

Per IP bills a named address, usually static, usually monthly.

Per successful request is the scraping API model. You send a URL, the seller absorbs the blocking, and you pay when a page comes back.

A pricing page picks one and designs the layout to make its number look small. That is the seller’s job. Converting it is yours.

One job, four bills

Take a price monitor. 300,000 requests a month across a dozen marketplaces, averaging 180 KB each once you count headers and the two JSON calls sitting behind every page. That is 54 GB.

Metered at $5 a gigabyte: $270.

Six ports at $35 each to hold the concurrency: $210.

Eight threads at $18 each: $144. The 54 GB costs nothing.

Per successful request at $0.90 per thousand, with a 70% success rate against those marketplaces, you pay on 210,000 successes: $189.

Four sellers behaving perfectly honestly, four totals, one job. And the ordering is not stable. Find the JSON endpoint behind those product pages, drop the average payload to 40 KB, and the metered plan falls to $60 and wins outright. Push the failure rate from 30% to 55% instead, and the metered plan climbs while the per success plan does not move at all.

The winner is a function of your traffic shape. Nobody’s pricing page knows your traffic shape.

What is actually inside a gigabyte

On a metered plan this decides the bill, and it is almost never spelled out where you can find it before paying.

Response headers count, both directions, on every request. On a site issuing a long cookie they add up fast.

Redirect hops count. A page that bounces you twice before serving anything has billed you three times for one result.

TLS handshakes count on some meters and not on others. Ask which, in writing.

Images and fonts count if your headless browser fetches them, and it fetches them by default until you go and switch that off.

And failed requests count, which is the part worth arguing about.

Blocks are billed at the same rate as data

On most metered plans a block page is a page. A challenge wall is a page too, and it is frequently heavier than the content you were after. The meter has no way of knowing you got nothing usable.

So the targets that fight hardest are the targets where your counter spins fastest.

That is the case against metered pricing for scraping work, and I think it is a strong one. You buy a proxy because a site is difficult. The harder it pushes back, the more you retry, the more interstitial junk you are served, and the larger the invoice. The model bills you most in exactly the situation you bought the product to survive. On the easy sites you never needed it.

Retries turn that into a multiplier. Three attempts before giving up, 60% success on a hard target, and your real traffic lands nearer 70 GB than the 54 you budgeted for. I have watched a month arrive at double the estimate on retries alone. The target had added a challenge page in week two, after my numbers were written in week one.

The two meters will disagree

Your counters and the seller’s dashboard will not match, and theirs is the one on the invoice.

The gap comes from where each side measures. You count what your client handed to your parser. They count everything that crossed their box, including headers, the compression they undid in transit, and connection attempts that never returned a body.

Ten percent apart is normal and nobody is cheating. Forty percent apart means you are being metered on something you did not know you were sending. Check it in week one while the amounts are small enough that being wrong is cheap.

The terms that set the real bill

Minimum commitment. A floor you pay whether you use it or not. Three dollars a gigabyte with a 50 GB floor is a $150 plan, including in a month where you pull 12.

Rollover. Does unused traffic carry forward. Usually no, occasionally for 30 days. It matters more than it sounds, because scraping volume is lumpy.

What happens at the cap. Three behaviours exist and they are nowhere near each other. A hard stop, which kills your pipeline at 4am. An automatic top up at the same rate, which nobody minds. An automatic top up at a penalty rate, which is how a $270 month becomes $900. That last one lives on the terms page, never on the pricing page.

Billing term. The figure printed on the card at the top is normally the annual prepay price divided by twelve. The rolling monthly price sits further down in smaller type, sometimes 40% higher. Compare the same term on both sides or you are weighing a year of commitment against a month.

What the cheap tier quietly excludes

Geography first. A pool is priced low because it is a global pool, and global means wherever the seller has the most supply lying around. Ask for Singapore, or Germany, or anywhere that is not a large cheap market, and a second price appears. Often a multiple of the first. Sometimes it is in small text under the table, and sometimes you find it the first time you set a country parameter and get an empty response.

Check the geography before you look at the price at all. A plan that cannot serve your country is free and worthless at once.

Concurrency second. Metered plans routinely cap concurrent sessions on the lower tiers, and the cap sits on a documentation page, never next to the price. You buy traffic, you write a scraper with 40 workers, and you discover the plan allows five. Run at five and miss your schedule, or upgrade, which was the reason the cap existed.

Convert the job into their unit before comparing anything

The method is dull. It also works.

You need four figures, and all four come out of your own logs. Requests per month. Average bytes per request, measured against your real target instead of estimated. Failure rate on that target. Peak concurrency, which is set by how fast the job has to finish.

The bytes figure is the one people skip, and it moves the total more than the other three combined. Push a few hundred requests through whatever you already have and read your own counters. Twenty minutes.

Then build the comparison in your unit, on your spreadsheet. Their page was laid out to be read on their terms.

Buy a small month instead of taking the trial

A trial tells you about a trial.

When a seller opens one, they hand over addresses that work. That is not dishonest and I would do the same. But the addresses you get after payment come out of the general pool, and so does the support queue you land in at 3am on a Saturday.

Buy the smallest paid month on offer and run the real job through it. I once paid for a single month at three different sellers in the same week before choosing. About a hundred dollars, and it kept me off a twelve month commitment I would have hated by March.

Where I come down, and what I cannot tell you

Per gigabyte pricing is the wrong shape for scraping. It treats traffic as the scarce thing, when the scarce thing is a request that does not get refused, and it sends the biggest bill on the hardest targets. Per port and per thread pricing looks worse on the page and is usually cheaper in the bank statement, because the number stops moving. You know in January what December costs.

Plenty of people who scrape for a living think I have that backwards, and on some jobs their bills are lower than mine.

Metered wins on small and spiky work, easily. Four thousand pages a month costs a few dollars metered, while a port charges you a monthly fee to sit idle for 29 days. I keep a metered account open for exactly that, alongside the lines I run myself. The crossover sits somewhere in the low tens of gigabytes for most people, and I cannot give you the exact point, because it moves with your failure rate on your own targets.

I also cannot tell you what a seller’s overage rate becomes after the company changes hands. That has happened to me. The pricing page stayed identical for four months and the invoice did not.

The questions I send a seller before my card goes near their form, and the sheet I use to convert their unit into mine, are here.

Get new guides and videos first — join the Telegram channel.

proxies
Need proxies that survive the block wall?

Singapore Mobile Proxy runs real 4G/5G mobile IPs on rotating SIMs — the carrier-grade addresses most of these targets still trust.

see plans →
read on
More scraping guides

The rest of the field manual: target-site playbooks, library walkthroughs, provider reviews, and anti-bot troubleshooting.

browse all guides →