Skip to content
Start here

Restore Zaraz historical configuration by ID

client.zaraz.history.update(HistoryUpdateParams { zone_id, body } params, RequestOptionsoptions?): Configuration { dataLayer, debugKey, settings, 7 more }
PUT/zones/{zone_id}/settings/zaraz/history

Restores a historical published Zaraz configuration by ID for a zone.

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)
Zaraz EditZaraz Admin
ParametersExpand Collapse
params: HistoryUpdateParams { zone_id, body }
zone_id: string

Path param: Identifier.

maxLength32
body: number

Body param: ID of the Zaraz configuration to restore.

minimum1
ReturnsExpand Collapse
Configuration { dataLayer, debugKey, settings, 7 more }

Zaraz configuration.

dataLayer: boolean

Data layer compatibility mode enabled.

debugKey: string

The key for Zaraz debug mode.

settings: Settings { autoInjectScript, contextEnricher, cookieDomain, 11 more }

General Zaraz settings.

autoInjectScript: boolean

Automatic injection of Zaraz scripts enabled.

contextEnricher?: ContextEnricher { escapedWorkerName, workerTag }

Details of the worker that receives and edits Zaraz Context object.

escapedWorkerName: string
workerTag: string
cookieDomain?: string

The domain Zaraz will use for writing and reading its cookies.

ecommerce?: boolean

Ecommerce API enabled.

eventsApiPath?: string

Custom endpoint for server-side track events.

hideExternalReferer?: boolean

Hiding external referrer URL enabled.

hideIPAddress?: boolean

Trimming IP address enabled.

hideQueryParams?: boolean

Removing URL query params enabled.

hideUserAgent?: boolean

Removing sensitive data from User Agent string enabled.

initPath?: string

Custom endpoint for Zaraz init script.

injectIframes?: boolean

Injection of Zaraz scripts into iframes enabled.

mcRootPath?: string

Custom path for Managed Components server functionalities.

scriptPath?: string

Custom endpoint for Zaraz main script.

trackPath?: string

Custom endpoint for Zaraz tracking requests.

tools: Record<string, ZarazManagedComponent { blockingTriggers, component, defaultFields, 10 more } | Worker { blockingTriggers, component, defaultFields, 11 more } >

Tools set up under Zaraz configuration, where key is the alpha-numeric tool ID and value is the tool configuration object.

One of the following:
ZarazManagedComponent { blockingTriggers, component, defaultFields, 10 more }
blockingTriggers: Array<string>

List of blocking trigger IDs.

component: string

Tool's internal name.

defaultFields: Record<string, string | boolean>

Default fields for tool's actions.

One of the following:
string
boolean
enabled: boolean

Whether tool is enabled.

name: string

Tool's name defined by the user.

permissions: Array<string>

List of permissions granted to the component.

settings: Record<string, string | boolean>

Tool's settings.

One of the following:
string
boolean
type: "component"
actions?: Record<string, NeoEvent { actionType, blockingTriggers, data, firingTriggers } >

Actions configured on a tool. Either this or neoEvents field is required.

actionType: string

Tool event type.

blockingTriggers: Array<string>

List of blocking triggers IDs.

data: unknown

Event payload.

firingTriggers: Array<string>

List of firing triggers IDs.

defaultPurpose?: string

Default consent purpose ID.

neoEvents?: Array<NeoEvent { actionType, blockingTriggers, data, firingTriggers } >

DEPRECATED - List of actions configured on a tool. Either this or actions field is required. If both are present, actions field will take precedence.

actionType: string

Tool event type.

blockingTriggers: Array<string>

List of blocking triggers IDs.

data: unknown

Event payload.

firingTriggers: Array<string>

List of firing triggers IDs.

vendorName?: string

Vendor name for TCF compliant consent modal, required for Custom Managed Components and Custom HTML tool with a defaultPurpose assigned.

vendorPolicyUrl?: string

Vendor's Privacy Policy URL for TCF compliant consent modal, required for Custom Managed Components and Custom HTML tool with a defaultPurpose assigned.

Worker { blockingTriggers, component, defaultFields, 11 more }
blockingTriggers: Array<string>

List of blocking trigger IDs.

component: string

Tool's internal name.

defaultFields: Record<string, string | boolean>

Default fields for tool's actions.

One of the following:
string
boolean
enabled: boolean

Whether tool is enabled.

name: string

Tool's name defined by the user.

