Use one of the following API endpoints to update a ruleset:
- Update an account ruleset
PUT /accounts/{account_id}/rulesets/{ruleset_id} - Update an account entry point ruleset
PUT /accounts/{account_id}/rulesets/phases/{phase_name}/entrypoint - Update a zone ruleset
PUT /zones/{zone_id}/rulesets/{ruleset_id} - Update a zone entry point ruleset
PUT /zones/{zone_id}/rulesets/phases/{phase_name}/entrypoint
When updating a ruleset, you can update:
- The basic properties of a ruleset (currently only the description)
- The list of rules in a ruleset
You cannot update the name of the ruleset or its type. Do not include these fields in the data field of your PUT request.
To deploy a ruleset, add a rule with "action": "execute" to the list of rules of an entry point ruleset. Refer to Deploy a ruleset for an example.
The following PUT request defines the list of rules of a ruleset, setting it to a single rule. You must include all the rules you want to associate with the ruleset in every request.
Required API token permissions
At least one of the following token permissions is required:Response Compression WriteConfig Settings WriteDynamic URL Redirects WriteCache Settings WriteCustom Errors WriteOrigin WriteManaged headers WriteZone Transform Rules WriteMass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteHTTP DDoS Managed Ruleset WriteSanitize WriteTransform Rules WriteSelect Configuration WriteBot Management WriteZone WAF WriteAccount WAF WriteAccount Rulesets WriteLogs WriteLogs Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"action": "execute",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>"
},
"expression": "true"
}
]
}'{
"result": {
"id": "<RULESET_ID>",
"name": "Zone-level phase entry point ruleset",
"description": "This ruleset executes a managed ruleset.",
"kind": "zone",
"version": "4",
"rules": [
{
"id": "<RULE_ID>",
"version": "2",
"action": "execute",
"expression": "true",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>"
},
"last_updated": "2025-03-17T15:42:37.917815Z"
}
],
"last_updated": "2025-03-17T15:42:37.917815Z",
"phase": "http_request_firewall_managed"
},
"success": true,
"errors": [],
"messages": []
}To deploy a ruleset, create a rule with "action": "execute" that executes the ruleset, and add the ruleset ID to the action_parameters field in the id