Compare / other services
cdpfleet vs Cloudflare Browser Run (Browser Rendering)
Cloudflare's serverless headless Chromium — formerly Browser Rendering — against a fleet of twelve real browsers: $0.09/hour beyond 10 free hours plus concurrency fees, Cloudflare exit IPs that are always flagged as bot traffic and no proxies, or flat threads with any proxy and headful real browsers.
Cloudflare Browser Run (renamed from Browser Rendering in April 2026) runs headless Chromium on Cloudflare's network: from a Worker with @cloudflare/puppeteer or @cloudflare/playwright, through REST "Quick Actions" (content, Markdown, scrape, JSON extraction, links, screenshot, PDF, crawl), or over CDP from anywhere. It's built for rendering and AI agents on the Cloudflare platform. cdpfleet is a fleet of twelve real desktop browsers — Google Chrome, Microsoft Edge, Brave, Opera, Naver Whale, Yandex Browser, Chromium, Patchright, Rebrowser, Camoufox, Firefox and WebKit — launched with one HTTPS call and driven over the Playwright protocol or CDP from five languages, through the proxies you choose. The two meet on "a browser in the cloud" and part ways on almost everything a scraper cares about: browser choice, exit IPs and how the browser presents itself. This page also sets the Quick Actions next to cdpfleet Functions, jobs and monitors.
| cdpfleet | Cloudflare Browser Run | |
|---|---|---|
| Browsers | 12 — Google Chrome, Microsoft Edge, Brave, Opera, Naver Whale, Yandex Browser, Chromium, Patchright, Rebrowser, Camoufox, Firefox, WebKit. Chrome with stable, beta and dev channels and pinned previous majors; headful (a virtual display) by default. | Headless Chromium (Chrome 152 since 30 October 2026); no choice of version — an experimental lab pool with upcoming Chrome features, and Kitesurf, a lighter non-Chromium engine in beta. Headful only in local development (experimental). |
| How you connect | Playwright protocol (connect(wsUrl), client 1.60) from Node.js, Python, Java, C# and Go — or "cdp": true for a cdpUrl: Puppeteer, connectOverCDP or any CDP client (CDP & Puppeteer). | Workers bindings for Puppeteer (based on 22.13) and Playwright; REST quick actions; CDP over a WebSocket with an API token from any CDP client. Examples are JavaScript/TypeScript. |
| Session length | Up to 24 h (shared threads: also capped by your remaining daily minutes). Idle timeout 120 s by default, up to 10 min on shared threads and 24 h on dedicated; keep_alive lets you reconnect. | No fixed maximum while active; idle timeout 60 s by default, keep_alive up to 20 minutes. Sessions also close when Cloudflare rolls out a new release. |
| Browser time | Free Community plan: 2 threads, 60 browser-minutes per thread a day, 15-minute sessions, proxies included. Per second, as thread-seconds. Shared: $0.02–$0.05 per browser-hour at full use; dedicated $0.01/hour ($8.50/month for a browser around the clock). A headful session takes 2 threads. | Free: 10 minutes a day. Workers Paid: 10 hours a month included, then $0.09/hour (rounded per month), plus 10 concurrent browsers included and $2.00 for each extra (monthly average of daily peaks). |
| Concurrency | The threads you buy: 5 to 10,000 (more on request). | Free 3, Paid 200 concurrent browsers by default (more on request); new browsers 1 per 20 s on Free, 3 per second on Paid. |
| Proxies and exit IPs | Any proxy, free — HTTP, HTTPS or SOCKS5, single, pools or per-host rules, with live swap; or the cdpfleet residential proxy (4 tiers from $0.50/GB, $5 free credit). | No proxies, no residential option, no IP rotation: all traffic leaves from Cloudflare's IP ranges, from wherever the session opens. |
| How sites see it | A real browser on your proxy's IP. Genuine Chrome, Edge, Brave…, headful by default, plus three stealth builds. See headless tells. | "Always identified as bot traffic by Cloudflare", with fixed request headers (cf-brapi-*, Web Bot Auth signatures) you can't remove. No stealth mode. |
| Captcha solving | Not built in. Use any solver through Playwright. | None; a person can take over through Live View ("human in the loop"). |
| Watching a session | Live view with human takeover — Watch / Take control in the dashboard, or a link from the API — and Launch interactive: open any browser on a start page straight into live view from the dashboard's code generator (start_url over the API). Session recordings as MP4 (480p free, 720p or 1080p on a plan), and JPEG frames to your code with page.screencast. | Live View in the dashboard or DevTools; opt-in recordings as DOM/event replays (not video), kept 30 days, up to 2 hours. |
| Persistence | Persistent profiles keep cookies, local storage and IndexedDB between sessions (paid plans); Playwright storageState; keep_alive to reconnect to the same browser on dedicated threads. No extensions. | Reuse a running session by id; no profiles (store state yourself, e.g. in KV). Extensions not stated. |
| Scraping in one call | Functions: screenshot, PDF, Markdown, scrape (HTML, Markdown, text, links, screenshot, XHR calls, cookies; wait_for, actions, extract by CSS selector), map, geo compare and a live tab — in a pooled browser, or in a browser and device of your choice on paid plans. Billed like a session (one thread while the call runs, one per country for geo compare); the Community proxy and your own proxies cost nothing extra. Free tools at /functions. | Quick Actions over REST or a Workers binding, each a headless-Chromium render billed as browser time: /content (rendered HTML), /markdown, /scrape (text, HTML, attributes and position of the elements you select), /json (extraction to a prompt or a JSON schema by Workers AI, billed separately, or your own model), /links, /accessibilityTree and /snapshot (several of these in one call); with waitForSelector, gotoOptions, cookies, extra headers, injected scripts and resource blocking; results cached 5 seconds by default, up to a day. No proxy or country choice and no action steps beyond your own injected script; requests are always identified as bots, whatever the user agent. A call that fails on waitForTimeout isn't charged. |
| Crawling and bulk | Jobs on paid plans: batch (any number of URLs), crawl and map, with no size or time limit — runs continue past the 24-hour session limit by themselves; results as JSON lines or a zip archive, kept 14 days; stop and resume; signed webhooks. Plus watch (live XHR/WebSocket/DOM events), warmup and monitors (scheduled change detection with diffs). | /crawl (REST only, asynchronous): from a start URL through sitemaps and links, up to 100,000 pages and a set depth, include/exclude patterns, HTML, Markdown or JSON per page, render: false for a plain fetch (not billed during the beta), modifiedSince and a cache of up to a week; jobs run up to 7 days, results are kept 14 days, lifecycle events arrive through Queues. It obeys robots.txt (0.5 s between requests to a domain by default) and Content Signals, under its own fixed user agent. Workers Free: 5 crawl jobs a day, 100 pages each. No batch or map endpoint and no scheduler; the docs point to Queues for batches of URLs. |
| Screenshots and PDFs | Screenshot (PNG/JPEG, viewport or full page) and PDF Functions — a text PDF from a Chromium-based browser. | /screenshot: PNG by default or JPEG, viewport, full page or a clip, from a URL or raw HTML (1920×1080 viewport by default). /pdf from a URL or HTML with Chrome's print options, header and footer templates and custom fonts. Both billed as browser time. |
| Agent tooling | A hosted MCP server at cdpfleet.com/mcp — add it in Claude, ChatGPT or Gemini and sign in with OAuth — or npx cdpfleet-mcp; SDKs for Node.js, Python and Go. | No hosted MCP server of its own: the docs connect chrome-devtools-mcp to a Browser Run CDP session, deploy a Playwright MCP server or Stagehand as a Worker, expose WebMCP tools in lab sessions, and hand a session to a person with a structured human-in-the-loop handoff over CDP. |
| Where the browser runs | Servers in the EU (Germany and Finland); your proxy decides where traffic exits. | Cloudflare's global network, close to the request; no region choice. |
| Examples | 89 cases run on production in five languages, all on GitHub with their output. | Cloudflare docs and Workers templates. |
Cloudflare Browser Run facts from its public pricing page and documentation, checked on 10 November 2026; list prices in USD. Tell us if something is out of date.
Which one, when
Pick Cloudflare Browser Run if…
- You render pages on Cloudflare already — screenshots, PDFs, markdown for your own or cooperative sites — and want it next to your Workers.
- Your volume fits the free tier or the 10 included hours, and nobody minds that the traffic is labelled as a bot.
- You want REST endpoints (Markdown, screenshot, PDF, JSON extraction) more than a browser you drive, or crawls of up to 100,000 pages that respect robots.txt.
Pick cdpfleet if…
- You want one-call scrapes with actions from a chosen country and proxy, and monitors that check pages on a schedule.
- The site must see a normal visitor: a real browser on a residential or your own proxy IP, not Cloudflare's ranges with bot headers.
- You need a specific browser or version — Chrome channels and pinned majors, Edge, Brave, Firefox, WebKit, Camoufox — or headful rendering.
- You drive the browser from Python, Java, C# or Go over the Playwright protocol.
- Sessions run for hours or around the clock on a flat-priced dedicated thread.
- You want to start free — the Community plan includes proxies — and try a browser in live view before writing any code.
Try it
The quickstart is one HTTPS call and five lines of Playwright; the code builder writes the launch for any browser and option set in your language.
Sources
- Cloudflare Browser Run pricing
- Browser Run limits
- Browser Run FAQ
- Browser Run changelog
- Browser Run: CDP access
- Browser Run: Puppeteer (keep_alive)
- Browser Run: Kitesurf
- Browser Run: automatic request headers
- Browser Run: session recording
- Browser Run: Live View
- Browser Run: Quick Actions
- Browser Run: /markdown
- Browser Run: /scrape
- Browser Run: /json
- Browser Run: /snapshot
- Browser Run: /crawl
- Browser Run: /screenshot
- Browser Run: /pdf
- Browser Run: MCP clients over CDP
- Browser Run: Playwright MCP
- Browser Run: WebMCP