Cloudflare API Example in bash/curl

March 10, 2025 note-to-self

Cloudflare API Example in bash/curl. This particular script was a proof-of-concept to disable a cache rule.

TOKEN=
ACCOUNT_ID=
ZONE_ID=

# Verify token
# curl -X GET "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/tokens/verify" \
#      -H "Authorization: Bearer $TOKEN" \
#      -H "Content-Type:application/json"
#
# Get ruleset ID I need
# curl -X GET "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets" \
#       -H "Authorization: Bearer $TOKEN"
# ^^^ Need to get the RULESET_ID from that
RULESET_ID=

# View the ruleset
curl -X GET "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
      -H "Authorization: Bearer $TOKEN"

# Patch the ruleset
curl -X PUT "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
      -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      -d '{
               "rules": [
                  {
                      "action": "set_cache_settings",
                      "action_parameters": {
                        "cache": true
                      },
                      "enabled": true,
                      "expression": "true"
                  }
                ]
            }'
      #
# View the ruleset to validate
curl -X GET "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
      -H "Authorization: Bearer $TOKEN"