cdpfleet Docs GitHub Dashboard

Connect URL

Connecting to a cdpfleet connect URL launches the browser and connects to it in one step, with no launch request first. Use it wherever a tool takes a WebSocket URL: Playwright's connect(), Playwright Test's wsEndpoint, connectOverCDP(), Puppeteer, and AI-agent frameworks that accept a CDP URL. The launch request keeps working as before.

The URL

wss://router01.cdpfleet.com/connect/<browser>?<options>        # Playwright protocol (client 1.60; Rebrowser 1.52)
wss://router01.cdpfleet.com/connect/<browser>/cdp?<options>    # CDP — Chrome, Edge, Brave, Opera, Yandex, Chromium

Examples

// Playwright (Node.js)
const browser = await chromium.connect('wss://router01.cdpfleet.com/connect/chrome?proxy=cdpfleet-resi-country-us&headless=new', { headers: { 'x-api-key': process.env.CDPFLEET_API_KEY } });

// Playwright Test — playwright.config.ts: every worker gets its own browser
use: { connectOptions: { wsEndpoint: 'wss://router01.cdpfleet.com/connect/chrome?proxy=cdpfleet-resi-country-us&headless=new', headers: { 'x-api-key': process.env.CDPFLEET_API_KEY } } },

// CDP: connectOverCDP (any Playwright version) or Puppeteer
const browser = await chromium.connectOverCDP('wss://router01.cdpfleet.com/connect/chrome/cdp?headless=new', { headers: { 'x-api-key': process.env.CDPFLEET_API_KEY } });
const browser = await puppeteer.connect({ browserWSEndpoint: 'wss://router01.cdpfleet.com/connect/chrome/cdp?headless=new', headers: { 'x-api-key': process.env.CDPFLEET_API_KEY } });

Python: p.chromium.connect(url, headers={"x-api-key": key}). Java, C# and Go connect the same way with their own headers option — the code builder writes all five.

What happens