# Cloudflare Api Key

Cloudflare provides a suite of services to enhance the security, performance, and reliability of websites and applications.

- **Category:** security & identity tools
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 25
- **Triggers:** 0
- **Slug:** `CLOUDFLARE_API_KEY`
- **Version:** 20260309_00

## Tools

### Create DNS Record

**Slug:** `CLOUDFLARE_API_KEY_CREATE_DNS_RECORD`

Tool to create a new DNS record in a Cloudflare zone. Use when you need to add a record (A, CNAME, TXT, MX, etc.) to a specified zone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ttl` | integer | No | Time to live for DNS record in seconds; 1 means automatic (Cloudflare default). |
| `name` | string | Yes | Fully qualified DNS record name in Punycode. |
| `tags` | array | No | Custom tags in the form "name:value". |
| `type` | string ("A" | "AAAA" | "CNAME" | "MX" | "TXT" | "SRV" | "LOC" | "SPF" | "CERT" | "DNSKEY" | "DS" | "NAPTR" | "SMIMEA" | "SSHFP" | "TLSA" | "URI" | "CAA") | Yes | DNS record type. |
| `comment` | string | No | Free-form comment for the DNS record. |
| `content` | string | No | Record content; for types like A/AAAA use IP address, for CNAME use target hostname, etc. |
| `proxied` | boolean | No | Whether the record is receiving the performance and security benefits of Cloudflare. |
| `zone_id` | string | Yes | Zone identifier in which to create the DNS record. |
| `settings` | object | No | Settings specific to A record when proxied. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Zone Lockdown Rule

**Slug:** `CLOUDFLARE_API_KEY_CREATE_LOCKDOWN_RULE`

Tool to create a Zone Lockdown rule. Use when you need to restrict access to specific URL patterns to defined IPs/CIDR ranges. Use after confirming zone_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `urls` | array | Yes | URLs to lock down; supports simple wildcard '*' patterns. |
| `paused` | boolean | No | Whether to start the rule in a paused state. |
| `zone_id` | string | Yes | Zone identifier. |
| `priority` | integer | No | Processing priority (lower numbers run first). |
| `description` | string | No | Optional summary of the rule. |
| `configurations` | array | Yes | One or more sources to allow (IP or CIDR ranges). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Rule in Ruleset

**Slug:** `CLOUDFLARE_API_KEY_CREATE_RULE_IN_RULESET`

Tool to add a rule to an existing ruleset. Use when you need to append or insert a new rule in a Cloudflare ruleset.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rule` | object | Yes | Definition of the rule to add |
| `zone_id` | string | No | Zone identifier; required if using zones segment |
| `account_id` | string | No | Account identifier; required if using accounts segment |
| `ruleset_id` | string | Yes | ID of the target ruleset |
| `accounts_or_zones` | string ("accounts" | "zones") | Yes | Segment for owner: 'accounts' or 'zones' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Ruleset

**Slug:** `CLOUDFLARE_API_KEY_CREATE_RULESET`

Creates a new Cloudflare ruleset at account or zone scope. Rulesets contain rules that control traffic behavior (firewall, rate limiting, redirects, etc.). First use List Zones to get a zone_id, then specify the phase (e.g., 'http_request_firewall_custom' for WAF rules).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `kind` | string ("custom" | "root" | "zone") | Yes | Type of ruleset. 'custom' for user-defined rules, 'root' for account-level entrypoint, 'zone' for zone-level entrypoint. |
| `name` | string | Yes | Human-readable name for the ruleset (e.g., 'Production Firewall Rules'). |
| `phase` | string | Yes | Execution phase determining when rules run. Common phases: 'http_request_firewall_custom' (WAF), 'http_config_settings' (config), 'ddos_l7' (DDoS), 'http_request_transform' (URL rewrite), 'http_response_headers_transform' (response headers). |
| `rules` | array | No | List of rules to include. Can be empty and rules added later via Create Rule in Ruleset. |
| `description` | string | No | Human-readable description of the ruleset's purpose. |
| `accounts_or_zones` | string ("accounts" | "zones") | Yes | Scope for the ruleset. Use 'zones' for zone-level rulesets or 'accounts' for account-level rulesets. |
| `account_or_zone_id` | string | Yes | The 32-character identifier of the account or zone. Get zone IDs from List Zones, account IDs from your Cloudflare dashboard. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete DNS Record

