Skip to content
Start here

Scrape elements.

client.BrowserRendering.Scrape.New(ctx, params) (*[]ScrapeNewResponse, error)
POST/accounts/{account_id}/browser-rendering/scrape

Get meta attributes like height, width, text and others of selected elements.

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 ScrapeNewParams
AccountID param.Field[string]

Path param: Account ID.

Elements param.Field[[]ScrapeNewParamsVariant0Element]

Body param

Selector string
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[[]ScrapeNewParamsVariant0AddScriptTag]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[[]ScrapeNewParamsVariant0AddStyleTag]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[[]ScrapeNewParamsVariant0AllowResourceType]optional

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

const ScrapeNewParamsVariant0AllowResourceTypeDocument ScrapeNewParamsVariant0AllowResourceType = "document"
const ScrapeNewParamsVariant0AllowResourceTypeStylesheet ScrapeNewParamsVariant0AllowResourceType = "stylesheet"
const ScrapeNewParamsVariant0AllowResourceTypeImage ScrapeNewParamsVariant0AllowResourceType = "image"
const ScrapeNewParamsVariant0AllowResourceTypeMedia ScrapeNewParamsVariant0AllowResourceType = "media"
const ScrapeNewParamsVariant0AllowResourceTypeFont ScrapeNewParamsVariant0AllowResourceType = "font"
const ScrapeNewParamsVariant0AllowResourceTypeScript ScrapeNewParamsVariant0AllowResourceType = "script"
const ScrapeNewParamsVariant0AllowResourceTypeTexttrack ScrapeNewParamsVariant0AllowResourceType = "texttrack"
const ScrapeNewParamsVariant0AllowResourceTypeXHR ScrapeNewParamsVariant0AllowResourceType = "xhr"
const ScrapeNewParamsVariant0AllowResourceTypeFetch ScrapeNewParamsVariant0AllowResourceType = "fetch"
const ScrapeNewParamsVariant0AllowResourceTypePrefetch ScrapeNewParamsVariant0AllowResourceType = "prefetch"
const ScrapeNewParamsVariant0AllowResourceTypeEventsource ScrapeNewParamsVariant0AllowResourceType = "eventsource"
const ScrapeNewParamsVariant0AllowResourceTypeWebsocket ScrapeNewParamsVariant0AllowResourceType = "websocket"
const ScrapeNewParamsVariant0AllowResourceTypeManifest ScrapeNewParamsVariant0AllowResourceType = "manifest"
const ScrapeNewParamsVariant0AllowResourceTypeSignedexchange ScrapeNewParamsVariant0AllowResourceType = "signedexchange"
const ScrapeNewParamsVariant0AllowResourceTypePing ScrapeNewParamsVariant0AllowResourceType = "ping"
const ScrapeNewParamsVariant0AllowResourceTypeCspviolationreport ScrapeNewParamsVariant0AllowResourceType = "cspviolationreport"
const ScrapeNewParamsVariant0AllowResourceTypePreflight ScrapeNewParamsVariant0AllowResourceType = "preflight"
const ScrapeNewParamsVariant0AllowResourceTypeOther ScrapeNewParamsVariant0AllowResourceType = "other"
Authenticate param.Field[ScrapeNewParamsVariant0Authenticate]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[[]ScrapeNewParamsVariant0Cookie]optional

Body param: Check options.

Name string

Cookie name.

