Skip to content
Start here

Get HTML content and screenshot.

client.BrowserRendering.Snapshot.New(ctx, params) (*SnapshotNewResponse, error)
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
params SnapshotNewParams
AccountID param.Field[string]

Path param: Account ID.

HTML param.Field[string]

Body param: Set the content of the page, eg: <h1>Hello World!!</h1>. Either html or url must be set.

minLength1
CacheTTL param.Field[float64]optional

Query param: Cache TTL default is 5s. Set to 0 to disable.

maximum86400
ActionTimeout param.Field[float64]optional

Body param: The maximum duration allowed for the browser action to complete after the page has loaded (such as taking screenshots, extracting content, or generating PDFs). If this time limit is exceeded, the action stops and returns a timeout error.

maximum120000
AddScriptTag param.Field[[]SnapshotNewParamsVariant0AddScriptTag]optional

Body param: Adds a <script> tag into the page with the desired URL or content.

ID stringoptional
Content stringoptional
Type stringoptional
URL stringoptional
AddStyleTag param.Field[[]SnapshotNewParamsVariant0AddStyleTag]optional

Body param: Adds a <link rel="stylesheet"> tag into the page with the desired URL or a <style type="text/css"> tag with the content.

Content stringoptional
URL stringoptional
AllowRequestPattern param.Field[[]string]optional

Body param: Only allow requests that match the provided regex patterns, eg. '/^.*.(css)'.

AllowResourceTypes param.Field[[]SnapshotNewParamsVariant0AllowResourceType]optional

Body param: Only allow requests that match the provided resource types, eg. 'image' or 'script'.

const SnapshotNewParamsVariant0AllowResourceTypeDocument SnapshotNewParamsVariant0AllowResourceType = "document"
const SnapshotNewParamsVariant0AllowResourceTypeStylesheet SnapshotNewParamsVariant0AllowResourceType = "stylesheet"
const SnapshotNewParamsVariant0AllowResourceTypeImage SnapshotNewParamsVariant0AllowResourceType = "image"
const SnapshotNewParamsVariant0AllowResourceTypeMedia SnapshotNewParamsVariant0AllowResourceType = "media"
const SnapshotNewParamsVariant0AllowResourceTypeFont SnapshotNewParamsVariant0AllowResourceType = "font"
const SnapshotNewParamsVariant0AllowResourceTypeScript SnapshotNewParamsVariant0AllowResourceType = "script"
const SnapshotNewParamsVariant0AllowResourceTypeTexttrack SnapshotNewParamsVariant0AllowResourceType = "texttrack"
const SnapshotNewParamsVariant0AllowResourceTypeXHR SnapshotNewParamsVariant0AllowResourceType = "xhr"
const SnapshotNewParamsVariant0AllowResourceTypeFetch SnapshotNewParamsVariant0AllowResourceType = "fetch"
const SnapshotNewParamsVariant0AllowResourceTypePrefetch SnapshotNewParamsVariant0AllowResourceType = "prefetch"
const SnapshotNewParamsVariant0AllowResourceTypeEventsource SnapshotNewParamsVariant0AllowResourceType = "eventsource"
const SnapshotNewParamsVariant0AllowResourceTypeWebsocket SnapshotNewParamsVariant0AllowResourceType = "websocket"
const SnapshotNewParamsVariant0AllowResourceTypeManifest SnapshotNewParamsVariant0AllowResourceType = "manifest"
const SnapshotNewParamsVariant0AllowResourceTypeSignedexchange SnapshotNewParamsVariant0AllowResourceType = "signedexchange"
const SnapshotNewParamsVariant0AllowResourceTypePing SnapshotNewParamsVariant0AllowResourceType = "ping"
const SnapshotNewParamsVariant0AllowResourceTypeCspviolationreport SnapshotNewParamsVariant0AllowResourceType = "cspviolationreport"
const SnapshotNewParamsVariant0AllowResourceTypePreflight SnapshotNewParamsVariant0AllowResourceType = "preflight"
const SnapshotNewParamsVariant0AllowResourceTypeOther SnapshotNewParamsVariant0AllowResourceType = "other"
Authenticate param.Field[SnapshotNewParamsVariant0Authenticate]optional

Body param: Provide credentials for HTTP authentication.

Password string
minLength1
Username string
minLength1
BestAttempt param.Field[bool]optional

Body param: Attempt to proceed when 'awaited' events fail or timeout.

Cookies param.Field[[]SnapshotNewParamsVariant0Cookie]optional

Body param: Check options.

Name string

Cookie name.

