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[[]ScrapeNewParamsElement]

Body param

Selector string
CacheTTL param.Field[float64]Optional

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

maximum86400
minimum0
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[[]ScrapeNewParamsAddScriptTag]Optional

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

ID stringOptional
Content stringOptional
Type stringOptional
URL stringOptional
formaturi
AddStyleTag param.Field[[]ScrapeNewParamsAddStyleTag]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
formaturi
AllowRequestPattern param.Field[[]string]Optional

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

AllowResourceTypes param.Field[[]ScrapeNewParamsAllowResourceType]Optional

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

const ScrapeNewParamsAllowResourceTypeDocument ScrapeNewParamsAllowResourceType = "document"
const ScrapeNewParamsAllowResourceTypeStylesheet ScrapeNewParamsAllowResourceType = "stylesheet"
const ScrapeNewParamsAllowResourceTypeImage ScrapeNewParamsAllowResourceType = "image"
const ScrapeNewParamsAllowResourceTypeMedia ScrapeNewParamsAllowResourceType = "media"
const ScrapeNewParamsAllowResourceTypeFont ScrapeNewParamsAllowResourceType = "font"
const ScrapeNewParamsAllowResourceTypeScript ScrapeNewParamsAllowResourceType = "script"
const ScrapeNewParamsAllowResourceTypeTexttrack ScrapeNewParamsAllowResourceType = "texttrack"
const ScrapeNewParamsAllowResourceTypeXHR ScrapeNewParamsAllowResourceType = "xhr"
const ScrapeNewParamsAllowResourceTypeFetch ScrapeNewParamsAllowResourceType = "fetch"
const ScrapeNewParamsAllowResourceTypePrefetch ScrapeNewParamsAllowResourceType = "prefetch"
const ScrapeNewParamsAllowResourceTypeEventsource ScrapeNewParamsAllowResourceType = "eventsource"
const ScrapeNewParamsAllowResourceTypeWebsocket ScrapeNewParamsAllowResourceType = "websocket"
const ScrapeNewParamsAllowResourceTypeManifest ScrapeNewParamsAllowResourceType = "manifest"
const ScrapeNewParamsAllowResourceTypeSignedexchange ScrapeNewParamsAllowResourceType = "signedexchange"
const ScrapeNewParamsAllowResourceTypePing ScrapeNewParamsAllowResourceType = "ping"
const ScrapeNewParamsAllowResourceTypeCspviolationreport ScrapeNewParamsAllowResourceType = "cspviolationreport"
const ScrapeNewParamsAllowResourceTypePreflight ScrapeNewParamsAllowResourceType = "preflight"
const ScrapeNewParamsAllowResourceTypeOther ScrapeNewParamsAllowResourceType = "other"
Authenticate param.Field[ScrapeNewParamsAuthenticate]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[[]ScrapeNewParamsCookie]Optional

Body param: Check options.

Name string

Cookie name.

Value string
Domain stringOptional
Expires float64Optional
HTTPOnly boolOptional
PartitionKey stringOptional
Path stringOptional
Priority ScrapeNewParamsCookiesPriorityOptional
One of the following:
const ScrapeNewParamsCookiesPriorityLow ScrapeNewParamsCookiesPriority = "Low"
const ScrapeNewParamsCookiesPriorityMedium ScrapeNewParamsCookiesPriority = "Medium"
const ScrapeNewParamsCookiesPriorityHigh ScrapeNewParamsCookiesPriority = "High"
SameParty boolOptional
SameSite ScrapeNewParamsCookiesSameSiteOptional
One of the following:
const ScrapeNewParamsCookiesSameSiteStrict ScrapeNewParamsCookiesSameSite = "Strict"
const ScrapeNewParamsCookiesSameSiteLax ScrapeNewParamsCookiesSameSite = "Lax"
const ScrapeNewParamsCookiesSameSiteNone ScrapeNewParamsCookiesSameSite = "None"
Secure boolOptional
SourcePort float64Optional
SourceScheme ScrapeNewParamsCookiesSourceSchemeOptional
One of the following:
const ScrapeNewParamsCookiesSourceSchemeUnset ScrapeNewParamsCookiesSourceScheme = "Unset"
const ScrapeNewParamsCookiesSourceSchemeNonSecure ScrapeNewParamsCookiesSourceScheme = "NonSecure"
const ScrapeNewParamsCookiesSourceSchemeSecure ScrapeNewParamsCookiesSourceScheme = "Secure"
URL stringOptional
EmulateMediaType param.Field[string]Optional

Body param

GotoOptions param.Field[ScrapeNewParamsGotoOptions]Optional

Body param: Check options.

