Proxy traffic runs out faster than expected
Most gigabytes go to things you never see in the result: images, fonts, scripts, retries and background requests. Below is where exactly they go and how to measure it.
Updated · Prokso editorial team
- Traffic is counted in both directions, and precise geo is counted double
- Images, video, fonts and scripts eat the most, along with retried requests
- Block unneeded resources, reuse connections and ask for compression
What the error means
At Prokso traffic is counted in both directions: what your program sends and what it downloads. For ordinary scraping the site's response makes up most of it, but uploads, form submissions and large API requests make the outgoing share noticeable too.
A page is more than its HTML. A browser or an antidetect browser loads everything the page links to: images, video, fonts, scripts, ads and counters. That is why a page with little text can pull many times more data than the text itself.
Another multiplier is precise geo. Region, city, ZIP or carrier (ASN) are counted double: 1 GB of such traffic takes 2 GB from the package. Country targeting costs nothing extra.
Causes
- Page resources. Images, video, fonts and scripts are the heaviest part of a typical page. Headless browsers in Puppeteer, Playwright and Selenium load them just like a regular browser, even if you only need the text.
- Retries. Every attempt that managed to download even part of a page is traffic too. A loop with no retry limit after a captcha or a 429 error quietly eats the package.
- Uncompressed responses. If the program does not send an
Accept-Encodingheader, the server returns text uncompressed. Browsers send it on their own, scripts not always: curl asks for compression only with--compressed. - A new connection for every request. Every new HTTPS connection starts with a TLS handshake, and that data also passes through the proxy. Without connection reuse it is added to every request.
- Precise geo you do not need. City, region, ZIP or carrier doubles the usage. If the country is enough for the task, turn precise geo off.
How to fix it
- Estimate the expected volume: average page size x number of pages x a margin for retries. The traffic calculator helps with the estimate.
- Measure a real page: in the browser developer tools, the Network tab shows at the bottom how much data was transferred. For a single request curl shows the response body size, without headers, with
-w "%{size_download}". - Block resources you do not need in a headless browser: in Puppeteer use
page.setRequestInterception(true)andrequest.abort()for images, fonts and media, in Playwright usepage.route()withroute.abort(). Proxy setup is in the Puppeteer and Playwright guides. - Use one connection for a series of requests: in Python,
requests.Session()reuses connections (see the Python requests guide). Limit the number of retries and add a pause between them. - Ask for compression: the
Accept-Encoding: gzipheader or--compressedin curl. Turn on precise geo only where the city or carrier really matters; username parameters are in the gateway reference.
How to check that it works
After the changes, run the same task on a small sample and compare the plan balance before and after in the dashboard. To keep the package from running out unexpectedly, the plan page lets you set a traffic limit per hour, day or week - to stop work or only warn you - and turn on email or Telegram notifications when traffic is running low.
Two-minute diagnosis
First paste the line into the proxy checker. If the proxy works there, the cause is in your app or its settings. If not, test the line from a terminal:
curl -v -x "http://USERNAME:PASSWORD@gw.prokso.com:823" https://api.ipify.org
- A
< HTTP/1.1 407line right afterCONNECTmeans the proxy answered. The name after the code, for exampleNO_USER, points to the cause. - The proxy answered
CONNECTwith 200 and then another code arrived - the proxy works, and that answer came from the website. - No answer at all, only a timeout - the connection never reached the proxy: check the host, port and network.
Setup guides where this error comes up
- Proxy setup in Octoparse
- Proxy setup in Screaming Frog SEO Spider
- Proxy setup in ScrapeBox
- Proxy setup in Apify
- Proxy setup in PhantomBuster
- Proxy setup in n8n
Further reading
FAQ
Is traffic counted if the site returned an error?
Yes. Everything that passed through the proxy in both directions is counted, whatever the response code. A page with a captcha or a 403 error uses traffic too.
Why does an antidetect browser use more than a script?
An antidetect profile is a full browser: it loads all page resources and makes the browser's own background requests. A script takes only what you asked for.
Does unused traffic expire?
No. Purchased traffic has no expiry date, so you can use the rest later.
Other proxy errors
Residential $1.59, mobile $2.50, datacenter $0.65 per GB
Sign up in a minute, get access right after payment.