permissions: Array<string>

List of permissions granted to the component.

settings: Record<string, string | boolean>

Tool's settings.

One of the following:
string
boolean
type: "custom-mc"
worker: Worker { escapedWorkerName, workerTag }

Cloudflare worker that acts as a managed component.

escapedWorkerName: string
workerTag: string
actions?: Record<string, NeoEvent { actionType, blockingTriggers, data, firingTriggers } >

Actions configured on a tool. Either this or neoEvents field is required.

actionType: string

Tool event type.

blockingTriggers: Array<string>

List of blocking triggers IDs.

data: unknown

Event payload.

firingTriggers: Array<string>

List of firing triggers IDs.

defaultPurpose?: string

Default consent purpose ID.

neoEvents?: Array<NeoEvent { actionType, blockingTriggers, data, firingTriggers } >

DEPRECATED - List of actions configured on a tool. Either this or actions field is required. If both are present, actions field will take precedence.

actionType: string

Tool event type.

blockingTriggers: Array<string>

List of blocking triggers IDs.

data: unknown

Event payload.

firingTriggers: Array<string>

List of firing triggers IDs.

vendorName?: string

Vendor name for TCF compliant consent modal, required for Custom Managed Components and Custom HTML tool with a defaultPurpose assigned.

vendorPolicyUrl?: string

Vendor's Privacy Policy URL for TCF compliant consent modal, required for Custom Managed Components and Custom HTML tool with a defaultPurpose assigned.

triggers: Record<string, Triggers>

Triggers set up under Zaraz configuration, where key is the trigger alpha-numeric ID and value is the trigger configuration.

excludeRules: Array<ZarazLoadRule { id, match, op, value } | ZarazClickListenerRule { id, action, settings } | ZarazTimerRule { id, action, settings } | 4 more>

Rules defining when the trigger is not fired.

One of the following:
ZarazLoadRule { id, match, op, value }
id: string
match: string
op: "CONTAINS" | "EQUALS" | "STARTS_WITH" | 7 more
One of the following:
"CONTAINS"
"EQUALS"
"STARTS_WITH"
"ENDS_WITH"
"MATCH_REGEX"
"NOT_MATCH_REGEX"
"GREATER_THAN"
"GREATER_THAN_OR_EQUAL"
"LESS_THAN"
"LESS_THAN_OR_EQUAL"
value: string
ZarazClickListenerRule { id, action, settings }
id: string
action: "clickListener"
settings: Settings { selector, type, waitForTags }
selector: string
type: "xpath" | "css"
One of the following:
"xpath"
"css"
waitForTags: number
minimum0
ZarazTimerRule { id, action, settings }
id: string
action: "timer"
settings: Settings { interval, limit }
interval: number
minimum50
limit: number
minimum0
ZarazFormSubmissionRule { id, action, settings }
id: string
action: "formSubmission"
settings: Settings { selector, validate }
selector: string
validate: boolean
ZarazVariableMatchRule { id, action, settings }
id: string
action: "variableMatch"
settings: Settings { match, variable }
match: string
variable: string
ZarazScrollDepthRule { id, action, settings }
id: string
action: "scrollDepth"
settings: Settings { positions }
positions: string
ZarazElementVisibilityRule { id, action, settings }
id: string
action: "elementVisibility"
settings: Settings { selector }
selector: string
loadRules: Array<ZarazLoadRule { id, match, op, value } | ZarazClickListenerRule { id, action, settings } | ZarazTimerRule { id, action, settings } | 4 more>

Rules defining when the trigger is fired.

One of the following:
ZarazLoadRule { id, match, op, value }
id: string
match: string
op: "CONTAINS" | "EQUALS" | "STARTS_WITH" | 7 more
One of the following:
"CONTAINS"
"EQUALS"
"STARTS_WITH"
"ENDS_WITH"
"MATCH_REGEX"
"NOT_MATCH_REGEX"
"GREATER_THAN"
"GREATER_THAN_OR_EQUAL"
"LESS_THAN"
"LESS_THAN_OR_EQUAL"
value: string
ZarazClickListenerRule { id, action, settings }
id: string
action: "clickListener"
settings: Settings { selector, type, waitForTags }
selector: string
type: "xpath" | "css"
One of the following:
"xpath"
"css"
waitForTags: number
minimum0
ZarazTimerRule { id, action, settings }
id: string
action: "timer"
settings: Settings { interval, limit }
interval: number
minimum50
limit: number
minimum0
ZarazFormSubmissionRule { id, action, settings }
id: string
action: "formSubmission"
settings: Settings { selector, validate }
selector: string
validate: boolean
ZarazVariableMatchRule { id, action, settings }
id: string
action: "variableMatch"
settings: Settings { match, variable }
match: string
variable: string
ZarazScrollDepthRule { id, action, settings }
id: string
action: "scrollDepth"
settings: Settings { positions }
positions: string
ZarazElementVisibilityRule { id, action, settings }
id: string
action: "elementVisibility"
settings: Settings { selector }
selector: string
name: string