Value string
Domain stringoptional
Expires float64optional
HTTPOnly booloptional
PartitionKey stringoptional
Path stringoptional
Priority SnapshotNewParamsVariant0CookiesPriorityoptional
One of the following:
const SnapshotNewParamsVariant0CookiesPriorityLow SnapshotNewParamsVariant0CookiesPriority = "Low"
const SnapshotNewParamsVariant0CookiesPriorityMedium SnapshotNewParamsVariant0CookiesPriority = "Medium"
const SnapshotNewParamsVariant0CookiesPriorityHigh SnapshotNewParamsVariant0CookiesPriority = "High"
SameParty booloptional
SameSite SnapshotNewParamsVariant0CookiesSameSiteoptional
One of the following:
const SnapshotNewParamsVariant0CookiesSameSiteStrict SnapshotNewParamsVariant0CookiesSameSite = "Strict"
const SnapshotNewParamsVariant0CookiesSameSiteLax SnapshotNewParamsVariant0CookiesSameSite = "Lax"
const SnapshotNewParamsVariant0CookiesSameSiteNone SnapshotNewParamsVariant0CookiesSameSite = "None"
Secure booloptional
SourcePort float64optional
SourceScheme SnapshotNewParamsVariant0CookiesSourceSchemeoptional
One of the following:
const SnapshotNewParamsVariant0CookiesSourceSchemeUnset SnapshotNewParamsVariant0CookiesSourceScheme = "Unset"
const SnapshotNewParamsVariant0CookiesSourceSchemeNonSecure SnapshotNewParamsVariant0CookiesSourceScheme = "NonSecure"
const SnapshotNewParamsVariant0CookiesSourceSchemeSecure SnapshotNewParamsVariant0CookiesSourceScheme = "Secure"
URL stringoptional
EmulateMediaType param.Field[string]optional

Body param

GotoOptions param.Field[SnapshotNewParamsVariant0GotoOptions]optional

Body param: Check options.

Referer stringoptional
ReferrerPolicy stringoptional
Timeout float64optional
maximum60000
WaitUntil SnapshotNewParamsVariant0GotoOptionsWaitUntilUnionoptional
One of the following:
SnapshotNewParamsVariant0GotoOptionsWaitUntilString
One of the following:
const SnapshotNewParamsVariant0GotoOptionsWaitUntilStringLoad SnapshotNewParamsVariant0GotoOptionsWaitUntilString = "load"
const SnapshotNewParamsVariant0GotoOptionsWaitUntilStringDomcontentloaded SnapshotNewParamsVariant0GotoOptionsWaitUntilString = "domcontentloaded"
const SnapshotNewParamsVariant0GotoOptionsWaitUntilStringNetworkidle0 SnapshotNewParamsVariant0GotoOptionsWaitUntilString = "networkidle0"
const SnapshotNewParamsVariant0GotoOptionsWaitUntilStringNetworkidle2 SnapshotNewParamsVariant0GotoOptionsWaitUntilString = "networkidle2"
SnapshotNewParamsVariant0GotoOptionsWaitUntilArray
One of the following:
const SnapshotNewParamsVariant0GotoOptionsWaitUntilArrayLoad SnapshotNewParamsVariant0GotoOptionsWaitUntilArray = "load"
const SnapshotNewParamsVariant0GotoOptionsWaitUntilArrayDomcontentloaded SnapshotNewParamsVariant0GotoOptionsWaitUntilArray = "domcontentloaded"
const SnapshotNewParamsVariant0GotoOptionsWaitUntilArrayNetworkidle0 SnapshotNewParamsVariant0GotoOptionsWaitUntilArray = "networkidle0"
const SnapshotNewParamsVariant0GotoOptionsWaitUntilArrayNetworkidle2 SnapshotNewParamsVariant0GotoOptionsWaitUntilArray = "networkidle2"
RejectRequestPattern param.Field[[]string]optional

Body param: Block undesired requests that match the provided regex patterns, eg. '/^.*.(css)'.

RejectResourceTypes param.Field[[]SnapshotNewParamsVariant0RejectResourceType]optional

Body param: Block undesired requests that match the provided resource types, eg. 'image' or 'script'.

