Browser Infrastructure
Hosted Chrome for your Puppeteer scripts.
One API call creates a browser. Pass its CDP URL to puppeteer.connect(). No Chromium to install, patch or scale, at $0.02 per browser-hour with no subscription.
- $0.02 / hour
- pay as you go, no subscription, credits never expire
- 90.5%
- of visits got through on 100 bot-protected sites, the best of every provider tested; Anchor next at 82%
- Live view
- on every browser, plus mp4 recordings when you ask for them
Three steps
- 1
Create a browser
POST /api/v4/browsers, or client.browsers.create() in the TypeScript or Python SDK. The response carries id, cdpUrl and liveUrl. - 2
Connect Puppeteer
puppeteer.connect({ browserWSEndpoint: cdpUrl }). Pages, selectors, downloads and screenshots work as they do locally, because it is a real Chromium on the other end. - 3
Stop it
client.browsers.stop(id) or PATCH /api/v4/browsers/{id} with {"action":"stop"}. Disconnecting alone leaves the browser running until its timeout.
No Chromium in your deploy.
See what the script saw.
What comes with every browser
- Protocol
- Chrome DevTools Protocol over WebSocket. Puppeteer, Playwright, or any CDP client.
- Stealth
- Our own hardened Chromium build, fingerprints randomized per session, on by default. The numbers.
- CAPTCHAs
- Solved automatically. Set solveCaptchas to false to handle them yourself. How it works.
- Proxies
- Residential in 195+ countries at $5/GB, chosen per browser with proxyCountryCode. Or bring your own with customProxy.
- Profiles
- Cookies, localStorage and login state persist across browsers with profileId.
- Live view and recording
- A liveUrl for every browser; an mp4 with enableRecording.
- Session length
- 60 minutes by default, up to 240 with timeout.
- API reference
- POST /api/v4/browsers
Questions people ask
Do I need puppeteer or puppeteer-core?
puppeteer-core. The browser runs on our side, so you do not need the Chromium download that the full puppeteer package installs. Connect with puppeteer.connect({ browserWSEndpoint: cdpUrl }) and the rest of your script stays the same.
What does it cost?
$0.02 per browser-hour, plus $5/GB when traffic goes through the residential proxies. No subscription. Credits never expire.
How long can a browser stay open?
60 minutes by default. Set timeout when you create it, up to 240 minutes. The browser stops at the timeout or when you stop it, whichever comes first.
How do I stop paying for a browser?
client.browsers.stop(id) in the SDK, or PATCH /api/v4/browsers/{id} with {"action":"stop"}. browser.disconnect() only closes your connection; the managed browser keeps running until the API stop or the timeout.
Can I watch what Puppeteer is doing?
Yes. Every browser returns a liveUrl you can open in a tab or embed in an iframe. Pass enableRecording: true when you create it to get an mp4 after it stops.
How many browsers can I run at once?
10 on a new project, rising to 1,000 with what the project has paid. Enterprise agreements go higher.