November 3, 20268 min readproxiesbrowserpricing
A Hosted Browser With the Residential Proxy Included: How It Works and What It Costs
Why signed-in automation needs a residential IP, why most hosted browsers bill it per GB, and how we include a fixed residential exit in the session price.
By Scrappy Team
The short answer: Scrappy includes the residential connection in the session price: 5 credits to start a session and 1 per minute after that, with no charge per gigabyte. Most other hosted browsers bill residential traffic at $8 to $12 per GB on top of browser time. The reason we can include it is also what makes signed-in automation work: each saved login gets its own static residential IP, and the bandwidth on that IP is not metered.
Here is why a residential exit matters, the two kinds you can buy, and how ours behaves, including the night our proxy provider swapped addresses without telling us.
Why the IP matters at all
The first thing most bot checks look at is the connecting IP. Cloud providers publish their address ranges, and a request from AWS, GCP or a VPS host is treated as automated before the page has run any script. For anonymous public pages that is often fine. For anything behind a login, or any site with a serious bot check, it is usually the end of the session.
A residential IP is one a consumer ISP assigned to a home or a small business. Traffic from it looks like a person on their broadband, because that is what the address normally carries.
Rotating or static: two products under one name
"Residential proxy" covers two very different things, and the difference decides both cost and whether logins survive.
- Rotating residential: a gateway that sends each request, or each sticky session, out through a large pool of addresses. It is cheap per address and good for spreading anonymous traffic. It is sold per gigabyte, because the vendor pays per gigabyte. The exit changes, often between runs.
- Static residential (also called ISP proxies): a fixed address rented per month, with bandwidth usually unmetered. The exit never changes unless you change it.
For signed-in work, rotation is the problem. A session cookie issued to one address and replayed from a different address in a different city, with a different timezone, looks like a stolen session. Sites answer with two-factor prompts, "is this you?" emails, or a sign-out. The fix is to come back from the same place every time, which means a static exit per login.
Why most hosted browsers bill per gigabyte
Read from each vendor's pricing page on 1 October 2026:
- Anchor: $8 per GB of residential traffic
- Steel and Hyperbrowser: $10 per GB
- Browserbase and Browserless: $12 per GB
All of these sit on top of a per-hour browser price. Billing per gigabyte makes sense if you resell metered rotating bandwidth. You pass the cost through.
Our measured traffic shows what that means in practice. Signed-in browsing on our machines averaged about 144 MB an hour over a week of real sessions. At $12 per GB that is about $1.73 an hour in proxy traffic alone, before the browser. A page heavy with video or images can move many times more.
How we include it
Almost all of our sessions (98% over the 30 days to 2 October 2026) go out through static residential addresses that we rent per IP per month, with bandwidth unmetered. An extra gigabyte costs us nothing, so we do not charge for one. The session price is the whole price: 65 credits for an hour, which is $1.17 on the $9 pack and $0.86 on the $79 pack.
Here is how a session picks its exit:
- A session started from a saved login goes out through the exact address that login was captured on. The pin is recorded automatically at capture, so you never configure a proxy.
- A session for a known end user without a saved login gets a stable static exit chosen for that user, so their sessions keep coming from the same place.
- An anonymous session uses the rotating pool, where a block costs little and spreading traffic helps.
The browser also emulates the timezone the exit reports. A New York IP with a browser set to Los Angeles time is one more signal that something is off.
In code, you never pass a proxy:
import os, requests
API = "https://scrappy.gg/api/browser"
H = {"Authorization": f"Bearer {os.environ['SCRAPPY_API_KEY']}"}
def call(method, path, **kw):
r = requests.request(method, f"{API}{path}", headers=H, timeout=90, **kw)
r.raise_for_status()
body = r.json()
return body.get("data", body)
created = call("POST", "/sessions", json={"profileId": "your-saved-login-id"})
print(created["session"]["id"], "pinned:", created.get("pinned"))
pinned: true means this session is on the login's own address. false means the pinned address is cooling down after a failure and this run went out elsewhere. When that happens, wait a few minutes rather than replaying the login from a new place. 03-saved-login.ts in our examples repo is the full flow, from signing in by hand to reusing the login.
Static addresses are not all equal
The honest caveat: "static residential" is a label a vendor applies, and the addresses do not all live up to it. Measured against commercial IP-reputation data, most addresses sold under that label are flagged as proxies, and few have the reverse DNS a home connection would. That matters because a login pinned to a flagged address stays on it, so a bad address hurts the same login every time. Signed-in sites that score risk, Google above all, respond with "this browser or app may not be secure".
So we measure. Each address is checked for reputation, for whether it opens a tunnel at all, and for the timezone it reports. New identities prefer the measured-clean addresses, and a failover stays near the identity's usual region, so a move does not rewrite the browser's timezone. Addresses also drift: one of ours started reporting Denver time while still filed under New York. We re-measure on a schedule, not only when we buy addresses.
The night the IPs changed underneath us
Static is only static as long as your provider leaves the address alone. Our provider's plan had automatic replacement of "invalid" addresses switched on. One night it replaced three addresses, and our configuration kept the old ones for three days.
A replaced address does not look dead. It still accepts connections, because it now belongs to someone else's account. It just refuses your credentials with 407 Proxy Authentication Required. Every session pinned to one of those three started normally, then failed on its first navigation: about a hundred sessions over two and a half days.
Four changes came out of it, and they are the things to ask any vendor about:
- A 407 is a credential refusal, not a network flap. On the first one, the address is sidelined for six hours across every machine.
- We check a pinned address for a tunnel before building a session. The check takes about 140 ms against a ten-second session start, so a dead pin costs one probe, not a charged session that cannot load a page. If the fallback refuses too, the create answers
503and charges nothing. - A pin moves only when its address has left the pool. We do not unpin on a 407, because the next 407 might be the whole account (a lapsed plan) rather than one address, and moving forty logins off the IPs they signed in from is lasting damage.
- Every day we compare our list with the provider's, and probe every address. Any difference sends one alert.
The full write-up is Your proxy provider replaced the IP.
When per-GB pricing is the better deal
If your sessions are short, anonymous and light (public pages, screenshots, PDFs), you barely touch residential traffic. A cheap bare browser hour elsewhere costs less than ours, and you should buy that. Our pricing starts paying off once a session moves real residential traffic. Against Browserbase, an hour on our $79 pack is cheaper above about 61 MB of residential traffic an hour. The Browserbase alternatives post works through each vendor.
Summary
- Signed-in or protected sites need a residential exit. Logins need the same exit every time.
- Rotating residential is metered, so vendors bill it per GB. Static residential is rented per IP, so we include it.
- Scrappy: 5 credits to start, 1 per minute, residential included, a fixed exit per saved login, and a timezone that matches the exit.
- Ask any vendor what happens when a pinned address dies. Ours probes before it charges.
Start with the pricing page or the saved logins guide. New accounts get 100 free credits.
Keep reading
Your Proxy Provider Replaced the IP. Your Config Still Has the Old One.
A static residential IP was replaced overnight, the old address answered 407, and every login pinned to it failed. What we changed so it cannot recur.
browserBrowserbase Alternatives for AI Agents: What Actually Differs (2026)
Anchor, Steel, Hyperbrowser, Browserless and Scrappy compared on what changes the bill and the block rate: proxy pricing, fixed IPs per login, and takeover.
mcpChoosing an MCP Server for Browser Automation: What Matters Behind the Tools
Browser MCP servers expose similar tools. What decides whether your agent gets through is the browser behind them: headful, residential, logged in, watchable.