**Slug:** `CLOUDFLARE_API_KEY_DELETE_DNS_RECORD`

Tool to delete a DNS record. Use when you need to remove a specific DNS record from a zone after confirming both zone and record IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zone_id` | string | Yes | Cloudflare zone identifier. Obtain this from the List Zones action or the Cloudflare dashboard under the zone's Overview page. |
| `dns_record_id` | string | Yes | DNS record identifier to delete. Obtain this from the List DNS Records action for the target zone. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete DNSSEC

**Slug:** `CLOUDFLARE_API_KEY_DELETE_DNSSEC`

Tool to delete DNSSEC records for a zone. Use after disabling DNSSEC at the registrar to remove DNSSEC configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zone_id` | string | Yes | Zone identifier to delete DNSSEC for |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Rule from Ruleset

**Slug:** `CLOUDFLARE_API_KEY_DELETE_RULE_FROM_RULESET`

Tool to delete a specific rule from a ruleset. Use when you need to remove an outdated or incorrect rule from an account or zone ruleset after confirming IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rule_id` | string | Yes | 32-character hex identifier of the rule to delete from the ruleset |
| `ruleset_id` | string | Yes | 32-character hex identifier of the ruleset containing the rule to delete |
| `accounts_or_zones` | string ("accounts" | "zones") | Yes | Scope for the ruleset: use 'accounts' for account-level rulesets or 'zones' for zone-level rulesets |
| `account_or_zone_id` | string | Yes | 32-character hex identifier of the account (if accounts_or_zones='accounts') or zone (if accounts_or_zones='zones') |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Ruleset

**Slug:** `CLOUDFLARE_API_KEY_DELETE_RULESET`

Tool to delete all versions of a ruleset. Use when you need to remove a ruleset from an account or zone after confirming no references exist.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ruleset_id` | string | Yes | Unique identifier of the ruleset to delete. |
| `accounts_or_zones` | string ("accounts" | "zones") | Yes | Scope of the ruleset. Must be 'accounts' or 'zones'. |
| `account_or_zone_id` | string | Yes | Account ID if scope is 'accounts', or Zone ID if scope is 'zones'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a zone

**Slug:** `CLOUDFLARE_API_KEY_DELETE_ZONE`

Tool to delete an existing zone. Use after confirming the zone_id to permanently remove the zone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zone_id` | string | Yes | Zone identifier to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Cloudflare IP Addresses

**Slug:** `CLOUDFLARE_API_KEY_GET_CLOUDFLARE_IP_ADDRESSES`

Tool to retrieve IP addresses used on the Cloudflare or JD Cloud network. Use when you need to obtain the list of IPv4 and IPv6 CIDR blocks used by Cloudflare's infrastructure or JD Cloud data centers.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `networks` | string | No | Specify as 'jdcloud' to retrieve IP ranges utilized by JD Cloud data centers. If not specified, returns Cloudflare IP ranges. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Entrypoint Ruleset Version

**Slug:** `CLOUDFLARE_API_KEY_GET_ENTRYPOINT_RULESET_VERSION`

Retrieves a specific historical version of an entry point ruleset from Cloudflare. Entry point rulesets are phase-specific and define the rules that execute during a particular phase of request/response processing. This tool fetches a specific version, allowing you to view rules as they existed at a particular point in time. Use cases: - Audit historical rule configurations - Compare rule changes between versions - Rollback analysis (view what rules looked like before a change) - Debug issues by examining past ruleset states Prerequisites: - Requires a valid account_id or zone_id (use List Zones to get zone IDs) - Requires knowing the ruleset phase (e.g., 'http_request_firewall_custom') - Requires knowing the version number to fetch

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ruleset_phase` | string | Yes | The execution phase of the entry point ruleset. Common phases include: 'http_request_firewall_custom' (custom WAF rules), 'http_request_firewall_managed' (managed WAF), 'ddos_l4' (Layer 4 DDoS), 'ddos_l7' (Layer 7 DDoS), 'http_request_transform' (URL rewrite), 'http_response_headers_transform' (response headers), 'magic_transit' (Magic Transit), 'http_ratelimit' (rate limiting), 'http_request_sbfm' (Super Bot Fight Mode) |
| `ruleset_version` | string | Yes | The numeric version identifier of the entry point ruleset to retrieve (e.g., '1', '2', '3') |
| `accounts_or_zones` | string ("accounts" | "zones") | Yes | Scope for the ruleset: use 'accounts' for account-level rulesets or 'zones' for zone-level rulesets |
| `account_or_zone_id` | string | Yes | The 32-character alphanumeric identifier of the account (when accounts_or_zones='accounts') or zone (when accounts_or_zones='zones') |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Lockdown Rule