Value string
Domain stringoptional
Expires float64optional
HTTPOnly booloptional
PartitionKey stringoptional
Path stringoptional
Priority ScrapeNewParamsVariant0CookiesPriorityoptional
One of the following:
const ScrapeNewParamsVariant0CookiesPriorityLow ScrapeNewParamsVariant0CookiesPriority = "Low"
const ScrapeNewParamsVariant0CookiesPriorityMedium ScrapeNewParamsVariant0CookiesPriority = "Medium"
const ScrapeNewParamsVariant0CookiesPriorityHigh ScrapeNewParamsVariant0CookiesPriority = "High"
SameParty booloptional
SameSite ScrapeNewParamsVariant0CookiesSameSiteoptional
One of the following:
const ScrapeNewParamsVariant0CookiesSameSiteStrict ScrapeNewParamsVariant0CookiesSameSite = "Strict"
const ScrapeNewParamsVariant0CookiesSameSiteLax ScrapeNewParamsVariant0CookiesSameSite = "Lax"
const ScrapeNewParamsVariant0CookiesSameSiteNone ScrapeNewParamsVariant0CookiesSameSite = "None"
Secure booloptional
SourcePort float64optional
SourceScheme ScrapeNewParamsVariant0CookiesSourceSchemeoptional
One of the following:
const ScrapeNewParamsVariant0CookiesSourceSchemeUnset ScrapeNewParamsVariant0CookiesSourceScheme = "Unset"
const ScrapeNewParamsVariant0CookiesSourceSchemeNonSecure ScrapeNewParamsVariant0CookiesSourceScheme = "NonSecure"
const ScrapeNewParamsVariant0CookiesSourceSchemeSecure ScrapeNewParamsVariant0CookiesSourceScheme = "Secure"
URL stringoptional
EmulateMediaType param.Field[string]optional

Body param

GotoOptions param.Field[ScrapeNewParamsVariant0GotoOptions]optional

Body param: Check options.

Referer stringoptional
ReferrerPolicy stringoptional
Timeout float64optional
maximum60000
WaitUntil ScrapeNewParamsVariant0GotoOptionsWaitUntilUnionoptional
One of the following:
ScrapeNewParamsVariant0GotoOptionsWaitUntilString
One of the following:
const ScrapeNewParamsVariant0GotoOptionsWaitUntilStringLoad ScrapeNewParamsVariant0GotoOptionsWaitUntilString = "load"
const ScrapeNewParamsVariant0GotoOptionsWaitUntilStringDomcontentloaded ScrapeNewParamsVariant0GotoOptionsWaitUntilString = "domcontentloaded"
const ScrapeNewParamsVariant0GotoOptionsWaitUntilStringNetworkidle0 ScrapeNewParamsVariant0GotoOptionsWaitUntilString = "networkidle0"
const ScrapeNewParamsVariant0GotoOptionsWaitUntilStringNetworkidle2 ScrapeNewParamsVariant0GotoOptionsWaitUntilString = "networkidle2"
ScrapeNewParamsVariant0GotoOptionsWaitUntilArray
One of the following:
const ScrapeNewParamsVariant0GotoOptionsWaitUntilArrayLoad ScrapeNewParamsVariant0GotoOptionsWaitUntilArray = "load"
const ScrapeNewParamsVariant0GotoOptionsWaitUntilArrayDomcontentloaded ScrapeNewParamsVariant0GotoOptionsWaitUntilArray = "domcontentloaded"
const ScrapeNewParamsVariant0GotoOptionsWaitUntilArrayNetworkidle0 ScrapeNewParamsVariant0GotoOptionsWaitUntilArray = "networkidle0"
const ScrapeNewParamsVariant0GotoOptionsWaitUntilArrayNetworkidle2 ScrapeNewParamsVariant0GotoOptionsWaitUntilArray = "networkidle2"
RejectRequestPattern param.Field[[]string]optional

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

RejectResourceTypes param.Field[[]ScrapeNewParamsVariant0RejectResourceType]optional

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

