Skip to content

Deploy rulesets

Use the Rulesets API to deploy a ruleset. To deploy a ruleset, add a rule with "action": "execute" to a phase entry point ruleset, specifying the ruleset ID to execute as an action parameter. Use a separate rule for each ruleset you want to deploy.

A rule that executes a ruleset consists of:

  • The ID of the ruleset you want to execute.
  • An expression.
  • An action, set to execute.

The rules in the ruleset execute when a request satisfies the expression.

Example

The following example deploys a managed ruleset to the http_request_firewall_managed phase of a given zone ({zone_id}) by adding a rule that executes the managed ruleset.

Terminal window
curl --request PUT \
https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_request_firewall_managed/entrypoint \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rules": [
{
"action": "execute",
"action_parameters": {
"id": "<CLOUDFLARE_MANAGED_RULESET_ID>"
},
"expression": "true",
"description": "Execute Cloudflare Managed Ruleset on my zone ruleset"
}
]
}'
{
"result": {
"id": "<ZONE_PHASE_RULESET_ID>",
"name": "Zone-level Ruleset 1",
"description": "",
"kind": "zone",
"version": "latest",
"rules": [
{
"id": "<RULE_ID>",
"version": "1",
"action": "execute",
"action_parameters": {
"id": "<CLOUDFLARE_MANAGED_RULESET_ID>",
"version": "3"
},
"expression": "true",
"description": "Execute Cloudflare Managed Ruleset on my zone ruleset",
"last_updated": "2021-03-18T18:08:14.003361Z",
"ref": "<RULE_REF>",
"enabled": true
}
],
"last_updated": "2021-03-18T18:08:14.003361Z",
"phase": "http_request_firewall_managed"
},
"success": true,
"errors": [],
"messages": []
}

Refer to Work with managed rulesets and Work with custom rulesets for more information.

For more information on the available API endpoints for editing and deploying rulesets, refer to Update and deploy rulesets.

For examples of deploying rulesets, refer to Managed ruleset override examples.