The meter runs on bytes, not accepted rows
The gateway bills for every byte that crosses it. It does not care whether your parser accepted the response. Headers, failed responses, challenge pages, retries, browser assets, and tunnel overhead can all be part of the provider-metered total.
A concrete example: 500 requested URLs, 382 accepted rows, 61 403s, 18 timeouts, 39 other errors. The scraper counted 132 MB. The provider counted 611 MB. The saved pages were small, so the scraper number looked reasonable — it was just incomplete.
The missing 479 MB came from a retry loop touching one blocked page repeatedly, font requests slipping through browser asset rules, a consent script loading on every fresh context, and redirect chains that crossed the proxy before the scraper discarded the final response. None of it helped the CSV. All of it moved through the gateway.
Rates by plan type
Proxynade bills per transferred byte on residential and datacenter plans. The current rates on the pricing page:
| Plan | Rate | Billing unit |
|---|---|---|
| Volume Residential | $0.89 / GB | Per transferred byte |
| Premium Residential | $5.00 / GB | Per transferred byte |
| Static ISP | Pay-per-IP | Unlimited bandwidth |
| Bare-metal servers | Monthly / quarterly / semi-annual | Flat rate |
Static ISP and server plans do not use per-GB metering. For residential and datacenter work, the byte total at the gateway is the billing input — not the request count in your application logs.
What the plan token controls
On the Proxynade pool gateway at http://proxynade.net:2555, the routing options travel in the expanded username. The plan token selects the pool: volume for Volume Residential at $0.89/GB, or premium for Premium Residential at $5.00/GB. An optional country-<cc> token pins the exit country. An optional lifetime-<minutes> token sets the sticky session window. Datacenter lines skip the lifetime token.
Example expanded username: rt97db6958d9-plan-volume-country-us-lifetime-30. The plan token here means the run bills at the Volume Residential rate.
Where bytes leak beyond your request count
| Source | App sees | Gateway sees |
|---|---|---|
| Retry on block | One row (eventually failed) | N request/response pairs |
| Browser assets (images, fonts, analytics) | Not counted | All of it |
| Challenge or CAPTCHA page | Failed scrape | Full page body |
| Redirect chain | Final URL only | Every hop response |
| Consent / cookie scripts | Not counted | Script body per context |
A 10,000-request run at 100 KB per accepted page is close to 1 GB only when the workload is clean. A browser-based run on the same targets will be higher by a factor that depends on how many of the above leak categories are active.
Tier choice affects cost per accepted row
Volume Residential is the cheaper rate per GB. Premium Residential is about 5.6x higher per GB ($5.00 against $0.89), but it runs on a different pool with different pass rates on targets that filter harder. If Volume Residential spends too much traffic on blocks and retries before the scraper gets a usable row, the cost per accepted row can exceed the Premium Residential equivalent.
The number to track is not rate-per-GB in isolation. It is provider bytes divided by accepted rows. Both the numerator and denominator depend on which pool you ran against.
Reading costs from the dashboard
The Proxynade dashboard network logs show host, outcome, latency, and byte totals. Usage logs export as CSV. The useful columns for a cost audit are: route name, target host, status code, provider bytes, and accepted rows for that target group.
If provider bytes climb while accepted rows stay flat, check: blocked domains loading full challenge bodies, asset rules missing, retry policy too aggressive, page weight higher than expected, or the plan token pointing at the wrong pool for the target.
Balance cutoff is hard
When the balance reaches zero, new requests stop. There is no automatic top-up or grace traffic. The dashboard shows remaining balance. Before a production run that cannot be interrupted, monitor balance and set a threshold alert so the job can pause or top up before the cutoff hits.
What to log before scaling
The log row worth keeping before scaling a run: route name, target URL, status code, provider bytes, saved rows, and the exact proxy username used. Without that row, cost arguments later are guesswork.
- Run a small sample first. Measure provider bytes, not app bytes.
- Export host-level usage logs from the dashboard and compare against accepted rows.
- Tighten asset blocking rules before increasing concurrency.
- Check retry policy: a short block storm can add multiples of the base traffic.
- Do not scale until provider bytes per accepted row are understood.
Per-GB pricing FAQ
Why does the provider byte count exceed my scraper's request count? The gateway meters every byte that crosses it — headers, failed responses, challenge pages, retries, browser assets, and tunnel overhead. Your scraper only counts what it accepted.
Does a 403 still consume bandwidth? Yes. The request and response both crossed the gateway — per RFC 9110, a 403 response carries a full message body the server chooses to send. A fast 403 is cheaper than a slow timeout, but it is not free.
What is the difference between Volume Residential and Premium Residential pricing? Volume Residential is $0.89 per GB. Premium Residential is $5.00 per GB. Both are billed per transferred byte with no minimum chunk.
Are Static ISP proxies billed per GB? No. Static ISP proxies are pay-per-IP with unlimited bandwidth, so the metering model is different.
Where can I see a breakdown of bytes by host? The Proxynade dashboard network logs show host, outcome, latency, and byte totals. Usage logs can be exported as CSV for offline analysis.
When does the balance cutoff stop requests? When the account balance reaches zero, new proxy requests stop. The dashboard shows remaining balance; set up monitoring before a production run if uninterrupted operation matters.