cdpfleet documentation
cdpfleet runs real browsers for you. One HTTPS call launches a browser and returns a WebSocket URL; you connect to it with Playwright from Node.js, Python, Java, C# or Go and drive it like a local browser.
How it works
- Launch.
POST https://starter.cdpfleet.com/<browser>/sessionwith your API key and launch options — including your proxy, which every session requires. You get back{ sessionId, wsUrl }. - Connect. Open
wsUrlwith Playwright'sconnect()for the browser's family (chromium,firefoxorwebkit), sending your API key again. - Drive. Create pages, navigate, intercept requests, take screenshots — anything Playwright does.
- Close.
browser.close()ends the session immediately and stops billing.
Playwright protocol, not raw CDP. Desktop sessions speak Playwright's own protocol, so use
browserType.connect(wsUrl). connectOverCDP() and Puppeteer don't work against them. Use a Playwright client of the same minor version as the server — 1.60 (1.52 for Rebrowser). Every example on this site pins the right version.Start here
- QuickstartYour first session in five minutes, in five languages.
- Code builderPick a browser, version and options; get ready-to-run code.
- BrowsersAll 13 browsers, their versions and every launch option.
- ProxiesFormats, pools, per-host rules and live swapping.
- CasesHard problems solved end to end, with code in five languages and real output.
- Plans & pricingShared and dedicated threads, pools, leases and prices.
- Sessions & billingThreads, thread-seconds, leases and timeouts.
- Errors & limitsEvery status code and how to handle it.
Authentication
Every request carries your API key (cdpf_…) in the x-api-key header. Create and revoke keys in the dashboard. Connect to a session with the same key that launched it: send it as the x-api-key header of connect(), as the examples do, or append ?api_key=… to wsUrl if your client can't set headers.
Keep keys out of source code — the examples read CDPFLEET_API_KEY from the environment.