Skip to content
Start here

Get json.

client.BrowserRendering.Json.New(ctx, params) (*JsonNewResponse, error)
POST/accounts/{account_id}/browser-rendering/json

Gets json from a webpage from a provided URL or HTML. Pass prompt or schema in the body. Control page loading with gotoOptions and waitFor* options.

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 JsonNewParams
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[[]JsonNewParamsVariant0AddScriptTag]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[[]JsonNewParamsVariant0AddStyleTag]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[[]JsonNewParamsVariant0AllowResourceType]optional

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

const JsonNewParamsVariant0AllowResourceTypeDocument JsonNewParamsVariant0AllowResourceType = "document"
const JsonNewParamsVariant0AllowResourceTypeStylesheet JsonNewParamsVariant0AllowResourceType = "stylesheet"
const JsonNewParamsVariant0AllowResourceTypeImage JsonNewParamsVariant0AllowResourceType = "image"
const JsonNewParamsVariant0AllowResourceTypeMedia JsonNewParamsVariant0AllowResourceType = "media"
const JsonNewParamsVariant0AllowResourceTypeFont JsonNewParamsVariant0AllowResourceType = "font"
const JsonNewParamsVariant0AllowResourceTypeScript JsonNewParamsVariant0AllowResourceType = "script"
const JsonNewParamsVariant0AllowResourceTypeTexttrack JsonNewParamsVariant0AllowResourceType = "texttrack"
const JsonNewParamsVariant0AllowResourceTypeXHR JsonNewParamsVariant0AllowResourceType = "xhr"
const JsonNewParamsVariant0AllowResourceTypeFetch JsonNewParamsVariant0AllowResourceType = "fetch"
const JsonNewParamsVariant0AllowResourceTypePrefetch JsonNewParamsVariant0AllowResourceType = "prefetch"
const JsonNewParamsVariant0AllowResourceTypeEventsource JsonNewParamsVariant0AllowResourceType = "eventsource"
const JsonNewParamsVariant0AllowResourceTypeWebsocket JsonNewParamsVariant0AllowResourceType = "websocket"
const JsonNewParamsVariant0AllowResourceTypeManifest JsonNewParamsVariant0AllowResourceType = "manifest"
const JsonNewParamsVariant0AllowResourceTypeSignedexchange JsonNewParamsVariant0AllowResourceType = "signedexchange"
const JsonNewParamsVariant0AllowResourceTypePing JsonNewParamsVariant0AllowResourceType = "ping"
const JsonNewParamsVariant0AllowResourceTypeCspviolationreport JsonNewParamsVariant0AllowResourceType = "cspviolationreport"
const JsonNewParamsVariant0AllowResourceTypePreflight JsonNewParamsVariant0AllowResourceType = "preflight"
const JsonNewParamsVariant0AllowResourceTypeOther JsonNewParamsVariant0AllowResourceType = "other"
Authenticate param.Field[JsonNewParamsVariant0Authenticate]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[[]JsonNewParamsVariant0Cookie]optional

Body param: Check options.

Name string

Cookie name.

Value string
Domain stringoptional
Expires float64optional
HTTPOnly booloptional
PartitionKey stringoptional
Path stringoptional
Priority JsonNewParamsVariant0CookiesPriorityoptional
One of the following:
const JsonNewParamsVariant0CookiesPriorityLow JsonNewParamsVariant0CookiesPriority = "Low"
const JsonNewParamsVariant0CookiesPriorityMedium JsonNewParamsVariant0CookiesPriority = "Medium"
const JsonNewParamsVariant0CookiesPriorityHigh JsonNewParamsVariant0CookiesPriority = "High"
SameParty booloptional
SameSite JsonNewParamsVariant0CookiesSameSiteoptional
One of the following:
const JsonNewParamsVariant0CookiesSameSiteStrict JsonNewParamsVariant0CookiesSameSite = "Strict"
const JsonNewParamsVariant0CookiesSameSiteLax JsonNewParamsVariant0CookiesSameSite = "Lax"
const JsonNewParamsVariant0CookiesSameSiteNone JsonNewParamsVariant0CookiesSameSite = "None"
Secure booloptional
SourcePort float64optional
SourceScheme JsonNewParamsVariant0CookiesSourceSchemeoptional
One of the following:
const JsonNewParamsVariant0CookiesSourceSchemeUnset JsonNewParamsVariant0CookiesSourceScheme = "Unset"
const JsonNewParamsVariant0CookiesSourceSchemeNonSecure JsonNewParamsVariant0CookiesSourceScheme = "NonSecure"
const JsonNewParamsVariant0CookiesSourceSchemeSecure JsonNewParamsVariant0CookiesSourceScheme = "Secure"
URL stringoptional
CustomAI param.Field[[]JsonNewParamsVariant0CustomAI]optional

Body param: Optional list of custom AI models to use for the request. The models will be tried in the order provided, and in case a model returns an error, the next one will be used as fallback.

Authorization string

Authorization token for the AI model: Bearer <token>.

Model string

AI model to use for the request. Must be formed as <provider>/<model_name>, e.g. workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast.

EmulateMediaType param.Field[string]optional

Body param

GotoOptions param.Field[JsonNewParamsVariant0GotoOptions]optional

Body param: Check options.

