cdpfleet Pre-launch Get early access

cdpfleet / Browsers / Chromium

Chromium family · Playwright build

Chromium, one socket away.

The open-source Chromium build that ships with Playwright. Fast, predictable and the most compatible choice for automation.

  • /chromium/sessionlaunch endpoint
  • 1.60Playwright client
  • 1thread headless

Why Chromium

  • The Playwright build of Chromium: fast, predictable and the most compatible choice for automation.
  • Most scraping, testing and agent work when the site doesn't care which Chromium browser it sees.
  • CDP with "cdp": true, live view headless with "live_view": true, and persistent profiles.

Versions on the fleet now

build148.0.7778.96

One build per release, updated on the fleet as new versions ship.

New majors are announced on /docs/updates.

Launch it

One HTTPS call to POST /chromium/session returns a WebSocket URL; connect to it with Playwright's chromium.connect() (client 1.60), or launch with "cdp": true and use cdpUrl. A headless session takes 1 thread, a headful one 2.

Chromium: launch, open a page, print its title
// npm install [email protected]
// Browsers run on cdpfleet, so no `npx playwright install` is needed.
import { chromium } from 'playwright';

const KEY = process.env.CDPFLEET_API_KEY;

// 1. Launch the browser
const res = await fetch('https://starter.cdpfleet.com/chromium/session', {
  method: 'POST',
  headers: { 'x-api-key': KEY, 'content-type': 'application/json' },
  body: JSON.stringify({
    proxy: 'http://user:[email protected]:8080',
    headless: 'new',
  }),
});
if (!res.ok) throw new Error(`launch failed: ${res.status} ${await res.text()}`);
const { wsUrl } = await res.json();

// 2. Connect and drive it
const browser = await chromium.connect(wsUrl, { headers: { 'x-api-key': KEY } });
const page = await browser.newPage();
await page.goto('https://example.com');
console.log(await page.title());
await browser.close(); // ends the session and stops billing

Launch options

OptionWhat it does
proxy_rulesSend specific destination hosts through specific proxies.
inactivity_timeoutEnd the session after this long with no traffic on its WebSocket.
overall_timeoutHard cap on the session's total lifetime, regardless of activity.
vpn_tunnelVPN Tunnel: UDP/WebRTC full support — all of the browser's traffic, UDP included, goes through the residential exit.
vpnOwn network (dedicated plans): send all of the browser's traffic through your own VPN instead of a proxy.
headlessRun without a display.
cdpAlso expose a Chrome DevTools Protocol endpoint (cdpUrl).
screencastStream the page to your code (Playwright page.screencast).
live_viewMake a headless session watchable and controllable from outside.
screen_sizeResolution of the session's own display (headful only).
keep_aliveKeep the session when your client disconnects (dedicated threads only).
start_urlOpen this page at launch so the session can be driven in live view with no client connected.
profileRestore a saved browser profile and save it again when the session ends.
recordOpt this session out of recording with false.

Every session also needs a proxy — yours, or the residential proxy.