const SnapshotNewParamsVariant0RejectResourceTypeDocument SnapshotNewParamsVariant0RejectResourceType = "document"
const SnapshotNewParamsVariant0RejectResourceTypeStylesheet SnapshotNewParamsVariant0RejectResourceType = "stylesheet"
const SnapshotNewParamsVariant0RejectResourceTypeImage SnapshotNewParamsVariant0RejectResourceType = "image"
const SnapshotNewParamsVariant0RejectResourceTypeMedia SnapshotNewParamsVariant0RejectResourceType = "media"
const SnapshotNewParamsVariant0RejectResourceTypeFont SnapshotNewParamsVariant0RejectResourceType = "font"
const SnapshotNewParamsVariant0RejectResourceTypeScript SnapshotNewParamsVariant0RejectResourceType = "script"
const SnapshotNewParamsVariant0RejectResourceTypeTexttrack SnapshotNewParamsVariant0RejectResourceType = "texttrack"
const SnapshotNewParamsVariant0RejectResourceTypeXHR SnapshotNewParamsVariant0RejectResourceType = "xhr"
const SnapshotNewParamsVariant0RejectResourceTypeFetch SnapshotNewParamsVariant0RejectResourceType = "fetch"
const SnapshotNewParamsVariant0RejectResourceTypePrefetch SnapshotNewParamsVariant0RejectResourceType = "prefetch"
const SnapshotNewParamsVariant0RejectResourceTypeEventsource SnapshotNewParamsVariant0RejectResourceType = "eventsource"
const SnapshotNewParamsVariant0RejectResourceTypeWebsocket SnapshotNewParamsVariant0RejectResourceType = "websocket"
const SnapshotNewParamsVariant0RejectResourceTypeManifest SnapshotNewParamsVariant0RejectResourceType = "manifest"
const SnapshotNewParamsVariant0RejectResourceTypeSignedexchange SnapshotNewParamsVariant0RejectResourceType = "signedexchange"
const SnapshotNewParamsVariant0RejectResourceTypePing SnapshotNewParamsVariant0RejectResourceType = "ping"
const SnapshotNewParamsVariant0RejectResourceTypeCspviolationreport SnapshotNewParamsVariant0RejectResourceType = "cspviolationreport"
const SnapshotNewParamsVariant0RejectResourceTypePreflight SnapshotNewParamsVariant0RejectResourceType = "preflight"
const SnapshotNewParamsVariant0RejectResourceTypeOther SnapshotNewParamsVariant0RejectResourceType = "other"
ScreenshotOptions param.Field[SnapshotNewParamsVariant0ScreenshotOptions]optional

Body param

CaptureBeyondViewport booloptional
Clip SnapshotNewParamsVariant0ScreenshotOptionsClipoptional
Height float64
Width float64
X float64
Y float64
Scale float64optional
FromSurface booloptional
FullPage booloptional
OmitBackground booloptional
OptimizeForSpeed booloptional
Quality float64optional
Type SnapshotNewParamsVariant0ScreenshotOptionsTypeoptional
One of the following:
const SnapshotNewParamsVariant0ScreenshotOptionsTypePNG SnapshotNewParamsVariant0ScreenshotOptionsType = "png"
const SnapshotNewParamsVariant0ScreenshotOptionsTypeJPEG SnapshotNewParamsVariant0ScreenshotOptionsType = "jpeg"
const SnapshotNewParamsVariant0ScreenshotOptionsTypeWebP SnapshotNewParamsVariant0ScreenshotOptionsType = "webp"
SetExtraHTTPHeaders param.Field[map[string, string]]optional

Body param

SetJavaScriptEnabled param.Field[bool]optional

Body param

UserAgent param.Field[string]optional

Body param

Viewport param.Field[SnapshotNewParamsVariant0Viewport]optional

Body param: Check options.

Height float64
Width float64
DeviceScaleFactor float64optional
HasTouch booloptional
IsLandscape booloptional
IsMobile booloptional
WaitForSelector param.Field[SnapshotNewParamsVariant0WaitForSelector]optional

Body param: Wait for the selector to appear in page. Check options.

Selector string
Hidden SnapshotNewParamsVariant0WaitForSelectorHiddenoptional
Timeout float64optional
maximum120000
Visible SnapshotNewParamsVariant0WaitForSelectorVisibleoptional
WaitForTimeout param.Field[float64]optional

Body param: Waits for a specified timeout before continuing.

maximum120000
ReturnsExpand Collapse
type SnapshotNewResponse struct{…}
Content string

HTML content.

Screenshot string

Base64 encoded image.

Get HTML content and screenshot.

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/browser_rendering"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  snapshot, err := client.BrowserRendering.Snapshot.New(context.TODO(), browser_rendering.SnapshotNewParams{
    AccountID: cloudflare.F("account_id"),
    Body: browser_rendering.SnapshotNewParamsBodyObject{
      URL: cloudflare.F("https://www.example.com/"),
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", snapshot.Content)
}
{
  "meta": {
    "status": 0,
    "title": "title"
  },
  "success": true,
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "result": {
    "content": "content",
    "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": {
    "content": "content",
    "screenshot": "screenshot"
  }
}
{
  "errors": [
    {
      "code": 2001,
      "message": "Rate limit exceeded"
    }
  ],
  "success": false
}