Referer stringoptional
ReferrerPolicy stringoptional
Timeout float64optional
maximum60000
WaitUntil JsonNewParamsVariant0GotoOptionsWaitUntilUnionoptional
One of the following:
JsonNewParamsVariant0GotoOptionsWaitUntilString
One of the following:
const JsonNewParamsVariant0GotoOptionsWaitUntilStringLoad JsonNewParamsVariant0GotoOptionsWaitUntilString = "load"
const JsonNewParamsVariant0GotoOptionsWaitUntilStringDomcontentloaded JsonNewParamsVariant0GotoOptionsWaitUntilString = "domcontentloaded"
const JsonNewParamsVariant0GotoOptionsWaitUntilStringNetworkidle0 JsonNewParamsVariant0GotoOptionsWaitUntilString = "networkidle0"
const JsonNewParamsVariant0GotoOptionsWaitUntilStringNetworkidle2 JsonNewParamsVariant0GotoOptionsWaitUntilString = "networkidle2"
JsonNewParamsVariant0GotoOptionsWaitUntilArray
One of the following:
const JsonNewParamsVariant0GotoOptionsWaitUntilArrayLoad JsonNewParamsVariant0GotoOptionsWaitUntilArray = "load"
const JsonNewParamsVariant0GotoOptionsWaitUntilArrayDomcontentloaded JsonNewParamsVariant0GotoOptionsWaitUntilArray = "domcontentloaded"
const JsonNewParamsVariant0GotoOptionsWaitUntilArrayNetworkidle0 JsonNewParamsVariant0GotoOptionsWaitUntilArray = "networkidle0"
const JsonNewParamsVariant0GotoOptionsWaitUntilArrayNetworkidle2 JsonNewParamsVariant0GotoOptionsWaitUntilArray = "networkidle2"
Prompt param.Field[string]optional

Body param

RejectRequestPattern param.Field[[]string]optional

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

RejectResourceTypes param.Field[[]JsonNewParamsVariant0RejectResourceType]optional

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

const JsonNewParamsVariant0RejectResourceTypeDocument JsonNewParamsVariant0RejectResourceType = "document"
const JsonNewParamsVariant0RejectResourceTypeStylesheet JsonNewParamsVariant0RejectResourceType = "stylesheet"
const JsonNewParamsVariant0RejectResourceTypeImage JsonNewParamsVariant0RejectResourceType = "image"
const JsonNewParamsVariant0RejectResourceTypeMedia JsonNewParamsVariant0RejectResourceType = "media"
const JsonNewParamsVariant0RejectResourceTypeFont JsonNewParamsVariant0RejectResourceType = "font"
const JsonNewParamsVariant0RejectResourceTypeScript JsonNewParamsVariant0RejectResourceType = "script"
const JsonNewParamsVariant0RejectResourceTypeTexttrack JsonNewParamsVariant0RejectResourceType = "texttrack"
const JsonNewParamsVariant0RejectResourceTypeXHR JsonNewParamsVariant0RejectResourceType = "xhr"
const JsonNewParamsVariant0RejectResourceTypeFetch JsonNewParamsVariant0RejectResourceType = "fetch"
const JsonNewParamsVariant0RejectResourceTypePrefetch JsonNewParamsVariant0RejectResourceType = "prefetch"
const JsonNewParamsVariant0RejectResourceTypeEventsource JsonNewParamsVariant0RejectResourceType = "eventsource"
const JsonNewParamsVariant0RejectResourceTypeWebsocket JsonNewParamsVariant0RejectResourceType = "websocket"
const JsonNewParamsVariant0RejectResourceTypeManifest JsonNewParamsVariant0RejectResourceType = "manifest"
const JsonNewParamsVariant0RejectResourceTypeSignedexchange JsonNewParamsVariant0RejectResourceType = "signedexchange"
const JsonNewParamsVariant0RejectResourceTypePing JsonNewParamsVariant0RejectResourceType = "ping"
const JsonNewParamsVariant0RejectResourceTypeCspviolationreport JsonNewParamsVariant0RejectResourceType = "cspviolationreport"
const JsonNewParamsVariant0RejectResourceTypePreflight JsonNewParamsVariant0RejectResourceType = "preflight"
const JsonNewParamsVariant0RejectResourceTypeOther JsonNewParamsVariant0RejectResourceType = "other"
ResponseFormat param.Field[JsonNewParamsVariant0ResponseFormat]optional

Body param

Type string
JsonSchema map[string, JsonNewParamsVariant0ResponseFormatJsonSchemaUnion]optional

Schema for the response format. More information here: https://developers.cloudflare.com/workers-ai/json-mode/.

One of the following:
UnionString
UnionFloat
UnionBool
JsonNewParamsVariant0ResponseFormatJsonSchemaArray
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[JsonNewParamsVariant0Viewport]optional

Body param: Check options.

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

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

Selector string
Hidden JsonNewParamsVariant0WaitForSelectorHiddenoptional
Timeout float64optional
maximum120000
Visible JsonNewParamsVariant0WaitForSelectorVisibleoptional
WaitForTimeout param.Field[float64]optional

Body param: Waits for a specified timeout before continuing.

maximum120000
ReturnsExpand Collapse
type JsonNewResponse map[string, unknown]

Get json.

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"),
  )
  json, err := client.BrowserRendering.Json.New(context.TODO(), browser_rendering.JsonNewParams{
    AccountID: cloudflare.F("account_id"),
    Body: browser_rendering.JsonNewParamsBodyObject{
      URL: cloudflare.F("https://www.example.com/"),
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", json)
}
{
  "result": {
    "foo": {}
  },
  "success": true,
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ]
}
{
  "errors": [
    {
      "code": 2001,
      "message": "Rate limit exceeded"
    }
  ],
  "success": false
}
Returns Examples
{
  "result": {
    "foo": {}
  },
  "success": true,
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ]
}
{
  "errors": [
    {
      "code": 2001,
      "message": "Rate limit exceeded"
    }
  ],
  "success": false
}