[ Web Proxy ]
URL:
Viewing: https://developers.cloudflare.com/waf/managed-rules/payload-logging/configure-api/ [Back]  [Original]

Configure payload logging for a managed ruleset via API Cloudflare Web Application Firewall (WAF) docsSkip to content
SearchCtrlKLog in
  1. Home
  2. /WAF
  3. /
  4. /Log the payload of matched rules
  5. /Configure via API

Configure payload logging via API

Last updated May 5, 2026Copy as MarkdownView as MarkdownAgent setup
OverviewConfigure and enable payload loggingExampleDisable payload logging

Use the Rulesets API to configure payload logging for a managed ruleset via API.

Configure and enable payload logging

  1. Use the Get a zone entry point ruleset operation to obtain the following IDs:

    • The ID of the entry point ruleset of the http_request_firewall_managed phase.
    • The ID of the execute rule deploying the WAF managed ruleset, for which you want to configure payload logging.
  2. Use the Update a zone ruleset rule operation to update the rule you identified in the previous step.

    Include a matched_data object in the rule's action_parameters object to configure payload logging. The matched_data object has the following structure:

    "action_parameters": {
      // ...
      "matched_data": {
        "public_key": "<PUBLIC_KEY_VALUE>"
      }
    }

    Replace <PUBLIC_KEY_VALUE> with the public key you want to use for payload logging. You can generate a public key in the command line or in the Cloudflare dashboard.

Account-level configuration

To configure payload logging for a managed ruleset deployed at the account level (only available on Enterprise plans), use the following API operations instead:

Example

This example configures payload logging for the Cloudflare Managed Ruleset, which is already deployed for a zone with ID $ZONE_ID.

  1. Invoke the Get a zone entry point ruleset operation to obtain the rules currently configured in the entry point ruleset of the http_request_firewall_managed phase.

    Get a zone entry point rulesetbash
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
    	"result": {
    		"id": "060013b1eeb14c93b0dcd896537e0d2c", // entry point ruleset ID
    		"name": "default",
    		"description": "",
    		"source": "firewall_managed",
    		"kind": "zone",
    		"version": "3",
    		"rules": [
    			// (...)
    			{
    				"id": "1bdb49371c1f46958fc8b985efcb79e7", // `execute` rule ID
    				"version": "1",
    				"action": "execute",
    				"expression": "true",
    				"last_updated": "2024-01-20T14:21:28.643979Z",
    				"ref": "1bdb49371c1f46958fc8b985efcb79e7",
    				"enabled": true,
    				"action_parameters": {
    					"id": "efb7b8c949ac4650a09736fc376e9aee", // "Cloudflare Managed Ruleset" ID
    					"version": "latest"
    				}
    			}
    			// (...)
    		],
    		"last_updated": "2024-01-20T14:29:00.190643Z",
    		"phase": "http_request_firewall_managed"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  2. Save the following IDs for the next step:

    • The ID of the entry point ruleset: 060013b1eeb14c93b0dcd896537e0d2c
    • The ID of the execute rule deploying the Cloudflare Managed Ruleset: 1bdb49371c1f46958fc8b985efcb79e7

    To find the correct rule in the rules array, search for an execute rule containing the ID of the Cloudflare Managed Ruleset (...376e9aee) in action_parameters > id.

    Note

    To get the IDs of existing WAF managed rulesets, refer to Available managed rulesets or use the List account rulesets operation.

  3. Invoke the Update a zone ruleset rule operation to update the configuration of the rule you identified. The rule will now include the payload logging configuration (matched_data object).

    Update a zone ruleset rulebash
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/060013b1eeb14c93b0dcd896537e0d2c/rules/1bdb49371c1f46958fc8b985efcb79e7" \
    	--request PATCH \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"action": "execute",
    		"action_parameters": {
    				"id": "efb7b8c949ac4650a09736fc376e9aee",
    				"matched_data": {
    						"public_key": "Ycig/Zr/pZmklmFUN99nr+taURlYItL91g+NcHGYpB8="
    				}
    		},
    		"expression": "true"
    	}'

    The response will include the complete ruleset after updating the rule.

For more information on deploying managed rulesets via API, refer to Deploy a managed ruleset in the Ruleset Engine documentation.


Disable payload logging

To disable payload logging for a managed ruleset:

  1. Use the Update a zone ruleset rule operation to update the rule deploying the managed ruleset (a rule with "action": "execute").

  2. Modify the rule definition so that there is no matched_data object in action_parameters.

For example, the following PATCH request updates the rule with ID $RULE_ID deploying the Cloudflare Managed Ruleset so that payload logging is disabled:

Update a zone ruleset rulebash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules/$RULE_ID" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"action": "execute",
		"action_parameters": {
				"id": "efb7b8c949ac4650a09736fc376e9aee"
		},
		"expression": "true"
	}'

For details on obtaining the entry point ruleset ID and the ID of the rule to update, refer to Configure and enable payload logging.

PreviousView the payload content in the dashboardNextStore decrypted matched payloads in logs

Was this helpful?

YesNo
Edit pageReport issue
[]

Web Proxy Viewer  |  New URL  |  Original Page