**Slug:** `CLOUDFLARE_API_KEY_GET_LOCKDOWN_RULE`

Tool to get a Zone Lockdown rule. Use when you need to fetch details of a specific lockdown rule by its ID within a Cloudflare zone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zone_id` | string | Yes | Identifier of the Cloudflare zone (max length 32) |
| `lockdown_id` | string | Yes | Unique identifier of the Zone Lockdown rule (max length 32) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Regional Tiered Cache

**Slug:** `CLOUDFLARE_API_KEY_GET_REGIONAL_TIERED_CACHE`

Tool to get the regional tiered cache setting for a zone. Use when you need to verify if regional tiered cache is enabled for performance optimization after zone activation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zone_id` | string | Yes | Identifier of the Cloudflare zone (max 32 characters) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Ruleset

**Slug:** `CLOUDFLARE_API_KEY_GET_RULESET`

Tool to fetch the latest version of a ruleset by ID. Use after you have the ruleset scope and ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zone_id` | string | No | DNS zone ID; required if accounts_or_zones='zones', mutually exclusive with account_id. |
| `account_id` | string | No | Cloudflare account ID; required if accounts_or_zones='accounts', mutually exclusive with zone_id. |
| `ruleset_id` | string | Yes | The unique ID of the ruleset to retrieve. |
| `accounts_or_zones` | string ("accounts" | "zones") | Yes | Must be 'accounts' or 'zones' to select the account- or zone-level endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Zone Details

**Slug:** `CLOUDFLARE_API_KEY_GET_ZONE_DETAILS`

Tool to get details for a specific zone. Use when you need detailed zone metadata by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zone_id` | string | Yes | Identifier for the zone (max length 32) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List DNS Records

**Slug:** `CLOUDFLARE_API_KEY_LIST_DNS_RECORDS`

List, search, sort, and filter DNS records for a Cloudflare zone. Use this tool to retrieve DNS records (A, AAAA, CNAME, TXT, MX, etc.) for a zone. Supports filtering by record type, name, content, and proxy status. Results are paginated; use page and per_page parameters for large record sets. Requires a valid zone_id which can be obtained from the List Zones action.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Filter by exact DNS record name (e.g., 'example.com' or 'sub.example.com'). Case-insensitive. |
| `page` | integer | No | Page number for paginated results (minimum: 1, default: 1). |
| `type` | string ("A" | "AAAA" | "CAA" | "CERT" | "CNAME" | "DNSKEY" | "DS" | "HTTPS" | "LOC" | "MX" | "NAPTR" | "NS" | "PTR" | "SMIMEA" | "SPF" | "SRV" | "SSHFP" | "SVCB" | "TLSA" | "TXT" | "URI") | No | Filter by DNS record type (e.g., A, AAAA, CNAME, TXT, MX). |
| `match` | string ("any" | "all") | No | Logical operator for filters: 'all' (AND) matches all criteria, 'any' (OR) matches any criterion. Default: 'all'. |
| `order` | string ("type" | "name" | "content" | "ttl" | "proxied") | No | Field to order results by. Default ordering is by type. |
| `search` | string | No | Human-readable search query to filter records by name, content, or other properties simultaneously. |
| `content` | string | No | Filter by exact record content (e.g., IP address for A records, target hostname for CNAME). Case-insensitive. |
| `proxied` | boolean | No | Filter by Cloudflare proxy status. True = proxied through Cloudflare, False = DNS only. |
| `zone_id` | string | Yes | Zone identifier (32-character hex string) to list DNS records for. |
| `per_page` | integer | No | Number of DNS records per page (minimum: 1, maximum: 5000, default: 100). |
| `direction` | string ("asc" | "desc") | No | Sort direction: 'asc' for ascending, 'desc' for descending. Default: 'asc'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Cloudflare Zones