Referer stringOptional
ReferrerPolicy stringOptional
Timeout float64Optional
maximum60000
WaitUntil ScrapeNewParamsGotoOptionsWaitUntilUnionOptional
One of the following:
type ScrapeNewParamsGotoOptionsWaitUntilString string
One of the following:
const ScrapeNewParamsGotoOptionsWaitUntilStringLoad ScrapeNewParamsGotoOptionsWaitUntilString = "load"
const ScrapeNewParamsGotoOptionsWaitUntilStringDomcontentloaded ScrapeNewParamsGotoOptionsWaitUntilString = "domcontentloaded"
const ScrapeNewParamsGotoOptionsWaitUntilStringNetworkidle0 ScrapeNewParamsGotoOptionsWaitUntilString = "networkidle0"
const ScrapeNewParamsGotoOptionsWaitUntilStringNetworkidle2 ScrapeNewParamsGotoOptionsWaitUntilString = "networkidle2"
type ScrapeNewParamsGotoOptionsWaitUntilArray []ScrapeNewParamsGotoOptionsWaitUntilArray
One of the following:
const ScrapeNewParamsGotoOptionsWaitUntilArrayItemLoad ScrapeNewParamsGotoOptionsWaitUntilArrayItem = "load"
const ScrapeNewParamsGotoOptionsWaitUntilArrayItemDomcontentloaded ScrapeNewParamsGotoOptionsWaitUntilArrayItem = "domcontentloaded"
const ScrapeNewParamsGotoOptionsWaitUntilArrayItemNetworkidle0 ScrapeNewParamsGotoOptionsWaitUntilArrayItem = "networkidle0"
const ScrapeNewParamsGotoOptionsWaitUntilArrayItemNetworkidle2 ScrapeNewParamsGotoOptionsWaitUntilArrayItem = "networkidle2"
HTML param.Field[string]Optional

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

minLength1
RejectRequestPattern param.Field[[]string]Optional

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

RejectResourceTypes param.Field[[]ScrapeNewParamsRejectResourceType]Optional

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

const ScrapeNewParamsRejectResourceTypeDocument ScrapeNewParamsRejectResourceType = "document"
const ScrapeNewParamsRejectResourceTypeStylesheet ScrapeNewParamsRejectResourceType = "stylesheet"
const ScrapeNewParamsRejectResourceTypeImage ScrapeNewParamsRejectResourceType = "image"
const ScrapeNewParamsRejectResourceTypeMedia ScrapeNewParamsRejectResourceType = "media"
const ScrapeNewParamsRejectResourceTypeFont ScrapeNewParamsRejectResourceType = "font"
const ScrapeNewParamsRejectResourceTypeScript ScrapeNewParamsRejectResourceType = "script"
const ScrapeNewParamsRejectResourceTypeTexttrack ScrapeNewParamsRejectResourceType = "texttrack"
const ScrapeNewParamsRejectResourceTypeXHR ScrapeNewParamsRejectResourceType = "xhr"
const ScrapeNewParamsRejectResourceTypeFetch ScrapeNewParamsRejectResourceType = "fetch"
const ScrapeNewParamsRejectResourceTypePrefetch ScrapeNewParamsRejectResourceType = "prefetch"
const ScrapeNewParamsRejectResourceTypeEventsource ScrapeNewParamsRejectResourceType = "eventsource"
const ScrapeNewParamsRejectResourceTypeWebsocket ScrapeNewParamsRejectResourceType = "websocket"
const ScrapeNewParamsRejectResourceTypeManifest ScrapeNewParamsRejectResourceType = "manifest"
const ScrapeNewParamsRejectResourceTypeSignedexchange ScrapeNewParamsRejectResourceType = "signedexchange"
const ScrapeNewParamsRejectResourceTypePing ScrapeNewParamsRejectResourceType = "ping"
const ScrapeNewParamsRejectResourceTypeCspviolationreport ScrapeNewParamsRejectResourceType = "cspviolationreport"
const ScrapeNewParamsRejectResourceTypePreflight ScrapeNewParamsRejectResourceType = "preflight"
const ScrapeNewParamsRejectResourceTypeOther ScrapeNewParamsRejectResourceType = "other"
SetExtraHTTPHeaders param.Field[map[string, string]]Optional

Body param

SetJavaScriptEnabled param.Field[bool]Optional

Body param

URL param.Field[string]Optional

Body param: URL to navigate to, eg. https://example.com.

formaturi
UserAgent param.Field[string]Optional

Body param

Viewport param.Field[ScrapeNewParamsViewport]Optional

Body param: Check options.

Height float64
Width float64
DeviceScaleFactor float64Optional
HasTouch boolOptional
IsLandscape boolOptional
IsMobile boolOptional
WaitForSelector param.Field[ScrapeNewParamsWaitForSelector]Optional

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

Selector string
Hidden ScrapeNewParamsWaitForSelectorHiddenOptional
Timeout float64Optional
maximum120000
Visible ScrapeNewParamsWaitForSelectorVisibleOptional
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"),
    Elements: cloudflare.F([]browser_rendering.ScrapeNewParamsElement{browser_rendering.ScrapeNewParamsElement{
      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
}