Setting the file. One moment.
Chapter 04 · Cloudflare Deploy
Subchapter 4.48
references/browser-rendering/configuration.mdMarkdown2 KBView on GitHub
npm install @cloudflare/puppeteer # or @cloudflare/playwrightUse Cloudflare packages - standard puppeteer/playwright won’t work in Workers.
{
"name": "browser-worker",
"main": "src/index.ts",
"compatibility_date": "2025-01-01",
"compatibility_flags": ["nodejs_compat"],
"browser": {
"binding": "MYBROWSER"
}
}Required: nodejs_compat flag and browser.binding.
interface Env {
MYBROWSER: Fetcher;
}
export default {
async fetch(request: Request, env: Env): Promise<Response> {
// ...
}
} satisfies ExportedHandler<Env>;wrangler dev --remote # --remote required for browser bindingLocal mode does NOT support Browser Rendering - must use --remote.
No wrangler config needed. Get API token with “Browser Rendering - Edit” permission.
curl -X POST \
'https://api.cloudflare.com/client/v4/accounts/{accountId}/browser-rendering/screenshot' \
-H 'Authorization: Bearer TOKEN' \
-d '{"url": "https://example.com"}' --output screenshot.png| Requirement | Value |
|---|---|
| Node.js compatibility | nodejs_compat flag |
| Compatibility date | 2023-03-01+ |
| Module format | ES modules only |
| Browser | Chromium 119+ (no Firefox/Safari) |
Not supported: WebGL, WebRTC, extensions, file:// protocol, Service Worker syntax.
| Error | Solution |
|---|---|
MYBROWSER is undefined | Use wrangler dev --remote |
nodejs_compat not enabled | Add to compatibility_flags |
Module not found | npm install @cloudflare/puppeteer |
Browser Rendering not available | Enable in dashboard |