**Slug:** `CLOUDFLARE_API_KEY_LIST_ZONES`

Tool to list, search, sort, and filter Cloudflare zones. Use when you need to retrieve a paginated list of zones available to the authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | A domain name; supports the same operators as account.name. |
| `page` | integer | No | Page number (min: 1, default: 1). |
| `match` | string ("any" | "all") | No | Whether to match any or all search requirements (default: all). |
| `order` | string ("name" | "status" | "account.id" | "account.name" | "plan.id") | No | Field to order by. |
| `status` | string ("initializing" | "pending" | "active" | "moved") | No | Filter by zone status. |
| `per_page` | integer | No | Results per page (min: 5, max: 50, default: 20). |
| `direction` | string ("asc" | "desc") | No | Direction to order zones. |
| `account.id` | string | No | Filter by an account ID. |
| `account.name` | string | No | Account name; supports operators: equal (default), not_equal, starts_with, ends_with, contains, starts_with_case_sensitive, ends_with_case_sensitive, contains_case_sensitive. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Overwrite DNS Record

**Slug:** `CLOUDFLARE_API_KEY_OVERWRITE_DNS_RECORD`

Tool to completely overwrite a DNS record. Use when you need to replace all record details after confirming record type and name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ttl` | integer | No | Time to live for DNS record in seconds; 1 means automatic (Cloudflare default). |
| `name` | string | Yes | Fully qualified DNS record name in Punycode. |
| `tags` | array | No | Custom tags in the form 'name:value'. |
| `type` | string ("A" | "AAAA" | "CNAME" | "MX" | "TXT" | "SRV" | "LOC" | "SPF" | "CERT" | "DNSKEY" | "DS" | "NAPTR" | "SMIMEA" | "SSHFP" | "TLSA" | "URI" | "CAA") | Yes | DNS record type. |
| `comment` | string | No | Free-form comment for the DNS record. |
| `content` | string | No | Record content; e.g., IPv4 address for A records, target hostname for CNAME, etc. |
| `proxied` | boolean | No | Whether the record is receiving the performance and security benefits of Cloudflare. |
| `zone_id` | string | Yes | Zone identifier containing the DNS record. |
| `settings` | object | No | Type-specific settings object for proxied record; passed through to the API. |
| `dns_record_id` | string | Yes | Identifier of the DNS record to overwrite. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Rerun Zone Activation Check

**Slug:** `CLOUDFLARE_API_KEY_RERUN_ZONE_ACTIVATION_CHECK`

Triggers a new activation check for a zone with 'pending' status. Use this after creating a zone or updating nameservers to verify that DNS propagation is complete and the zone can be activated. Rate limits apply: once every 5 minutes for paid plans (paygo/Enterprise) or once per hour for Free plans.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zone_id` | string | Yes | The unique identifier for the Cloudflare zone. This is a 32-character hexadecimal string that can be found in the Cloudflare dashboard or obtained from the List Zones API. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update DNSSEC Status

**Slug:** `CLOUDFLARE_API_KEY_UPDATE_DNSSEC_STATUS`

Tool to update DNSSEC configuration for a zone. Use when you need to enable or disable DNSSEC or adjust DNSSEC options after confirming the zone ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string ("active" | "disabled") | No | Desired DNSSEC state. Use 'active' to enable or 'disabled' to turn off DNSSEC. |
| `zone_id` | string | Yes | Identifier of the zone to update. |
| `dnssec_presigned` | boolean | No | Allow transfer-in of a pre-signed zone without on-the-fly signing. |
| `dnssec_use_nsec3` | boolean | No | Enable NSEC3 together with DNSSEC (commonly used when transferring from another provider). |
| `dnssec_multi_signer` | boolean | No | Enable multi-signer DNSSEC so multiple providers can serve a signed zone. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Lockdown Rule

