Skip to content
Start here

Get HTML content and screenshot.

client.browserRendering.snapshot.create(SnapshotCreateParamsparams, RequestOptionsoptions?): SnapshotCreateResponse { accessibilityTree, content, markdown, screenshot }
POST/accounts/{account_id}/browser-rendering/snapshot

Returns the page’s HTML content and screenshot. Control page loading with gotoOptions and waitFor* options. Customize screenshots with viewport, fullPage, clip and others.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Browser Rendering Write
ParametersExpand Collapse
SnapshotCreateParams = Variant0 | Variant1
SnapshotCreateParamsBase
Variant0 extends SnapshotCreateParamsBase
Variant1 extends SnapshotCreateParamsBase
ReturnsExpand Collapse
SnapshotCreateResponse { accessibilityTree, content, markdown, screenshot }
accessibilityTree?: AccessibilityTree { role, autocomplete, checked, 23 more }

Accessibility tree node

role: string
autocomplete?: string
checked?: boolean | "mixed"
One of the following:
boolean
"mixed"
children?: Array<unknown>
description?: string
disabled?: boolean
expanded?: boolean
focused?: boolean
haspopup?: string
invalid?: string
keyshortcuts?: string
level?: number
multiline?: boolean
multiselectable?: boolean
name?: string
orientation?: string
pressed?: boolean | "mixed"
One of the following:
boolean
"mixed"
readonly?: boolean
required?: boolean
roledescription?: string
selected?: boolean
value?: string | number
One of the following:
string
number
valuemax?: number
valuemin?: number
valuetext?: string
content?: string

HTML content.

markdown?: string

Markdown content.

screenshot?: string

Base64 encoded image.

Get HTML content and screenshot.

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const snapshot = await client.browserRendering.snapshot.create({
  account_id: 'account_id',
  html: '<h1>Hello World!</h1>',
  formats: ['content', 'screenshot'],
});

console.log(snapshot.accessibilityTree);
{
  "meta": {
    "status": 0,
    "title": "title"
  },
  "success": true,
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "result": {
    "accessibilityTree": {
      "role": "role",
      "autocomplete": "autocomplete",
      "checked": "mixed",
      "children": [
        {}
      ],
      "description": "description",
      "disabled": true,
      "expanded": true,
      "focused": true,
      "haspopup": "haspopup",
      "invalid": "invalid",
      "keyshortcuts": "keyshortcuts",
      "level": 0,
      "modal": true,
      "multiline": true,
      "multiselectable": true,
      "name": "name",
      "orientation": "orientation",
      "pressed": "mixed",
      "readonly": true,
      "required": true,
      "roledescription": "roledescription",
      "selected": true,
      "value": "string",
      "valuemax": 0,
      "valuemin": 0,
      "valuetext": "valuetext"
    },
    "content": "content",
    "markdown": "markdown",
    "screenshot": "screenshot"
  }
}
{
  "errors": [
    {
      "code": 2001,
      "message": "Rate limit exceeded"
    }
  ],
  "success": false
}
Returns Examples
{
  "meta": {
    "status": 0,
    "title": "title"
  },
  "success": true,
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "result": {
    "accessibilityTree": {
      "role": "role",
      "autocomplete": "autocomplete",
      "checked": "mixed",
      "children": [
        {}
      ],
      "description": "description",
      "disabled": true,
      "expanded": true,
      "focused": true,
      "haspopup": "haspopup",
      "invalid": "invalid",
      "keyshortcuts": "keyshortcuts",
      "level": 0,
      "modal": true,
      "multiline": true,
      "multiselectable": true,
      "name": "name",
      "orientation": "orientation",
      "pressed": "mixed",
      "readonly": true,
      "required": true,
      "roledescription": "roledescription",
      "selected": true,
      "value": "string",
      "valuemax": 0,
      "valuemin": 0,
      "valuetext": "valuetext"
    },
    "content": "content",
    "markdown": "markdown",
    "screenshot": "screenshot"
  }
}
{
  "errors": [
    {
      "code": 2001,
      "message": "Rate limit exceeded"
    }
  ],
  "success": false
}