# 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

1.  **Launch.** `POST https://starter.cdpfleet.com/<browser>/session` with your API key and launch options — including your **proxy** (without one, the free, shared Community proxy is used; on dedicated plans you can use your own VPN instead). You get back `{ sessionId, wsUrl }`.
2.  **Connect.** Open `wsUrl` with Playwright's `connect()` for the browser's family (`chromium`, `firefox` or `webkit`), sending your API key again.
3.  **Drive.** Create pages, navigate, intercept requests, take screenshots — anything Playwright does.
4.  **Close.** `browser.close()` ends the session immediately and stops billing.

**Playwright protocol by default, CDP when you ask.** Sessions speak Playwright's own protocol: use `browserType.connect(wsUrl)` with a Playwright client of the **same minor version as the server — 1.60** (1.52 for [Rebrowser](https://cdpfleet.com/docs/browsers/rebrowser)). Every example on this site pins the right version. Want **Puppeteer**, `connectOverCDP()` or a raw CDP client instead? Launch with `"cdp": true` and connect to the `cdpUrl` it returns — see [CDP & Puppeteer](https://cdpfleet.com/docs/cdp).

## Start here

-   [**Start here**New account? From sign-up to a first result, the dashboard, and when to upgrade.](https://cdpfleet.com/docs/start)
-   [**Quickstart**Your first session in five minutes, in five languages.](https://cdpfleet.com/docs/quickstart)
-   [**Code builder**Pick a browser, version and options; get ready-to-run code.](https://cdpfleet.com/docs/builder)
-   [**Browsers**All 12 browsers, their versions and every launch option.](https://cdpfleet.com/docs/browsers)
-   [**Functions**Screenshot, PDF, Markdown or raw page in one HTTP call — no browser to manage.](https://cdpfleet.com/docs/functions)
-   [**Launch options**Every option on its own page: what it does, what it's for, which browsers take it.](https://cdpfleet.com/docs/options)
-   [**Proxies**Your own proxies, pools, per-host rules and live swapping — or the residential proxy by tier and country.](https://cdpfleet.com/docs/proxies)
-   [**Residential proxy**One token instead of a proxy account: pick the tier, exit country, device OS and sticky sessions.](https://cdpfleet.com/residential-proxy)
-   [**Live view & Launch interactive**Watch or take over a session, or open a browser in the dashboard with no code.](https://cdpfleet.com/docs/live-view)
-   [**Recordings**A video of every session, replayed from the dashboard or fetched over the API.](https://cdpfleet.com/docs/recordings)
-   [**Downloads**Keep the files a session downloads and fetch them for 2 days after.](https://cdpfleet.com/docs/downloads)
-   [**CDP & Puppeteer**Connect with Puppeteer or `connectOverCDP`, and send raw CDP commands.](https://cdpfleet.com/docs/cdp)
-   [**MCP server**Give Claude, ChatGPT, Gemini or Cursor a real browser: one URL, sign in with OAuth.](https://cdpfleet.com/docs/mcp)
-   [**SDKs**Node, Python and Go: launch and connect in one call, waiting when your threads are busy.](https://cdpfleet.com/docs/sdk)
-   [**Dashboard**Plan and usage, live sessions, proxies, traffic per host, sessions and keys.](https://cdpfleet.com/docs/dashboard)
-   [**Persistent profiles**Save a browser session — cookies, storage, logins — and reuse it on the next launch.](https://cdpfleet.com/docs/profiles)
-   [**Cases**Hard problems solved end to end, with code in five languages and real output.](https://cdpfleet.com/docs/cases)
-   [**For AI agents**One page an AI coding agent reads to use cdpfleet: launch, browsers, proxies, limits, errors. Also `/llms.txt`.](https://cdpfleet.com/skill.md)
-   [**Compare**cdpfleet vs other services, browser vs browser, version vs version — measured on the fleet.](https://cdpfleet.com/docs/compare)
-   [**Updates**New features, and what each new browser version on the fleet changes for scraping — with an RSS feed.](https://cdpfleet.com/docs/updates)
-   [**Plans & pricing**Shared and dedicated threads, pools, leases and prices.](https://cdpfleet.com/docs/pricing)
-   [**Sessions & billing**Threads, thread-seconds, leases and timeouts.](https://cdpfleet.com/docs/sessions)
-   [**Errors & limits**Every status code and how to handle it.](https://cdpfleet.com/docs/errors)

## Authentication

Every request carries your API key (`cdpf_…`) in the `x-api-key` header. Create and revoke keys in the [dashboard](https://cdpfleet.com/app); to try code at once or hand it to an AI assistant, the dashboard's code builder can copy it with a [temporary key](https://cdpfleet.com/docs/builder#temp-key) that expires after an hour. 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` (or `cdpUrl`) if your client can't set headers.

Keep keys out of source code — the examples read `CDPFLEET_API_KEY` from the environment.

---
Source: https://cdpfleet.com/docs · Markdown: https://cdpfleet.com/docs.md · All docs for AI tools: https://cdpfleet.com/llms.txt
