# cdpfleet > Real cloud browsers — Chrome, Edge, Brave, Opera, Whale, Yandex, Chromium, Patchright, Rebrowser, Camoufox, Firefox and WebKit — launched over HTTP and driven with Playwright, Puppeteer or CDP, with proxies, residential IPs, live view, recordings and persistent profiles. AI agents: start with the skill page; it has the launch flow, the browser table, limits and errors in one place. ## Try it in one minute **Why cdpfleet:** 12 real browsers (Chrome, Edge, Brave, Opera, Whale, Yandex, Chromium, Patchright, Rebrowser, Camoufox, Firefox, WebKit) in the cloud, with beta/dev channels and older versions; your own proxies, pools and per-host rules, or residential IPs by country from $0.50/GB; live view, video recordings and persistent profiles; and dated measurements of what gets through Cloudflare, DataDome, Akamai and HUMAN with each browser (https://cdpfleet.com/bot-protection). **1. Get an API key** at https://cdpfleet.com/app (sign up free; every plan includes a free shared proxy, used when you leave `proxy` out, so no proxy of your own is needed to start; what a paid plan adds: https://cdpfleet.com/upgrade). **2a. From an AI assistant (MCP):** add the hosted server and sign in with OAuth: ```bash claude mcp add --transport http cdpfleet https://cdpfleet.com/mcp ``` Or in any MCP client's config: `{ "mcpServers": { "cdpfleet": { "url": "https://cdpfleet.com/mcp" } } }`. Local alternative: `npx -y cdpfleet-mcp` with `CDPFLEET_API_KEY` set. Tools: launch_browser, navigate, snapshot, click, type, press, wait_for, screenshot, evaluate, live_view, close_browser, downloads, list_browsers, account. Example prompts and the tool calls they make: https://cdpfleet.com/docs/mcp/prompts **2b. From code (Playwright, any language):** ```js const res = await fetch('https://starter.cdpfleet.com/chrome/session', { method: 'POST', headers: { 'x-api-key': process.env.CDPFLEET_API_KEY, 'content-type': 'application/json' }, body: JSON.stringify({ headless: 'new' }), }); const { wsUrl } = await res.json(); const browser = await chromium.connect(wsUrl, { headers: { 'x-api-key': process.env.CDPFLEET_API_KEY } }); ``` Or with the SDK (npm/PyPI `cdpfleet`, Go module; it retries when the fleet is busy): `const session = await new Cdpfleet().launch('chrome', { headless: 'new' }); const browser = await session.connect(chromium);` — all five languages, runnable as they are: https://cdpfleet.com/docs/quickstart **2c. No browser to drive (Functions):** one HTTP call returns a page as Markdown, a screenshot, extracted fields or the same page from several countries: ```bash curl -s https://cdpfleet.com/v1/functions/markdown -H "x-api-key: $CDPFLEET_API_KEY" \ -H "content-type: application/json" -d '{"url":"https://books.toscrape.com/"}' ``` Also `screenshot`, `pdf`, `scrape` (with `extract`), `map`, `geo` and `livetab`; on paid plans, batch and crawl jobs over any number of URLs and monitors that send a diff when a page changes: https://cdpfleet.com/docs/functions Every page of this site is also available as Markdown: add `.md` to its URL, or send `Accept: text/markdown`. Everything at once: https://cdpfleet.com/llms-full.txt - [Skill for AI agents](https://cdpfleet.com/skill.md): everything an agent needs to use cdpfleet from code - [MCP server](https://cdpfleet.com/docs/mcp): remote MCP at https://cdpfleet.com/mcp (OAuth), or npx cdpfleet-mcp ## Docs - [Start here](https://cdpfleet.com/docs/start): for a new account: activate the free plan, a first result with an AI assistant, code or no code, the dashboard, when to upgrade - [Quickstart](https://cdpfleet.com/docs/quickstart): launch a browser and drive it with Playwright in five languages - [Functions](https://cdpfleet.com/docs/functions): screenshot, PDF, Markdown, scrape, map or geo compare in one HTTP call, no browser to manage; batch and crawl jobs - [Code builder](https://cdpfleet.com/docs/builder): a working program for any browser and options - [Browsers](https://cdpfleet.com/docs/browsers): every browser, its versions, channels and options - [Sessions & billing](https://cdpfleet.com/docs/sessions): threads, weights, minutes, timeouts - [Proxies](https://cdpfleet.com/docs/proxies): own proxies, proxy_rules, live swap, the residential proxy and its tiers - [Errors & limits](https://cdpfleet.com/docs/errors): every error code and what to do - [CDP & Puppeteer](https://cdpfleet.com/docs/cdp): cdpUrl, connectOverCDP, raw CDP - [Connect URL](https://cdpfleet.com/docs/connect): one wss:// URL that launches and connects (Playwright, Playwright Test, CDP) - [Live view](https://cdpfleet.com/docs/live-view): watch or control a session; Launch interactive and start_url - [Persistent profiles](https://cdpfleet.com/docs/profiles): keep logins and storage across sessions - [Fingerprinting](https://cdpfleet.com/docs/fingerprinting): what a page can read about the browser (TLS, headers, client hints, canvas, fonts, WebRTC, CDP), measured per fleet browser - [Session recording](https://cdpfleet.com/docs/recordings): video of every session - [Downloads](https://cdpfleet.com/docs/downloads): keep the files a session downloads, fetch them for 2 days - [SDKs](https://cdpfleet.com/docs/sdk): Node, Python and Go packages - [MCP server](https://cdpfleet.com/docs/mcp): hosted at cdpfleet.com/mcp, or npx cdpfleet-mcp - [MCP setup](https://cdpfleet.com/docs/mcp/setup): per-app instructions - [MCP example prompts](https://cdpfleet.com/docs/mcp/prompts): what to ask and the exact tool calls and output it produces - [Account API](https://cdpfleet.com/docs/api): /v1/me endpoints: usage, sessions, balance, proxies - [Dashboard](https://cdpfleet.com/docs/dashboard): plan and usage, live sessions, proxies, traffic per host + CSV, sessions and recordings, keys and AI apps - [Plans & pricing](https://cdpfleet.com/docs/pricing): Community, shared and dedicated plans - [Examples](https://cdpfleet.com/docs/examples): recipes for common configurations ## Browsers - [Google Chrome](https://cdpfleet.com/docs/browsers/chrome) - [Microsoft Edge](https://cdpfleet.com/docs/browsers/edge) - [Brave](https://cdpfleet.com/docs/browsers/brave) - [Opera](https://cdpfleet.com/docs/browsers/opera) - [Naver Whale](https://cdpfleet.com/docs/browsers/whale) - [Yandex Browser](https://cdpfleet.com/docs/browsers/yandex) - [Chromium](https://cdpfleet.com/docs/browsers/chromium) - [Patchright](https://cdpfleet.com/docs/browsers/patchright) - [Rebrowser](https://cdpfleet.com/docs/browsers/rebrowser) - [Camoufox](https://cdpfleet.com/docs/browsers/camoufox) - [Firefox](https://cdpfleet.com/docs/browsers/firefox) - [WebKit](https://cdpfleet.com/docs/browsers/webkit) ## Functions - [Screenshot function](https://cdpfleet.com/docs/functions/screenshot): A PNG or JPEG of the page as a real browser renders it, the viewport or the full page. - [PDF function](https://cdpfleet.com/docs/functions/pdf): The full page as a single-page PDF, A4 or Letter wide. - [Markdown function](https://cdpfleet.com/docs/functions/markdown): The page's main content as clean Markdown, ready for an LLM or a search index. - [Scrape function](https://cdpfleet.com/docs/functions/scrape): The page in the formats you ask for — HTML, Markdown, text, links, a screenshot, its XHR/fetch calls, cookies, console — after optional clicks and typing, with CSS selectors extracted to JSON. - [Map function](https://cdpfleet.com/docs/functions/map): A site's URLs from its sitemaps and the start page's links, without loading every page — the quick first look before a crawl. - [Geo compare function](https://cdpfleet.com/docs/functions/geo): The same page from 2–5 countries at once, side by side, with a diff of what changes between them. - [Live tab function](https://cdpfleet.com/docs/functions/livetab): One remote browser tab you — or anyone you send the link to — can see and control in a web browser: log in by hand, solve your own CAPTCHA, show a page from another country, then let your code carry on. - [Raw page function](https://cdpfleet.com/docs/functions/rawpage): Scrape's first name, kept working: the rendered HTML with the final URL and status, redirects, and optionally the page's XHR/fetch calls with their responses, cookies and console output. - [Function jobs: batch, crawl, map, watch, warmup](https://cdpfleet.com/docs/jobs): any number of URLs or a whole site in the background; live page changes; a browser that browses like a person; JSON lines or a zip archive, stop and resume, signed webhooks - [Monitors](https://cdpfleet.com/docs/monitors): check a page on a schedule and get a diff by webhook or email when it changes - [Webhooks](https://cdpfleet.com/docs/webhooks): job and monitor events, verifying x-cdpfleet-signature in five languages, de-duplicating retries, rotating the secret ## Launch options - [All launch options](https://cdpfleet.com/docs/options) - [proxy](https://cdpfleet.com/docs/options/proxy): Upstream proxy for the browser. - [proxy_rules](https://cdpfleet.com/docs/options/proxy_rules): Send specific destination hosts through specific proxies. - [proxy_updatable](https://cdpfleet.com/docs/options/proxy_updatable): Kept for compatibility: every session's proxy can now be swapped without it. - [inactivity_timeout](https://cdpfleet.com/docs/options/inactivity_timeout): End the session after this long with no traffic on its WebSocket. - [overall_timeout](https://cdpfleet.com/docs/options/overall_timeout): Hard cap on the session's total lifetime, regardless of activity. - [memory](https://cdpfleet.com/docs/options/memory): Give the session 2, 3 or 4 times your plan's memory; it counts as that many times the threads. - [headless](https://cdpfleet.com/docs/options/headless): Run without a display. - [channel](https://cdpfleet.com/docs/options/channel): Release channel of the browser build. - [version](https://cdpfleet.com/docs/options/version): Pin an older major version. - [os](https://cdpfleet.com/docs/options/os): Operating system of the generated fingerprint. - [locale](https://cdpfleet.com/docs/options/locale): Browser locale(s). - [geoip](https://cdpfleet.com/docs/options/geoip): Match timezone, locale, geolocation and WebRTC IP to the proxy's exit IP. - [humanize](https://cdpfleet.com/docs/options/humanize): Human-like cursor movement. - [block_images](https://cdpfleet.com/docs/options/block_images): Block all images. - [block_webrtc](https://cdpfleet.com/docs/options/block_webrtc): Disable WebRTC entirely. - [block_webgl](https://cdpfleet.com/docs/options/block_webgl): Disable WebGL. - [disable_coop](https://cdpfleet.com/docs/options/disable_coop): Disable Cross-Origin-Opener-Policy. - [screen](https://cdpfleet.com/docs/options/screen): Constrain the fingerprint's screen size. - [window](https://cdpfleet.com/docs/options/window): Fixed outer window size. - [fingerprint](https://cdpfleet.com/docs/options/fingerprint): Use a complete BrowserForge fingerprint. - [config](https://cdpfleet.com/docs/options/config): Override individual fingerprint properties. - [fonts](https://cdpfleet.com/docs/options/fonts): Extra font families to expose. - [custom_fonts_only](https://cdpfleet.com/docs/options/custom_fonts_only): Expose only the fonts in `fonts`. - [webgl_config](https://cdpfleet.com/docs/options/webgl_config): Force a specific WebGL vendor/renderer pair. - [ff_version](https://cdpfleet.com/docs/options/ff_version): Firefox major version to claim in the fingerprint. - [screencast](https://cdpfleet.com/docs/options/screencast): Stream the page to your code (Playwright page.screencast). - [keep_alive](https://cdpfleet.com/docs/options/keep_alive): Keep the session when your client disconnects (dedicated threads only). - [profile](https://cdpfleet.com/docs/options/profile): Restore a saved browser profile and save it again when the session ends. - [record](https://cdpfleet.com/docs/options/record): Opt this session out of recording with false. - [downloads](https://cdpfleet.com/docs/options/downloads): Keep every file the browser downloads, to fetch after the session. - [live_view](https://cdpfleet.com/docs/options/live_view): Make a headless session watchable and controllable from outside. - [start_url](https://cdpfleet.com/docs/options/start_url): Open this page at launch so the session can be driven in live view with no client connected. - [screen_size](https://cdpfleet.com/docs/options/screen_size): Resolution of the session's own display (headful only). - [cdp](https://cdpfleet.com/docs/options/cdp): Also expose a Chrome DevTools Protocol endpoint (cdpUrl). - [vpn_tunnel](https://cdpfleet.com/docs/options/vpn_tunnel): VPN Tunnel: UDP/WebRTC full support — all of the browser's traffic, UDP included, goes through the residential exit. - [vpn](https://cdpfleet.com/docs/options/vpn): Own network (dedicated plans): send all of the browser's traffic through your own VPN instead of a proxy. - [main_world_eval](https://cdpfleet.com/docs/options/main_world_eval): Allow scripts in the page's main world. ## Who it's for - [cdpfleet for vibe coding](https://cdpfleet.com/for/vibe-coders): Point Cursor, Claude Code or Codex at cdpfleet: a skill file your agent reads, one-call Functions for screenshots, PDFs, Markdown and scraping, and code that runs with a temporary key. Free to start. - [cdpfleet for developer](https://cdpfleet.com/for/developers): Real browser builds and pinned majors, Camoufox personas, per-host proxy rules, a residential VPN tunnel for UDP and WebRTC, raw CDP, and measured results on real bot protection — with the data behind it. ## Topics - [Community plan](https://cdpfleet.com/community): cdpfleet's free Community plan: 2 threads, 60 browser-minutes per thread a day, every browser on the fleet and an included proxy. Sign up free. - [Community vs paid](https://cdpfleet.com/upgrade): Free Community plan vs paid cdpfleet plans side by side: 2 threads and 60 minutes a day vs 5+ threads, up to 480 minutes per thread a day or unlimited, 24-hour sessions, priority capacity, recordings and profiles — from $7.50 a month. - [Shared threads](https://cdpfleet.com/shared-threads): Shared threads: each thread adds 60, 120, 240, 480 browser-minutes a day to one account pool, from $1.50 per thread per month. How the pool, the rolling hour and leases work. - [Dedicated threads](https://cdpfleet.com/dedicated-threads): Dedicated threads: reserved capacity at $8.50 per thread per month with unlimited browser-minutes, 24-hour sessions and keep_alive. - [Threads](https://cdpfleet.com/threads): You buy threads, not machines: a thread is a slot for a running browser. Headless takes 1, headful 2, phone engines 3–4. Metered to the second as thread-seconds. - [Pricing](https://cdpfleet.com/pricing): cdpfleet pricing: a free Community plan, shared threads from $7.50/month, dedicated threads at $8.50/thread, and a residential proxy from $0.5/GB. - [Browsers](https://cdpfleet.com/browsers): Remote Google Chrome, Microsoft Edge, Brave, Opera, Naver Whale, Yandex Browser, Chromium and more: 12 desktop browsers with channels and pinned versions, driven with Playwright or CDP. - [Google Chrome](https://cdpfleet.com/browsers/chrome): Run Google Chrome (official google build) on cdpfleet: live versions, channels, launch options and ready-to-run code in five languages. - [Microsoft Edge](https://cdpfleet.com/browsers/edge): Run Microsoft Edge (official microsoft build) on cdpfleet: live versions, channels, launch options and ready-to-run code in five languages. - [Brave](https://cdpfleet.com/browsers/brave): Run Brave (privacy-focused chromium) on cdpfleet: live versions, channels, launch options and ready-to-run code in five languages. - [Opera](https://cdpfleet.com/browsers/opera): Run Opera (chromium-based) on cdpfleet: live versions, channels, launch options and ready-to-run code in five languages. - [Naver Whale](https://cdpfleet.com/browsers/whale): Run Naver Whale (naver's chromium browser) on cdpfleet: live versions, channels, launch options and ready-to-run code in five languages. - [Yandex Browser](https://cdpfleet.com/browsers/yandex): Run Yandex Browser (chromium-based) on cdpfleet: live versions, channels, launch options and ready-to-run code in five languages. - [Chromium](https://cdpfleet.com/browsers/chromium): Run Chromium (playwright build) on cdpfleet: live versions, launch options and ready-to-run code in five languages. - [Patchright](https://cdpfleet.com/browsers/patchright): Run Patchright (stealth-patched chromium) on cdpfleet: live versions, launch options and ready-to-run code in five languages. - [Rebrowser](https://cdpfleet.com/browsers/rebrowser): Run Rebrowser (stealth-patched chromium) on cdpfleet: live versions, launch options and ready-to-run code in five languages. - [Camoufox](https://cdpfleet.com/browsers/camoufox): Run Camoufox (based on firefox source; not affiliated with mozilla) on cdpfleet: live versions, launch options and ready-to-run code in five languages. - [Firefox](https://cdpfleet.com/browsers/firefox): Run Firefox (based on firefox source; not affiliated with mozilla) on cdpfleet: live versions, launch options and ready-to-run code in five languages. - [WebKit](https://cdpfleet.com/browsers/webkit): Run WebKit (playwright build) on cdpfleet: live versions, launch options and ready-to-run code in five languages. - [Android & iOS](https://cdpfleet.com/mobile): Real phone browser engines, not emulated user agents: browsers on hardware Android phones and iOS WebView. Early access. - [Android](https://cdpfleet.com/android): Browsers on hardware Android phones, driven over CDP: Chrome, Chrome Custom Tabs, Samsung Internet, Opera, Android WebView and Firefox. Early access. - [iOS WebView](https://cdpfleet.com/iphone): An iOS WebView, driven through cdpfleet's session API. Early access. - [Residential proxy](https://cdpfleet.com/residential-proxy): cdpfleet's residential proxy: send a cdpfleet-resi token as proxy and pick the tier, country, device OS and sticky session. $0.50 to $5 per GB from a prepaid USD balance, $5 free credit. - [Launch interactive](https://cdpfleet.com/launch-interactive): Launch any cdpfleet browser on a start page straight into a live view you control, from the dashboard's code generator or with the start_url launch option. - [Live view](https://cdpfleet.com/live-view): Watch any cdpfleet session live or take control of it — from the dashboard, or with a link from the API (VNC for headful browsers, a screencast for headless Chromium). - [Recordings](https://cdpfleet.com/recordings): Every cdpfleet session can be recorded as video and replayed from the dashboard: the first 15 minutes free at 480p, up to 240 minutes and 1080p on a recording plan. - [Profiles](https://cdpfleet.com/profiles): cdpfleet persistent profiles restore cookies, localStorage and IndexedDB at launch and save them when the session ends: 20 profiles per shared thread and 30 per dedicated thread (at least 100) per account, Google Chrome, Microsoft Edge, Brave, Opera, Yandex Browser, Chromium, Patchright, Camoufox, Firefox, WebKit. - [How it works](https://cdpfleet.com/how-it-works): Request a browser with one HTTPS call, get a single-use WebSocket URL, connect Playwright from any language, close it to stop billing. - [AI agents](https://cdpfleet.com/ai-agents): Give an AI assistant or agent a real remote browser: hosted MCP with OAuth for Claude, ChatGPT and Gemini, skill.md for coding agents, headful browsers, live-view handoff to a person, recordings, profiles and keep_alive. - [Web scraping](https://cdpfleet.com/web-scraping): Scrape with real Chrome, Edge, Camoufox, Patchright and more: which browser for which protection, the TLS, header and headless tells sites read, WebRTC, soft blocks, residential tiers and per-host proxy rules — each claim measured in a case. - [Bot protection](https://cdpfleet.com/bot-protection): Which browser got the real page behind Cloudflare, DataDome, Akamai, HUMAN, Kasada and AWS WAF, on real sites and on the vendors' own pages: 12 browsers, dated measurements in five languages, what didn't help, and when to stop. - [Proxies](https://cdpfleet.com/proxies): Every cdpfleet session browses through a proxy: bring HTTP, HTTPS or SOCKS5 proxies, pools and per-host rules, swap the exit live, use the residential proxy by tier and country, or your own VPN. Measured in cases. - [CDP & Puppeteer](https://cdpfleet.com/cdp): Drive cdpfleet browsers with Puppeteer, Playwright connectOverCDP or any Chrome DevTools Protocol client: add "cdp": true and connect to cdpUrl. What CDP adds (throttling, Core Web Vitals, cookie jar, request blocking) and what a page can tell, measured in cases. - [Cross-browser testing](https://cdpfleet.com/cross-browser-testing): Run your Playwright tests on 12 real browsers in the cloud: Chrome, Edge, Brave, Opera, Whale, Yandex, Chromium, Firefox, WebKit and more, their beta and dev channels and older majors, at any screen size, with a video of every run as evidence. - [Geo testing](https://cdpfleet.com/geo-testing): Load pages from residential IPs in the country you pick, with a browser whose timezone, language and formats match the exit: localization checks, geo-targeted content and prices, cookie banners by country and ad checks, measured. - [Monitoring](https://cdpfleet.com/monitoring): Watch prices, stock and pages that must keep working with a real browser in the cloud: short sessions billed per second, the free Community plan for small watches, field-level diffs, screenshots and a video of every failed check. - [Pages to text for LLMs](https://cdpfleet.com/llm-data): Turn web pages into compact text for LLMs and RAG with a real remote browser: ARIA snapshots that keep links at about a third of the HTML, innerText for summaries, structured extraction in the page, and the hosted MCP server for assistants. - [Scoreboard](https://cdpfleet.com/bot-protection/scoreboard): One table: how often each of 12 browsers (and a returning Camoufox profile) got the real page behind Cloudflare, DataDome, Akamai, HUMAN, Kasada and AWS WAF on real sites, from dated lab runs in five languages. - [Security](https://cdpfleet.com/security): How cdpfleet keeps sessions apart and data private: sessions reach only the public internet, file: URLs are refused, keys travel in headers, recordings and downloads sit behind short-lived private links, VPN configs are stored encrypted. - [Functions](https://cdpfleet.com/functions): cdpfleet Functions: screenshots, PDFs, Markdown, scraping with actions and extraction, site maps, geo compare, a live remote tab, batch and crawl jobs, live page watching, warmed-up browsers and change monitors — one HTTP call each, in real browsers. Try the free tools without signing up. - [Screenshot](https://cdpfleet.com/functions/screenshot): Enter a URL, pick the country the page should see you from, and get a PNG or JPEG back — rendered by a real browser, the way a visitor sees it. Free, no sign-up. The same as an API: POST /v1/functions/screenshot. - [PDF](https://cdpfleet.com/functions/pdf): The whole page as one tall PDF, A4 or Letter wide, rendered by a real browser. Free, no sign-up. The same as an API: POST /v1/functions/pdf. - [Markdown](https://cdpfleet.com/functions/markdown): The page's main content without navigation, scripts or ads — headings, lists, tables and code blocks kept. Ready to paste into an LLM. Free, no sign-up. The same as an API: POST /v1/functions/markdown. - [Live tab](https://cdpfleet.com/functions/livetab): A real browser tab on the cdpfleet fleet, in the country you pick, that you use from this page with your mouse or finger — see a site as visitors elsewhere see it, without a VPN. Free for 3 minutes, no sign-up. The same as an API: POST /v1/functions/livetab. - [Raw page](https://cdpfleet.com/functions/rawpage): The HTML after JavaScript ran, the XHR and fetch calls with their responses, cookies and console output — as JSON. Free, no sign-up. The same as an API: POST /v1/functions/rawpage. ## Cases - [All cases](https://cdpfleet.com/docs/cases) ### Web scraping - [What your browser says before it says anything: TLS and HTTP/2 fingerprints](https://cdpfleet.com/docs/cases/tls-fingerprints) - [A German Windows persona with Camoufox — and the one setting that broke it](https://cdpfleet.com/docs/cases/camoufox-persona) - [Three Chromium builds against common bot checks, headless and headful](https://cdpfleet.com/docs/cases/stealth-builds) - [Swap a proxy mid-session without losing the login — and the keep-alive trap](https://cdpfleet.com/docs/cases/live-proxy-swap) - [Different sites, different proxies, one browser: proxy_rules](https://cdpfleet.com/docs/cases/per-host-proxy-rules) - [A bandwidth diet for residential proxies: what blocking really saves](https://cdpfleet.com/docs/cases/bandwidth-diet) - [Setting a header the wrong way: header order as a fingerprint](https://cdpfleet.com/docs/cases/headers-and-h2) - [A thread-aware worker pool: one session per page vs. reusing sessions](https://cdpfleet.com/docs/cases/worker-pool) - [Real-time sites through a proxy: WebSocket latency by proxy](https://cdpfleet.com/docs/cases/websockets-through-proxies) - [What your proxy costs you in page speed](https://cdpfleet.com/docs/cases/proxy-speed) - [What headless gives away, what headful fixes, and what neither does](https://cdpfleet.com/docs/cases/headless-tells) - [Infinite scroll, two ways: scroll like a user, or call the JSON the page calls](https://cdpfleet.com/docs/cases/infinite-scroll) - [Fetch first, browser second: paying for JavaScript only when the page needs it](https://cdpfleet.com/docs/cases/fetch-first) - [Three visitors, one thread: browser contexts instead of sessions](https://cdpfleet.com/docs/cases/contexts-not-sessions) - [Four ways to make a request, four different visitors: goto, in-page fetch, page.request and your own client](https://cdpfleet.com/docs/cases/proxy-paths) - [Download every image on a page without downloading it twice](https://cdpfleet.com/docs/cases/image-download) - [Scrape a catalogue page by page: structured data from rendered HTML](https://cdpfleet.com/docs/cases/structured-extraction) - [Five pages at once: parallel tabs in one browser session](https://cdpfleet.com/docs/cases/parallel-pages) - [Content you can't querySelector: iframes and shadow DOM](https://cdpfleet.com/docs/cases/iframes-and-shadow-dom) - [When is a page ready? commit, domcontentloaded, load, networkidle or a selector](https://cdpfleet.com/docs/cases/wait-strategies) - [A scrape broke: find out why from its session recording](https://cdpfleet.com/docs/cases/replay-a-failed-run) - [Puppeteer on real Google Chrome: cdpUrl, raw CDP and request interception](https://cdpfleet.com/docs/cases/puppeteer-on-real-chrome) - [Can a page tell your automation client is listening? CDP and the console](https://cdpfleet.com/docs/cases/cdp-detectability) - [A first free scrape on the Community plan: no proxy to bring, country and sticky exits included](https://cdpfleet.com/docs/cases/community-first-scrape) - [The same Camoufox device across relaunches: what a persistent profile keeps, and what it doesn't](https://cdpfleet.com/docs/cases/camoufox-same-device) - [Cut residential spend: the page on Tier 1, the images on Tier 4, in one session](https://cdpfleet.com/docs/cases/resi-tiers-mix) - [Installed fonts as a fingerprint: what a width probe sees on each Camoufox persona](https://cdpfleet.com/docs/cases/fonts-fingerprint) - [Surviving a soft block: honour Retry-After, then move to another exit without losing the login](https://cdpfleet.com/docs/cases/soft-block-backoff) - [The WebRTC IP leak test behind a proxy: what Chromium, Chrome, Firefox and Camoufox reveal](https://cdpfleet.com/docs/cases/webrtc-ip-leak) - [Block analytics and beacons, keep the page: what telemetry a scraper sends without knowing](https://cdpfleet.com/docs/cases/intercept-and-block-telemetry) - [Borrow the page's token and read its paginated API directly](https://cdpfleet.com/docs/cases/scrape-a-paginated-json-api-with-a-token) - [Which bot protection is this? Detect the vendor from cookies, headers and requests](https://cdpfleet.com/docs/cases/which-bot-protection-is-this) - [What four public bot-test pages say about five fleet browsers](https://cdpfleet.com/docs/cases/what-fingerprint-test-pages-see) - [Cloudflare: what gets through? Four browsers, three networks, four public test pages](https://cdpfleet.com/docs/cases/cloudflare-what-gets-through) - [DataDome: what gets through? Four browsers, three networks, DataDome's own site](https://cdpfleet.com/docs/cases/datadome-what-gets-through) - [Which fingerprints stay the same across launches: canvas, WebGL, audio and fonts on seven browsers](https://cdpfleet.com/docs/cases/fingerprint-stability-across-launches) - [Akamai and HUMAN: what gets through? Four browsers, three networks, the vendors' own sites](https://cdpfleet.com/docs/cases/akamai-and-human-what-gets-through) - [CAPTCHA demo pages: what reCAPTCHA v3 scores and hCaptcha show seven browsers, and why a demo can't rank them](https://cdpfleet.com/docs/cases/captcha-scores-by-browser) - [VPN Tunnel vs a plain residential proxy: WebRTC, HTTP/3 and two bot-protection pages](https://cdpfleet.com/docs/cases/vpn-tunnel-vs-proxy) - [Cloudflare on real sites: twelve browsers, three sites, one exit each](https://cdpfleet.com/docs/cases/cloudflare-real-sites-by-browser) - [DataDome on real sites: twelve browsers, three sites, one exit each](https://cdpfleet.com/docs/cases/datadome-real-sites-by-browser) - [Stay under the tab and memory caps: reuse a few pages, close what you're done with](https://cdpfleet.com/docs/cases/stay-under-the-caps) - [Akamai on real sites: twelve browsers, three sites, one exit each](https://cdpfleet.com/docs/cases/akamai-real-sites-by-browser) - [HUMAN on real sites: twelve browsers, three sites, one exit each](https://cdpfleet.com/docs/cases/human-real-sites-by-browser) - [The SDK vs plain Playwright: the same scrape, and what happens at the thread cap](https://cdpfleet.com/docs/cases/sdk-vs-plain-playwright) - [Kasada and AWS WAF on real sites: twelve browsers, four sites, one exit each](https://cdpfleet.com/docs/cases/kasada-and-aws-waf-by-browser) - [How many tabs fit in one session, by plan, browser and "memory"](https://cdpfleet.com/docs/cases/tabs-and-memory-by-plan) - [Behaviour scoring: Camoufox humanize on and off vs plain Chrome clicks on a public bot-test form](https://cdpfleet.com/docs/cases/behaviour-scoring-humanize) - [Brave's fingerprint randomisation per site, per context and per launch, and what public fingerprint pages make of it](https://cdpfleet.com/docs/cases/brave-farbling) - [Does the TLS fingerprint (JA4) explain which browsers got in? Twelve browsers against six vendors](https://cdpfleet.com/docs/cases/ja4-vs-vendor-verdicts) - [A Function or your own browser? Screenshot, PDF and Markdown of the same pages, timed and billed](https://cdpfleet.com/docs/cases/function-vs-your-own-browser) - [Crawl a whole site as a job: map, crawl, stop, resume, results, zip and a signed webhook](https://cdpfleet.com/docs/cases/crawl-a-site-as-a-job) ### AI agents - [Log in once, stay logged in: carrying a session between browsers](https://cdpfleet.com/docs/cases/persist-login) - [Files across the wire: uploading to and downloading from a remote browser](https://cdpfleet.com/docs/cases/files-up-and-down) - [Watch it live: streaming a remote browser to your code, frame by frame](https://cdpfleet.com/docs/cases/live-view) - [Logging in through a TOTP two-factor prompt from a remote browser](https://cdpfleet.com/docs/cases/totp-login) - [Saved the login, still logged out: storageState and IndexedDB](https://cdpfleet.com/docs/cases/indexeddb-login-state) - [Persistent profiles: what a saved browser profile keeps, and what it doesn't](https://cdpfleet.com/docs/cases/persistent-profiles) - [Do it by hand in live view, then let your code finish in the same browser](https://cdpfleet.com/docs/cases/launch-interactive-to-code) - [keep_alive: an agent run that survives its client going away](https://cdpfleet.com/docs/cases/keep-alive-reconnect) - [MCP in action: an MCP client drives a cloud browser through cdpfleet.com/mcp](https://cdpfleet.com/docs/cases/mcp-in-action) - [Kept downloads in practice: a person in Launch interactive and an AI agent over MCP](https://cdpfleet.com/docs/cases/downloads-in-practice) ### Testing - [Emulating an iPhone on real Chrome: what changes, and what gives you away](https://cdpfleet.com/docs/cases/mobile-emulation) - [Stable, beta, dev and an older major: four Chromes side by side](https://cdpfleet.com/docs/cases/chrome-versions) - [Session replay without a vendor: Playwright tracing and video on a remote browser](https://cdpfleet.com/docs/cases/trace-and-video) - [Check every link on a page: 73 links in seconds, from inside the browser](https://cdpfleet.com/docs/cases/link-checker) - [New tabs, window.open and the three blocking dialogs: everything that interrupts a script](https://cdpfleet.com/docs/cases/popups-and-dialogs) - [Same Chrome, two doors: Playwright's protocol (wsUrl) or CDP (cdpUrl)](https://cdpfleet.com/docs/cases/playwright-vs-cdp) - [Record a page once, replay it offline: HAR files with a remote browser](https://cdpfleet.com/docs/cases/har-record-and-replay) - [Slow 3G on a remote browser: network throttling over a CDP session](https://cdpfleet.com/docs/cases/slow-network) - [Print to PDF across browsers: which engines can, and the fallback for the rest](https://cdpfleet.com/docs/cases/print-to-pdf) - [Clipboard and file permissions on remote browsers: what's blocked and what works](https://cdpfleet.com/docs/cases/clipboard-and-files) - [Browser extensions aren't supported — what to use instead](https://cdpfleet.com/docs/cases/no-extensions) - [Mock, patch and fail API responses with route.fulfill on remote browsers](https://cdpfleet.com/docs/cases/mock-api-responses) - [Core Web Vitals from a remote browser: LCP, CLS and TTFB in lab runs](https://cdpfleet.com/docs/cases/core-web-vitals-via-cdp) - [A slow phone on a fast server: CPU throttling over a CDP session](https://cdpfleet.com/docs/cases/cpu-throttling-via-cdp) - [Inspect and edit the cookie jar of a remote browser — and why WebKit refuses cookies on httpbin.org](https://cdpfleet.com/docs/cases/inspect-and-edit-the-cookie-jar) - [A multi-step checkout end to end: wait for each step, and check what you typed](https://cdpfleet.com/docs/cases/fill-a-multi-step-form) ### Geo testing - [Three countries, one script — and reading values the way the site does](https://cdpfleet.com/docs/cases/three-countries) - [No proxy of your own: rotating, country and sticky residential IPs with one token](https://cdpfleet.com/docs/cases/residential-without-a-proxy) - [A German IP with a UTC clock: making location, timezone and permissions agree](https://cdpfleet.com/docs/cases/geolocation-and-permissions) - [Cookie banners by country: the same five sites from Germany and from the US](https://cdpfleet.com/docs/cases/cookie-consent-by-country) - [Does the browser agree with its IP? Timezone, language and WebRTC through exits in three countries](https://cdpfleet.com/docs/cases/timezone-locale-ip-consistency) - [Geo compare: the same pages from five countries in one call, and reading the diff](https://cdpfleet.com/docs/cases/geo-compare) ### Monitoring - [Visual capture: full-page screenshot, element crop and PDF in one session](https://cdpfleet.com/docs/cases/screenshot-and-pdf) - [A price watcher in one program: two snapshots minutes apart, diffed, billed only while reading](https://cdpfleet.com/docs/cases/price-watch) - [A monitor end to end: create it, trigger a change, verify the signed webhook, read the diff and history](https://cdpfleet.com/docs/cases/monitor-end-to-end) - [Watch a page live: its XHR calls, DOM changes and WebSocket messages over SSE and a signed webhook](https://cdpfleet.com/docs/cases/watch-a-page-live) ### LLM data - [A page for an LLM: HTML, innerText or the accessibility snapshot?](https://cdpfleet.com/docs/cases/page-to-text-for-llms) ## Optional - [cdpfleet vs Browserbase](https://cdpfleet.com/docs/compare/cdpfleet-vs-browserbase) - [cdpfleet vs Browserless](https://cdpfleet.com/docs/compare/cdpfleet-vs-browserless) - [cdpfleet vs Steel](https://cdpfleet.com/docs/compare/cdpfleet-vs-steel) - [cdpfleet vs Browser Use Cloud](https://cdpfleet.com/docs/compare/cdpfleet-vs-browser-use) - [cdpfleet vs Hyperbrowser](https://cdpfleet.com/docs/compare/cdpfleet-vs-hyperbrowser) - [cdpfleet vs Cloudflare Browser Run (Browser Rendering)](https://cdpfleet.com/docs/compare/cdpfleet-vs-cloudflare-browser-run) - [cdpfleet vs Anchor Browser](https://cdpfleet.com/docs/compare/cdpfleet-vs-anchor-browser) - [cdpfleet vs Kernel](https://cdpfleet.com/docs/compare/cdpfleet-vs-kernel) - [cdpfleet vs ZenRows](https://cdpfleet.com/docs/compare/cdpfleet-vs-zenrows) - [cdpfleet vs Apify](https://cdpfleet.com/docs/compare/cdpfleet-vs-apify) - [cdpfleet vs Airtop](https://cdpfleet.com/docs/compare/cdpfleet-vs-airtop) - [cdpfleet vs Notte](https://cdpfleet.com/docs/compare/cdpfleet-vs-notte) - [cdpfleet vs Bright Data Browser API](https://cdpfleet.com/docs/compare/cdpfleet-vs-bright-data) - [cdpfleet vs Oxylabs Agent Browser](https://cdpfleet.com/docs/compare/cdpfleet-vs-oxylabs) - [cdpfleet vs Scrapfly](https://cdpfleet.com/docs/compare/cdpfleet-vs-scrapfly) - [cdpfleet vs ScrapingBee](https://cdpfleet.com/docs/compare/cdpfleet-vs-scrapingbee) - [cdpfleet vs Zyte](https://cdpfleet.com/docs/compare/cdpfleet-vs-zyte) - [cdpfleet vs Nimble](https://cdpfleet.com/docs/compare/cdpfleet-vs-nimble) - [Brave beta vs stable](https://cdpfleet.com/docs/compare/brave-beta-vs-stable) - [Camoufox 152 vs Camoufox 150](https://cdpfleet.com/docs/compare/camoufox-152-vs-150) - [Camoufox vs Firefox, headless](https://cdpfleet.com/docs/compare/camoufox-vs-firefox-headless) - [Camoufox vs Patchright](https://cdpfleet.com/docs/compare/camoufox-vs-patchright) - [Chrome 154 vs Chrome 153](https://cdpfleet.com/docs/compare/chrome-154-vs-153) - [Chrome 155 vs Chrome 154](https://cdpfleet.com/docs/compare/chrome-155-vs-154) - [Chrome 156 (beta) vs Chrome 154](https://cdpfleet.com/docs/compare/chrome-156-beta-vs-154) - [Chrome vs Brave](https://cdpfleet.com/docs/compare/chrome-vs-brave) - [Chrome vs Chromium](https://cdpfleet.com/docs/compare/chrome-vs-chromium) - [Chrome vs Edge](https://cdpfleet.com/docs/compare/chrome-vs-edge) - [Edge 156 (beta) vs Edge 155](https://cdpfleet.com/docs/compare/edge-156-beta-vs-155) - [Edge vs Brave](https://cdpfleet.com/docs/compare/edge-vs-brave) - [Firefox vs Camoufox](https://cdpfleet.com/docs/compare/firefox-vs-camoufox) - [Opera developer vs stable](https://cdpfleet.com/docs/compare/opera-developer-vs-stable) - [Opera vs Chrome](https://cdpfleet.com/docs/compare/opera-vs-chrome) - [Patchright vs Rebrowser](https://cdpfleet.com/docs/compare/patchright-vs-rebrowser) - [WebKit vs Chromium](https://cdpfleet.com/docs/compare/webkit-vs-chromium) - [WebKit vs the Safari it claims to be](https://cdpfleet.com/docs/compare/webkit-vs-safari-claims) - [Naver Whale vs Chrome](https://cdpfleet.com/docs/compare/whale-vs-chrome) - [Yandex Browser vs Chrome](https://cdpfleet.com/docs/compare/yandex-vs-chrome) - [Updates](https://cdpfleet.com/docs/updates): browser releases and product news - [The live tab: a remote browser tab you share as a link](https://cdpfleet.com/docs/updates/live-tab) - [Opera 140: Chromium 157 underneath, HTTPS-First turned on (and off on cdpfleet)](https://cdpfleet.com/docs/updates/opera-140) - [Brave 1.99: Chromium 157 underneath, Protected Audience gone, same TLS fingerprint](https://cdpfleet.com/docs/updates/brave-1-99) - [Edge 157: Chromium 157, HTTPS-First kept off on cdpfleet, Protected Audience gone](https://cdpfleet.com/docs/updates/edge-157) - [Whale 5.41: Chromium 150 to 156 in one step, and now Chrome's TLS fingerprint](https://cdpfleet.com/docs/updates/whale-5-41) - [Chrome 157: HTTPS-First turned on (and off on cdpfleet), Protected Audience gone, same TLS fingerprint](https://cdpfleet.com/docs/updates/chrome-157) - [Kept downloads: files from a session, fetched after it ends](https://cdpfleet.com/docs/updates/kept-downloads) - [Sign-ups are open: start free on Community, upgrade from $7.50 a month](https://cdpfleet.com/docs/updates/signups-open) - [50 tabs per session, memory as the ceiling, and the memory option](https://cdpfleet.com/docs/updates/tabs-and-memory) - [Opera 139: Chromium 155 underneath, four new CSS and policy features](https://cdpfleet.com/docs/updates/opera-139) - [Brave 1.98: Chromium 156 underneath](https://cdpfleet.com/docs/updates/brave-1-98) - [Chrome 156: CSS random(), IndexedDB on SQLite, same TLS fingerprint](https://cdpfleet.com/docs/updates/chrome-156) - [Edge 156: Chromium 156 underneath, CSS random() arrives](https://cdpfleet.com/docs/updates/edge-156) - [Opera 138: Chromium 154 underneath, two new web APIs](https://cdpfleet.com/docs/updates/opera-138) - [Camoufox 156: Firefox 156 base, and humanized mouse moves no longer hang](https://cdpfleet.com/docs/updates/camoufox-156) - [Launch interactive: try a browser by hand before you write the code](https://cdpfleet.com/docs/updates/launch-interactive) - [Residential proxy tiers: from $5 down to $0.50 per GB](https://cdpfleet.com/docs/updates/residential-tiers) - [The free Community plan: what's in it and how to get an invite](https://cdpfleet.com/docs/updates/community-plan) - [Persistent profiles: log in once, reuse the browser session](https://cdpfleet.com/docs/updates/persistent-profiles) - [All comparisons](https://cdpfleet.com/docs/compare) - [Docs home](https://cdpfleet.com/docs) - [Source and examples](https://github.com/cdpfleet/cdpfleet)