WeProx logo
Guide

Mobile vs Residential Proxies for Scraping: Cost per Success

Proxy vendors quote prices in gigabytes or ports, but a scraper does not want gigabytes. It wants parsed rows, and the price that matters is total spend divided by the number of responses that came back complete, on time, and usable. Measured that way, the comparison between a large residential pool and a dedicated mobile line stops being about which is cheaper per byte and becomes about which one your targets actually answer. This guide covers where each option wins, how to run a fair bake-off on your own targets, and when mobile is the wrong tool.

The metric that matters: cost per successful, parsed response

Define success strictly. A response counts only when the status is what you expected, the body parsed into the fields you needed, and the content is the real page rather than a challenge, a soft block, or a stripped-down version served to suspicious clients. Everything else is spend without return: retries consume bandwidth on per-GB plans and time on unlimited ones, CAPTCHAs consume solver budget or engineer attention, and silent bad data consumes downstream trust. Divide total cost, including engineering time, by strict successes and you have the one number that compares proxy options honestly.

Per-GB pricing hides how often the metric goes wrong. A blocked request still transfers bytes, sometimes more than a good one when the challenge page is heavy with scripts. A retry loop that succeeds on the fourth attempt has cost four times the bandwidth and been counted once. On a dedicated line with unlimited data, bandwidth drops out of the equation and the cost of a failure is time and concurrency instead, which is why the same target can produce opposite conclusions depending on how the bill is structured.

Where residential pools win

A residential pool is the right tool when the job is wide rather than deep. If you need results from dozens of countries or hundreds of cities, a pool gives geographic reach that no set of physical lines can match. If volume is enormous and the target is tolerant, serving ordinary pages to ordinary residential ranges without fuss, spreading load across many exits keeps concurrency high and per-request cost low. Pools also suit irregular work: scraping a target once a quarter is better paid per gigabyte than by holding a line month-round. The trade is that you never control which exit you get or the history strangers wrote on it.

Where a dedicated mobile line wins

Some targets gate on network type. They look up the autonomous system of the connecting address and treat carrier ranges differently from datacenter and residential ISP ranges, because a carrier IP sits behind carrier-grade NAT and is shared by many real phones, so blocking it means blocking a crowd. Mobile-app backends are the clearest case: they expect requests from handsets on cellular networks, and residential exits look out of place. Sites that already challenge datacenter and residential ranges often leave carrier ranges alone for the same reason, and it shows in the success count.

A dedicated line also wins when sessions must hold. Logged-in scraping, multi-page flows that carry state, paginated results that expire on IP change, and anything behind a per-session token all need a sticky exit that stays put until you decide otherwise. On a WeProx line the IP holds until you rotate it, and rotation is an on-demand call rather than a timer you cannot see. With unlimited data, retries and heavy pages are free at the margin, so cost per success is driven by throughput, and 20-45 Mbps on 4G or 50+ Mbps on 5G is ample for parsing work.

How to run a fair bake-off

Comparisons fail when the two options are tested on different days, different targets, or different concurrency. Fix all three. Draw a target set of URLs from your real job, large enough to include the awkward pages, and hold it constant. Run the pool and the mobile line against the same set at the same time of day with the same concurrency per exit, headers, client, and retry policy. Record for every request the outcome class: strict success, soft block, challenge, error, or timeout, along with the elapsed time.

Aggregate into the numbers that decide the question: strict successes, requests attempted, retries per success, challenges per success, wall-clock time to finish the set, and total spend including per-GB overage or daily line rent. Compute cost per strict success for each option. Run it twice on different days, because pools change and carriers reassign addresses. If the mobile line wins on gated targets and the pool wins on broad ones, that is not a contradiction; it is a routing table for your scraper.

Sticky sessions and controlled rotation inside a scraper

Design the scraper around the line's controls rather than fighting them. Use a sticky session for any flow that carries state, and treat the rotation link as a deliberate step in job logic: rotate when a session's work is finished, when a target begins returning challenges, or when a new logical batch wants a fresh address. After every rotation, confirm the new exit with a lightweight IP check and log it, because the carrier pool is finite and repeats do occur. Our guide on distinct exit IPs per mobile line covers how many addresses one line surfaces in a day.

Concurrency should match what a real device on a carrier connection could plausibly do. A dedicated line is one SIM, and pushing hundreds of parallel connections through it both saturates the modem and looks nothing like a phone. A modest, steady stream with sensible pacing usually yields more strict successes per hour than a burst that triggers challenges and forces retries. Rotate between batches rather than between requests unless the target specifically punishes address reuse, which the bake-off will have told you.

When not to use mobile for scraping

Mobile lines are a precise instrument, and using one where a pool belongs wastes both money and the line's value. The list below is where we tell prospective customers to buy something else, or to use both and route by target. None of these are failures of the product; they are cases where one SIM in one US metro does not match the shape of the job, and pretending otherwise costs you successes.

What to do next with your WeProx proxy

Pull a few hundred URLs from your production job, book one line for a few days, and run the bake-off above against your current pool. Route by outcome: gated targets, app endpoints, and stateful flows to the mobile line; broad, tolerant targets to the pool. The WeProx homepage lists current plans from $4/day with unlimited data, unlimited on-demand rotation, sticky sessions, and HTTP(S) and SOCKS5 access, and the USA locations page shows which metros and carriers you can place a line in. For setup help with Scrapy, Playwright, or plain requests, see our setup guides or send your target list to our support team.

Frequently asked

Is a mobile proxy always more expensive per request than a residential pool?

Not once failures are counted. Per request attempted, a pool is often cheaper. Per strict success on a gated target, a dedicated line with unlimited data frequently costs less, because it does not pay for blocked bytes and it holds sessions that a pool would drop. Measure both on your own targets rather than assuming.

How many concurrent requests can one mobile line handle?

Enough for steady parsing work, not for saturating a target. Throughput of 20-45 Mbps on 4G and 50+ Mbps on 5G is ample for HTML and JSON, but a single SIM behaves best with modest, paced concurrency. If you need more parallelism, add lines rather than pushing one past what a real device would do.

Can I use both a pool and a mobile line in the same scraper?

Yes, and it is usually the best design. Keep a routing rule per target: tolerant, wide-geo targets to the pool; gated, app-based, or stateful targets to the mobile line. Record cost per strict success per route and adjust the rule as targets change their behavior over time.

Does unlimited data mean unlimited requests?

It means no data bill and no overage. It does not lift the physical limits of one modem on one carrier connection, nor a target's tolerance. The practical ceiling is how many requests you can complete per hour at a pace the target accepts, and that is exactly what the bake-off measures.

Do I need to rotate the IP for scraping at all?

Often less than you would think. Many jobs run better on a sticky address with sensible pacing, because constant rotation from a finite carrier pool produces repeats and looks less like a device. Rotate between batches, on challenge, or when a session's work is done, and confirm the new exit each time.

USA mobile proxies on hardware we own

Real 4G and 5G carrier IPs in eight US metros, with unlimited rotation, sticky sessions and HTTP(S) or SOCKS5. Plans start at $5/day.

View plans See all locations

More guides

All WeProx resources →