cdpfleet Pre-launch Get early access

cdpfleet / Proxies

Every session

Your exit, your rules.

A cdpfleet browser never browses from our servers' own IPs. Send your own proxy, a pool, or different proxies for different hosts; change the exit of a running browser without restarting it; or use the cdpfleet residential proxy by tier, country and sticky session. Leave proxy out and the free Community proxy is used.

  • SOCKS5with auth, on every browser
  • $0.50–$5per GB, residential
  • 0second IPs leaked over WebRTC

Bring your own

  • Formats: http://user:pass@host:8080, https://…, socks5://user:pass@host:1080, a bare host:8080 (taken as HTTP), or an object { "server", "username", "password" }. Authenticated SOCKS5 works on every browser.
  • Pools: pass a list and requests are spread across it round-robin.
  • Per-host rules: proxy_rules sends hosts you name (with * wildcards) through their own proxy or pool; everything else uses proxy. One SOCKS5 host, one pool and residential for the rest, in one browser (case 07).
  • Your proxies are free on every plan; only the cdpfleet residential proxy is billed, by the GB.
{
  "proxy": [
    "http://u:[email protected]:8080",
    "socks5://u:[email protected]:1080"
  ],
  "proxy_rules": [
    {
      "hosts": [
        "*.cloudfront.net",
        "static.*"
      ],
      "proxy": "http://u:[email protected]:4444"
    }
  ]
}

Change the exit while the browser runs

  • One API call to the host of your wsUrl changes a running session's proxy and rules; the browser, its cookies and its login stay (case 06). Every session can be swapped; no launch option is needed.
  • New connections use the new exit at once; open ones finish on the old one. Keep-alive connections are the trap: move them over by carrying storageState into a fresh context (case 06).
  • The update replaces the whole route: send proxy and the complete proxy_rules you want.
  • When a site pushes back: wait out Retry-After, then move the session to another exit — the crawler that did got 8 of 8 pages with its login intact; the one that retried at once got 3–4 (case 53).

No proxy of your own: the cdpfleet residential proxy

Send a cdpfleet-resi token as proxy and pick the price tier (Tier 1 $5, Tier 2 $2.50, Tier 3 $1, Tier 4 $0.50 per GB), the exit country, the device OS of the IP (Tier 1 and 2 only) and whether the IP stays the same (-session-ID, -lifetime-MIN). One prepaid USD balance pays for every tier; every account starts with $5 free credit (case 25).

Mix tiers per host: the page on Tier 1, its image hosts on Tier 4 with proxy_rules — the bytes billed per tier matched what the browser counted, and a gallery load cost well under half (case 51). Details and pricing: residential proxy.

The same US residential IP for up to 30 minutes
// 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: 'cdpfleet-resi-country-us-session-cart1-lifetime-30',
    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

UDP, WebRTC and your own VPN

  • A proxy carries TCP only: behind one, no setup exposed a second public IP over WebRTC — Chromium, Chrome and Firefox show an anonymous mDNS name, Camoufox the exit, and block_webrtc removes the API (case 54).
  • VPN Tunnel ("vpn_tunnel": true, a Tier 1 or 2 residential token, or your own proxy on dedicated plans) gives the browser UDP through the same exit: WebRTC shows exactly the exit IP and HTTP/3 works (case 69). Keep the token sticky, and don't combine it with proxy_rules: UDP can then leave through a rule's proxy.
  • Your own VPN (dedicated plans): vpn with a WireGuard, AmneziaWG, OpenVPN or sing-box config — or the name of one saved in the dashboard — sends everything, UDP and DNS included, through your VPN server. Private and internal addresses are refused as VPN servers.

The free Community proxy

  • Leave proxy out and the session uses the Community proxy, free on every plan; a cdpfleet-plan token picks a country or a sticky exit.
  • Free, so not guaranteed: it's shared and slower, and launches with it can be refused with 503 community_capacity_full when it's busy. Use it to try things out; bring your own or the residential proxy for work that matters.

What a proxy costs in speed

  • Every hop adds time: connection setup, first byte and full load through three proxies, measured by the browser itself (case 14).
  • WebSockets work through every proxy type, but each message pays the full proxy path, and the proxy's location decides how much (case 13).
  • Private addresses are refused: a proxy, a rule's proxy or a VPN server on loopback, private or internal ranges gets 400 invalid_proxy (or invalid_vpn_config) at launch.