Trigger name.

description?: string

Trigger description.

system?: "pageload"
variables: Record<string, ZarazStringVariable { name, type, value } | ZarazSecretVariable { name, type, value } | ZarazWorkerVariable { name, type, value } >

Variables set up under Zaraz configuration, where key is the variable alpha-numeric ID and value is the variable configuration. Values of variables of type secret are not included.

One of the following:
ZarazStringVariable { name, type, value }
name: string
type: "string"
value: string
ZarazSecretVariable { name, type, value }
name: string
type: "secret"
value: string
ZarazWorkerVariable { name, type, value }
name: string
type: "worker"
value: Value { escapedWorkerName, workerTag }
escapedWorkerName: string
workerTag: string
zarazVersion: number

Zaraz internal version of the config.

analytics?: Analytics { defaultPurpose, enabled, sessionExpTime }

Cloudflare Monitoring settings.

defaultPurpose?: string

Consent purpose assigned to Monitoring.

enabled?: boolean

Whether Advanced Monitoring reports are enabled.

sessionExpTime?: number

Session expiration time (seconds).

maximum86400
minimum60
historyChange?: boolean

Single Page Application support enabled.

Restore Zaraz historical configuration by ID

import Cloudflare from 'cloudflare';

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

const configuration = await client.zaraz.history.update({
  zone_id: '023e105f4ecef8ad9ca31a8372d0c353',
  body: 12345,
});