**Slug:** `CLOUDFLARE_API_KEY_UPDATE_LOCKDOWN_RULE`

Tool to update a zone lockdown rule. Use when you need to modify the IP or URL settings of an existing Zone Lockdown rule after confirming the rule exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `urls` | array | Yes | List of URL patterns to restrict access for; wildcards supported (e.g., 'shop.example.com/*'). |
| `paused` | boolean | No | Whether to pause the rule. When paused, the rule is inactive and does not block any traffic. |
| `zone_id` | string | Yes | Identifier of the Cloudflare zone. |
| `description` | string | No | Optional human-readable description of the rule's purpose. |
| `lock_downs_id` | string | Yes | Identifier of the Zone Lockdown rule to update. |
| `configurations` | array | Yes | List of IP addresses or CIDR ranges that will be allowed to access the URLs specified in the rule. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Rule in Ruleset

**Slug:** `CLOUDFLARE_API_KEY_UPDATE_RULE_IN_RULESET`

Tool to update a specific rule in a ruleset. Use when you need to modify a rule's configuration or reorder it after reviewing its current settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rule` | object | No | Fields to update on a rule. |
| `rule_id` | string | Yes | ID of the rule to update. |
| `position` | object | No | Position for reordering a rule within its ruleset. |
| `ruleset_id` | string | Yes | ID of the ruleset containing the rule. |
| `accounts_or_zones` | string ("accounts" | "zones") | Yes | Scope type: 'accounts' for account rulesets or 'zones' for zone rulesets. |
| `account_or_zone_id` | string | Yes | ID of the account or zone. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Ruleset

**Slug:** `CLOUDFLARE_API_KEY_UPDATE_RULESET`

Update a Cloudflare ruleset, creating a new version. Use this to modify ruleset description, name, or rules. IMPORTANT: When updating rules, you must include ALL rules you want to keep - any rules not included will be removed. Cannot modify managed rulesets directly - use overrides instead.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `kind` | string | No | Ruleset kind. Generally immutable after creation. Values: 'custom', 'root', 'zone', 'managed'. |
| `name` | string | No | Human-readable name for the ruleset. Note: Cannot be changed for managed rulesets. |
| `phase` | string | No | Execution phase. Common values: 'http_request_firewall_custom', 'http_config_settings', 'ddos_l7', 'http_response_headers_transform'. |
| `rules` | array | No | Complete list of rules for this ruleset version. WARNING: This replaces ALL existing rules - include every rule you want to keep. |
| `ruleset_id` | string | Yes | The unique ID of the ruleset to update. Get this from create_ruleset or get_ruleset. |
| `description` | string | No | Informative description of this ruleset version. Useful for tracking changes. |
| `accounts_or_zones` | string ("accounts" | "zones") | Yes | Scope of the ruleset. Use "accounts" for account-level rulesets or "zones" for zone-level rulesets. |
| `account_or_zone_id` | string | Yes | The 32-character hexadecimal ID of the account or zone (depending on scope). Get this from list_zones or list_accounts. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Cloudflare Zone

**Slug:** `CLOUDFLARE_API_KEY_UPDATE_ZONE`

Tool to edit a Cloudflare zone. Use when you need to update a single zone property at a time. Ensure only one of paused, type, or vanity_name_servers is provided per call.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("full" | "partial" | "secondary") | No | Zone type: 'full' (Cloudflare DNS), 'partial' (CNAME setup), or 'secondary' |
| `paused` | boolean | No | Toggle DNS-only mode; true to disable security and performance features |
| `zone_id` | string | Yes | Identifier of the zone to update (max length 32) |
| `vanity_name_servers` | array | No | Custom nameserver domains (Business and Enterprise plans only) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload File to S3

**Slug:** `CLOUDFLARE_API_KEY_UPLOAD_FILE_TO_S3`

Tool to upload arbitrary file content to temporary storage. Use when you need to stage files for actions requiring FileUploadable.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | Yes | Raw content of the file as a string; encoded as UTF-8 when uploaded. |
| `mimetype` | string | No | MIME type of the file. |
| `file_name` | string | Yes | Filename (including extension) to store. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