const ScrapeNewParamsVariant0RejectResourceTypeDocument ScrapeNewParamsVariant0RejectResourceType = "document"
const ScrapeNewParamsVariant0RejectResourceTypeStylesheet ScrapeNewParamsVariant0RejectResourceType = "stylesheet"
const ScrapeNewParamsVariant0RejectResourceTypeImage ScrapeNewParamsVariant0RejectResourceType = "image"
const ScrapeNewParamsVariant0RejectResourceTypeMedia ScrapeNewParamsVariant0RejectResourceType = "media"
const ScrapeNewParamsVariant0RejectResourceTypeFont ScrapeNewParamsVariant0RejectResourceType = "font"
const ScrapeNewParamsVariant0RejectResourceTypeScript ScrapeNewParamsVariant0RejectResourceType = "script"
const ScrapeNewParamsVariant0RejectResourceTypeTexttrack ScrapeNewParamsVariant0RejectResourceType = "texttrack"
const ScrapeNewParamsVariant0RejectResourceTypeXHR ScrapeNewParamsVariant0RejectResourceType = "xhr"
const ScrapeNewParamsVariant0RejectResourceTypeFetch ScrapeNewParamsVariant0RejectResourceType = "fetch"
const ScrapeNewParamsVariant0RejectResourceTypePrefetch ScrapeNewParamsVariant0RejectResourceType = "prefetch"
const ScrapeNewParamsVariant0RejectResourceTypeEventsource ScrapeNewParamsVariant0RejectResourceType = "eventsource"
const ScrapeNewParamsVariant0RejectResourceTypeWebsocket ScrapeNewParamsVariant0RejectResourceType = "websocket"
const ScrapeNewParamsVariant0RejectResourceTypeManifest ScrapeNewParamsVariant0RejectResourceType = "manifest"
const ScrapeNewParamsVariant0RejectResourceTypeSignedexchange ScrapeNewParamsVariant0RejectResourceType = "signedexchange"
const ScrapeNewParamsVariant0RejectResourceTypePing ScrapeNewParamsVariant0RejectResourceType = "ping"
const ScrapeNewParamsVariant0RejectResourceTypeCspviolationreport ScrapeNewParamsVariant0RejectResourceType = "cspviolationreport"
const ScrapeNewParamsVariant0RejectResourceTypePreflight ScrapeNewParamsVariant0RejectResourceType = "preflight"
const ScrapeNewParamsVariant0RejectResourceTypeOther ScrapeNewParamsVariant0RejectResourceType = "other"
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[ScrapeNewParamsVariant0Viewport]optional

Body param: Check options.

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

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

Selector string
Hidden ScrapeNewParamsVariant0WaitForSelectorHiddenoptional
Timeout float64optional
maximum120000
Visible ScrapeNewParamsVariant0WaitForSelectorVisibleoptional
WaitForTimeout param.Field[float64]optional

Body param: Waits for a specified timeout before continuing.

maximum120000
ReturnsExpand Collapse
type ScrapeNewResponseEnvelopeResult []ScrapeNewResponse
Results ScrapeNewResponseResults
Attributes []ScrapeNewResponseResultsAttribute
Name string

Attribute name.

Value string

Attribute value.

Height float64

Element height.

HTML string

HTML content.

Left float64

Element left.

Text string

Text content.

Top float64

Element top.

Width float64

Element width.

Selector string

Selector.

Scrape elements.

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"),
  )
  scrapes, err := client.BrowserRendering.Scrape.New(context.TODO(), browser_rendering.ScrapeNewParams{
    AccountID: cloudflare.F("account_id"),
    Body: browser_rendering.ScrapeNewParamsBodyObject{
      Elements: cloudflare.F([]browser_rendering.ScrapeNewParamsBodyObjectElement{browser_rendering.ScrapeNewParamsBodyObjectElement{
        Selector: cloudflare.F("h1"),
      }}),
      URL: cloudflare.F("https://www.example.com/"),
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", scrapes)
}
{
  "result": [
    {
      "results": {
        "attributes": [
          {
            "name": "name",
            "value": "value"
          }
        ],
        "height": 0,
        "html": "html",
        "left": 0,
        "text": "text",
        "top": 0,
        "width": 0
      },
      "selector": "selector"
    }
  ],
  "success": true,
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ]
}
{
  "errors": [
    {
      "code": 2001,
      "message": "Rate limit exceeded"
    }
  ],
  "success": false
}
Returns Examples
{
  "result": [
    {
      "results": {
        "attributes": [
          {
            "name": "name",
            "value": "value"
          }
        ],
        "height": 0,
        "html": "html",
        "left": 0,
        "text": "text",
        "top": 0,
        "width": 0
      },
      "selector": "selector"
    }
  ],
  "success": true,
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ]
}
{
  "errors": [
    {
      "code": 2001,
      "message": "Rate limit exceeded"
    }
  ],
  "success": false
}