console.log(configuration.dataLayer);
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "dataLayer": true,
    "debugKey": "debugKey",
    "settings": {
      "autoInjectScript": true,
      "contextEnricher": {
        "escapedWorkerName": "escapedWorkerName",
        "workerTag": "workerTag"
      },
      "cookieDomain": "cookieDomain",
      "ecommerce": true,
      "eventsApiPath": "eventsApiPath",
      "hideExternalReferer": true,
      "hideIPAddress": true,
      "hideQueryParams": true,
      "hideUserAgent": true,
      "initPath": "initPath",
      "injectIframes": true,
      "mcRootPath": "mcRootPath",
      "scriptPath": "scriptPath",
      "trackPath": "trackPath"
    },
    "tools": {
      "foo": {
        "blockingTriggers": [
          "string"
        ],
        "component": "component",
        "defaultFields": {
          "foo": "string"
        },
        "enabled": true,
        "name": "name",
        "permissions": [
          "string"
        ],
        "settings": {
          "foo": "string"
        },
        "type": "component",
        "actions": {
          "foo": {
            "actionType": "actionType",
            "blockingTriggers": [
              "string"
            ],
            "data": {},
            "firingTriggers": [
              "string"
            ]
          }
        },
        "defaultPurpose": "defaultPurpose",
        "neoEvents": [
          {
            "actionType": "actionType",
            "blockingTriggers": [
              "string"
            ],
            "data": {},
            "firingTriggers": [
              "string"
            ]
          }
        ],
        "vendorName": "vendorName",
        "vendorPolicyUrl": "vendorPolicyUrl"
      }
    },
    "triggers": {
      "foo": {
        "excludeRules": [
          {
            "id": "id",
            "match": "match",
            "op": "CONTAINS",
            "value": "value"
          }
        ],
        "loadRules": [
          {
            "id": "id",
            "match": "match",
            "op": "CONTAINS",
            "value": "value"
          }
        ],
        "name": "name",
        "description": "description",
        "system": "pageload"
      }
    },
    "variables": {
      "foo": {
        "name": "name",
        "type": "string",
        "value": "value"
      }
    },
    "zarazVersion": 0,
    "analytics": {
      "defaultPurpose": "defaultPurpose",
      "enabled": true,
      "sessionExpTime": 60
    },
    "consent": {
      "enabled": true,
      "buttonTextTranslations": {
        "accept_all": {
          "foo": "string"
        },
        "confirm_my_choices": {
          "foo": "string"
        },
        "reject_all": {
          "foo": "string"
        }
      },
      "companyEmail": "companyEmail",
      "companyName": "companyName",
      "companyStreetAddress": "companyStreetAddress",
      "consentModalIntroHTML": "consentModalIntroHTML",
      "consentModalIntroHTMLWithTranslations": {
        "foo": "string"
      },
      "cookieName": "cookieName",
      "customCSS": "customCSS",
      "customIntroDisclaimerDismissed": true,
      "defaultLanguage": "defaultLanguage",
      "hideModal": true,
      "purposes": {
        "foo": {
          "description": "description",
          "name": "name"
        }
      },
      "purposesWithTranslations": {
        "foo": {
          "description": {
            "foo": "string"
          },
          "name": {
            "foo": "string"
          },
          "order": 0
        }
      },
      "tcfCompliant": true
    },
    "historyChange": true
  },
  "success": true
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "dataLayer": true,
    "debugKey": "debugKey",
    "settings": {
      "autoInjectScript": true,
      "contextEnricher": {
        "escapedWorkerName": "escapedWorkerName",
        "workerTag": "workerTag"
      },
      "cookieDomain": "cookieDomain",
      "ecommerce": true,
      "eventsApiPath": "eventsApiPath",
      "hideExternalReferer": true,
      "hideIPAddress": true,
      "hideQueryParams": true,
      "hideUserAgent": true,
      "initPath": "initPath",
      "injectIframes": true,
      "mcRootPath": "mcRootPath",
      "scriptPath": "scriptPath",
      "trackPath": "trackPath"
    },
    "tools": {
      "foo": {
        "blockingTriggers": [
          "string"
        ],
        "component": "component",
        "defaultFields": {
          "foo": "string"
        },
        "enabled": true,
        "name": "name",
        "permissions": [
          "string"
        ],
        "settings": {
          "foo": "string"
        },
        "type": "component",
        "actions": {
          "foo": {
            "actionType": "actionType",
            "blockingTriggers": [
              "string"
            ],
            "data": {},
            "firingTriggers": [
              "string"
            ]
          }
        },
        "defaultPurpose": "defaultPurpose",
        "neoEvents": [
          {
            "actionType": "actionType",
            "blockingTriggers": [
              "string"
            ],
            "data": {},
            "firingTriggers": [
              "string"
            ]
          }
        ],
        "vendorName": "vendorName",
        "vendorPolicyUrl": "vendorPolicyUrl"
      }
    },
    "triggers": {
      "foo": {
        "excludeRules": [
          {
            "id": "id",
            "match": "match",
            "op": "CONTAINS",
            "value": "value"
          }
        ],
        "loadRules": [
          {
            "id": "id",
            "match": "match",
            "op": "CONTAINS",
            "value": "value"
          }
        ],
        "name": "name",
        "description": "description",
        "system": "pageload"
      }
    },
    "variables": {
      "foo": {
        "name": "name",
        "type": "string",
        "value": "value"
      }
    },
    "zarazVersion": 0,
    "analytics": {
      "defaultPurpose": "defaultPurpose",
      "enabled": true,
      "sessionExpTime": 60
    },
    "consent": {
      "enabled": true,
      "buttonTextTranslations": {
        "accept_all": {
          "foo": "string"
        },
        "confirm_my_choices": {
          "foo": "string"
        },
        "reject_all": {
          "foo": "string"
        }
      },
      "companyEmail": "companyEmail",
      "companyName": "companyName",
      "companyStreetAddress": "companyStreetAddress",
      "consentModalIntroHTML": "consentModalIntroHTML",
      "consentModalIntroHTMLWithTranslations": {
        "foo": "string"
      },
      "cookieName": "cookieName",
      "customCSS": "customCSS",
      "customIntroDisclaimerDismissed": true,
      "defaultLanguage": "defaultLanguage",
      "hideModal": true,
      "purposes": {
        "foo": {
          "description": "description",
          "name": "name"
        }
      },
      "purposesWithTranslations": {
        "foo": {
          "description": {
            "foo": "string"
          },
          "name": {
            "foo": "string"
          },
          "order": 0
        }
      },
      "tcfCompliant": true
    },
    "historyChange": true
  },
  "success": true
}