What a ScrapingBee proxy really costs per row of data
ScrapingBee sells scraping as an API: send one request, get rendered HTML back, watch credits drain. For a few thousand easy pages that trade is fine — there is no fleet to maintain and no rotation logic to write. The bill changes character the moment your targets get serious, because credits are consumed per call and the hardest options multiply that consumption.
Turn on JavaScript rendering, add the stealth pool, hit a target that answers with a challenge instead of HTML, and the same dataset costs several times more than the estimate in your spreadsheet. Failed attempts are still attempts. When a scraper retries a blocked URL four times, the data was paid for four times and delivered once — and that is the number that quietly kills margins on long-running projects.
The three places where an API-only setup stops paying off
A hosted scraping API is optimized for stateless work: one request, one page, no memory. That model breaks against three very common jobs.
- Sessions that must persist. Login flows, cart checks, dashboards behind auth and paginated feeds need the same exit IP for minutes at a time, not a fresh one per call.
- Volume with retries. Per-request billing means every challenge, timeout and 403 is a line item, so the cost per useful row grows exactly when the target gets tougher.
- Account work. Farming, warming or running social and ad accounts is not scraping at all — it needs a network identity you own, not a shared pool you rent by the call.
Recognizing which of the three you are in saves weeks: for the first and third, no amount of credit top-ups will fix the architecture.
Credits per request vs. a rented mobile port
The comparison below is the one that matters before you scale, because the two models diverge fastest at high volume and long session times.
| Parameter | Scraping API (credits per request) | Mobile proxies (per port) |
|---|
| What you pay for | Each call, multiplied by rendering and premium options | A port for 1, 7 or 30 days, traffic not metered |
| Retries and blocks | Billed like successful calls | Already inside the flat rate |
| Session control | Limited, defined by the vendor | Sticky, rotation by link, rotation by timer |
| Best fit | Spiky, low-volume, simple pages | Constant load, logins, accounts, protected targets |
OnlineProxy bills only by port and period — there is no per-gigabyte or per-request meter on any plan, with a minimum billing window of 24 hours. Practical effect: a scraper that runs all night on one port costs the same whether it pulls 200 pages or 200,000, so your unit economics stop depending on how aggressive the target's defenses feel that week.
Putting mobile IPs under your own scraper
Every request leaves from an IP issued by a real mobile carrier, so protected pages answer with content instead of a challenge screen — and you keep the parsing logic you already wrote. Integration is deliberately boring: HTTP(S) and SOCKS5, login:password or IP whitelisting, the familiar ip:port:login:password string. That is one line of configuration in Scrapy, Playwright, Puppeteer, Colly or plain requests, and no rewrite of your extraction code.
Headless setups behave the same way. A headless Chromium session launched through Playwright with a mobile port as its upstream keeps its exit IP for the whole crawl, which is what makes multi-step flows survive — search, filter, open item, paginate. Example: an hourly price check across a marketplace can hold one sticky session for the login, then switch IP by link before the next account's run, all from your own scheduler rather than a vendor's credit table.
Pro tip: run your parser against the target once through a mobile port before you migrate anything. If success rate jumps from the 70–80% you get on cheaper pools to the 95–99% range, the bottleneck was never your code — it was the network identity, and you can stop tuning selectors.
Rotation you actually control: Lite and Regular
Two plans exist because two very different jobs exist. Lite is a shared port: one device is split between up to five users, the IP rotates automatically every 2–5 minutes, and neither the rotation nor a device reboot is under your control. For mass parsing where each request is independent, that is enough — and it is the cheaper way to keep a high-volume scraper fed.
Regular hands you the whole device for the rental period. Sticky sessions, IP change by link, IP change by timer, device reboot and priority support come with it. Anything involving a login, a cart, a checkout or an account belongs here, because a mid-session IP flip is the fastest way to lose a warmed profile and the work behind it.
| Task | Recommended mode | Why it saves money |
|---|
| Bulk SERP or catalog parsing | Lite, auto-rotation | Fresh IP every few minutes without paying per request |
| Logged-in scraping, checkout flows | Regular, sticky session | No re-auth loops, no lost cookies mid-crawl |
| Account farming and ads | Regular, one port per profile | One flagged profile no longer drags the rest down |
When the job is accounts, not pages
A scraping API cannot host an Instagram, TikTok, Facebook Ads or LinkedIn account, and it was never meant to. That work runs on a different pair: a mobile port for the network identity plus an antidetect browser — Dolphin Anty, AdsPower, Octo Browser, GoLogin, Multilogin — for the browser identity. SOCKS5 support matters here, since most antidetect profiles expect it.
The rule is one port to one profile to one account. Sharing a single port across five profiles on the same platform links them together, and the cheapest possible outcome is losing all five at once instead of one. Keeping the mapping strict costs a few extra ports and protects ad budgets that are an order of magnitude larger.
Geo and carrier targeting that changes the output
Country, region, city and carrier are all selectable, which matters for anything where the answer depends on where the visitor stands. Mobile search results differ from desktop ones, so a rank check made from a real carrier IP in the target city returns the SERP your customers actually see — not a datacenter approximation you then have to explain to a client.
Ad verification works the same way: creatives, in-app placements and cloaked landing pages reveal themselves only to traffic that looks local and mobile. One rented port in the right city replaces an entire round of "can you screenshot it from your phone" requests to freelancers, and the evidence arrives in minutes.
The hybrid setup most teams end up with
Keeping both tools is usually cheaper than picking one. Simple, rarely-changing pages stay on the API where the per-call price is trivial. Everything defended, logged-in or long-running moves to rented ports, where retries cost nothing extra. In practice, replacing a heavy ScrapingBee proxy job with a rented mobile port pays for itself the first time a target starts throwing challenges at scale.
Pro tip: verify what you rented instead of trusting a label. Run the IP through IPQualityScore, Spur.us or iphub.info — a genuine carrier address shows a mobile ASN and a fraud score under 25. If any provider's "mobile" IP reports hosting or corporate, you are paying premium rates for a datacenter address.
What the network layer will not fix
A carrier IP handles identity at the network level and nothing above it. Browser fingerprint stays your responsibility — that is the antidetect browser's job. Request pacing stays your responsibility too: hammering a target from a clean mobile IP with zero delay still looks mechanical, so randomized timing and human-shaped navigation remain part of the recipe.
Geo consistency closes the loop. Language, timezone, currency and user agent should match the country of the port; a mismatch is the one red flag no IP quality can cover. Get those four aligned and the same scraper stops needing rescue runs, which is where the real time savings show up.
Terms worth knowing before you migrate
Pricing depends on country and carrier and is shown on the plan page, unlimited traffic included on both Lite and Regular — unlimited meaning no gigabyte metering, not unlimited bandwidth, since a mobile channel typically delivers 5–50 Mbit/s with 50–300 ms latency. For multi-accounting and page scraping that is comfortable; for pulling video or huge archives it is not the right option.
There is no free trial on mobile ports: the site widget hands out a single server proxy, which is a different category and will not survive protected targets. After a completed rental, cashback lands as promo credit on your internal balance, and refunds follow the refund and replacement policy — full within the first hour after access is issued, minus used time afterwards, with a replacement offered first when the issue is technical. Support runs 24/7 with a 4-hour target for the first reply, so a stalled port during a night run does not become a lost day.
The short version: a ScrapingBee proxy call is a good fit for spiky, simple work, and a rented mobile port is what makes hard targets, logins and account farms predictable in cost. Pick per job, not per vendor.