Browserless
Headless Chrome automation for the cloud — 8 operations covering content extraction, screenshots, PDFs, structured scraping, custom JavaScript, bot-protection bypass, file downloads, and Lighthouse performance audits.
What Is Browserless?
Browserless is a cloud-hosted headless Chrome service (also self-hostable) that exposes a REST API for programmatic browser control without running a local browser. BizFirstAI's Browserless node wraps this API so that workflow designers can automate any browser task — rendering JavaScript-heavy pages, capturing screenshots, generating PDFs, extracting structured data, or running arbitrary Puppeteer-style code — without writing a single line of infrastructure code.
A single Browserless connection (one BaseUrl + optional Token) supports all eight operations. Pick the operation that matches your goal, configure the fields in the node panel, and connect the output port to the next step in your workflow.
BaseUrl for the cloud service is https://chrome.browserless.io. For a self-hosted instance, use your internal URL (e.g. http://browserless:3000). Self-hosted instances typically do not require a token.
Operations
content
Navigate to a URL and return the fully rendered HTML after JavaScript execution. Ideal for scraping single-page applications.
screenshot
Capture a PNG or JPEG screenshot of a page or a specific element. Supports full-page, viewport clip, and element selector modes.
Print a page to PDF with configurable paper format, orientation, margins, and background rendering.
scrape
Extract structured data from one or more CSS selectors — returns text, HTML, and attributes for every matched element.
execute
Run arbitrary Puppeteer-style JavaScript inside the browser context and return any JSON, text, or binary result.
unblock
Bypass Cloudflare, DataDome, Akamai, and similar bot-protection layers. Returns HTML, a screenshot, or a live WebSocket endpoint.
download
Trigger a file download inside the browser (click a button, submit a form) using custom JS and capture the resulting file bytes.
performance
Run a Lighthouse audit and return Core Web Vitals, category scores, and the full report object for monitoring or alerting workflows.
Authentication
| Field | Required | Description |
|---|---|---|
BaseUrl | Required | The Browserless instance URL. Cloud: https://chrome.browserless.io. Self-hosted: your internal address. |
Token | Optional | API token for cloud Browserless. Passed as the token query-string parameter on every request. Not required for self-hosted instances without authentication. |
Common Fields (all operations)
| Field | Required | Description |
|---|---|---|
operation | Required | Selects the operation: content, screenshot, pdf, scrape, execute, unblock, download, or performance. |
continueOnError | Optional | Default false. When true, routing goes to the success port even when the Browserless call fails — the output data will contain status: "error". |
timeout | Optional | Request timeout in milliseconds. 0 uses the Browserless instance default (typically 30 s). Applied as both the HTTP client timeout and the timeout query-string parameter. |
blockAds | Optional | Default true. Instructs Browserless to block ad networks during page load, reducing noise in screenshots and content results. |
useCustomBody | Optional | When true, the value of customBodyJson is sent verbatim as the request body, bypassing all individual field mapping. |
customBodyJson | Optional | Raw JSON body used when useCustomBody is true. Gives full access to every Browserless API option, including ones not exposed as individual fields. |
Output Ports
| Port | Contents |
|---|---|
| Success | Operation-specific result object. Always contains status: "success", errorCode: "", and operation. See each operation page for the full field list. |
| Error | Contains status: "error", errorCode, errorMessage, operation, and optionally httpStatusCode. Activated when the Browserless API returns an error, the network request fails, or validation fails. |
Quick-Start Example
Capture a screenshot of a dashboard and attach it to a Slack message:
{
"operation": "screenshot",
"baseUrl": "https://chrome.browserless.io",
"token": "{{ $env.BROWSERLESS_TOKEN }}",
"url": "https://app.example.com/dashboard",
"options": {
"fullPage": false,
"type": "png"
},
"gotoOptions": { "waitUntil": "networkidle2", "timeout": 20000 },
"blockAds": true
}
timeout to avoid runaway sessions.