Skip to content

Cloudflare

Cloudflare

Cloudflare is a global network designed to make everything you connect to the Internet secure, private, fast, and reliable. With the Cloudflare integration in SquadOS, your agents can manage DNS records, zones, WAF lists, firewall rules, tunnels, load-balancer pools, and bot management settings programmatically — without logging into the web dashboard.

This tool uses an API key (API_KEY) to connect.

You will need the following fields:

FieldRequiredDescription
api_keyYesCloudflare API token with the permissions required for your intended operations.
  1. Go to dash.cloudflare.com/profile/api-tokens — the API Tokens page in your profile.
  2. Click Create Token.
  3. Choose one of the available templates or click Create Custom Token to configure permissions manually.
  4. Give the token a descriptive name (e.g., SquadOS).
  5. Under Permissions, select the groups and access levels the token will need (e.g., Zone → DNS → Edit to manage DNS records).
  6. Under Zone Resources, choose which zones the token can access (specific ones or all).
  7. Optionally restrict the token by source IP or set an expiry date (TTL).
  8. Click Continue to summary, then Create Token.
  9. Copy and store the token displayed — it is shown only once.
  1. Go to Tools in the side menu (/admin/tools).
  2. Open the Available tab and search for Cloudflare.
  3. Click the card to open the details and hit Connect.
  4. You’re taken to the secure connection page hosted by Composio, where you enter the API token obtained above.
  5. Once done, you’re sent back to SquadOS with the account connected and the tool available to agents. (Connection-flow details in Organization Tools.)

CLOUDFLARE_CREATE_DNS_RECORD

Tool to create a new DNS record within a specific zone. Requires write privileges and makes live changes to the zone. Use after obtaining the zone ID via CLOUDFLARE_LIST_ZONES to programmatically add DNS entries.

NameTypeRequiredDescription
ttlintegerNoTime to live in seconds; minimum 1. Use 1 for automatic TTL.
dataobjectNoAdditional data object for record types like SRV, LOC, or CAA.
namestringYesDNS record name (e.g., example.com or www.example.com).
tagsarrayNoList of tags to associate with the record.
typestringYesDNS record type (A, AAAA, CNAME, MX, TXT, SRV, LOC, CAA).
commentstringNoHuman-readable comment for the DNS record.
contentstringYesDNS record content (e.g., IP for A records).
proxiedbooleanNoWhether the record is receiving Cloudflare performance and security benefits.
priorityintegerNoPriority for MX, SRV, and URI records; required for those types.
zone_identifierstringYesZone identifier (UUID) where the DNS record will be created.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_CREATE_LIST

Create a new empty custom list for use in WAF rules and filters. Lists can contain IP addresses, hostnames, ASNs, or redirects. Once created, use separate actions to add items to the list. List availability depends on plan: Free (1 list), Pro/Business (10 lists), Enterprise (1000 lists).

NameTypeRequiredDescription
kindstringYesType of the list: ip, redirect, hostname, or asn.
namestringYesInformative name for the list (max 50 characters). Used in filter and rule expressions.
account_idstringYesCloudflare account identifier (max 32 characters).
descriptionstringNoOptional description of the list (max 500 characters).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_CREATE_ZONE

Creates a new DNS zone (domain) in Cloudflare. A zone represents a domain and its DNS records. Use this when adding a new domain to manage with Cloudflare. Requires account ID (obtainable via CLOUDFLARE_LIST_ACCOUNTS). The zone will be in pending status until nameservers are updated at the domain registrar.

NameTypeRequiredDescription
namestringYesThe domain name for the new zone.
typestringNoZone setup mode: full (DNS hosted by Cloudflare), partial (CNAME setup), or secondary (secondary DNS).
accountobjectNoContainer for account ID. If not provided, the zone will be created under the default account associated with the API credentials. Must be structured as {'id': '<account_id>'} where id is obtained via CLOUDFLARE_LIST_ACCOUNTS.
jump_startbooleanNoAuto-import existing DNS records from the domain. Ignored for partial zones.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_DELETE_DNS_RECORD

Tool to delete a DNS record within a specific zone. Deletion is immediate and irreversible. Use only after confirming both zone and record IDs. Requires write privileges on the zone.

NameTypeRequiredDescription
identifierstringYesIdentifier of the DNS record to delete (e.g., 372e67954025e0ba6aaa6d586b9e0b59).
zone_identifierstringYesIdentifier of the DNS zone (e.g., 023e105f4ecef8ad9ca31a8372d0c353).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_DELETE_LIST

Tool to delete a WAF list. Use when you need to remove a list after verifying no filters reference it.

NameTypeRequiredDescription
list_idstringYesUnique identifier of the WAF list to delete.
account_idstringYesCloudflare account identifier.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_DELETE_ZONE

Tool to delete a zone. Use after confirming the zone identifier to permanently remove a DNS zone and all its DNS records from your Cloudflare account.

NameTypeRequiredDescription
zone_identifierstringYesIdentifier of the zone to delete (32-character hex string).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_GET_BOT_MANAGEMENT_SETTINGS

Tool to retrieve a zone’s Bot Management configuration (Bot Fight Mode / Super Bot Fight Mode / Enterprise Bot Management). Use after identifying the correct zone_id (e.g., via CLOUDFLARE_LIST_ZONES). This tool is the canonical way to audit bot-related configuration; firewall rules are adjacent controls but not equivalent to Bot Management settings.

NameTypeRequiredDescription
zone_idstringYesZone identifier (UUID) to retrieve Bot Management settings for. Obtain this from List Zones action.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_GET_LISTS

Tool to fetch all WAF lists (no items) for an account. Results are paginated; iterate using page and per_page parameters until result_info.total_pages is reached to retrieve all lists.

NameTypeRequiredDescription
account_idstringYesCloudflare account identifier (32 hexadecimal characters). Must match the account owning the target zone to avoid cross-account data mixing.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_LIST_ACCOUNT_MEMBERS

Lists all members of a Cloudflare account with their roles, permissions, and status. Returns detailed information about each account member including their user details (name, email, 2FA status), assigned roles with granular permissions, membership status (accepted/pending/rejected), and access policies. Supports filtering by status, sorting by various fields, and pagination.

NameTypeRequiredDescription
pageintegerNoPage number for pagination (must be >= 1). Defaults to 1 if not specified.
orderstringNoField to sort results by: user.first_name, user.last_name, user.email, or status.
statusstringNoFilter members by membership status: accepted (active members), pending (invited but not yet accepted), or rejected (declined invitations). Omit to return all members.
per_pageintegerNoNumber of results per page (between 5 and 50). API default: 20.
directionstringNoSort direction: asc for ascending or desc for descending.
account_idstringYesThe unique identifier (32-character hex string) of the Cloudflare account whose members you want to list.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_LIST_ACCOUNTS

List all Cloudflare accounts you have ownership or verified access to. Retrieves a paginated list of accounts with their details including account ID, name, type, settings, and creation date. An empty or partial result may indicate insufficient API token scope or permissions, not the absence of accounts.

NameTypeRequiredDescription
namestringNoFilter accounts by name. May return multiple results for similar names; always verify the correct account_id from the response.
pageintegerNoPage number to retrieve, starting from 1.
per_pageintegerNoNumber of results per page, between 5 and 50.
directionstringNoDirection to order results: asc or desc.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_LIST_DNS_RECORDS

Tool to list and search DNS records in a Cloudflare zone. Use when you need to find existing DNS record IDs for update or delete operations, especially after a “record already exists” error during creation.

NameTypeRequiredDescription
namestringNoFilter by exact DNS record name (FQDN).
pageintegerNoPage number for pagination. Start at 1.
typestringNoFilter by DNS record type (A, AAAA, CAA, CERT, CNAME, DNSKEY, DS, HTTPS, LOC, MX, NAPTR, NS, PTR, SMIMEA, SRV, SSHFP, SVCB, TLSA, TXT, URI).
matchstringNoFilter matching logic: all requires all filters to match (AND), any requires at least one (OR). Defaults to all.
contentstringNoFilter by exact DNS record content/value.
proxiedbooleanNoFilter by proxy status: true for proxied records, false for DNS-only records.
zone_idstringYesZone identifier (UUID) to list DNS records from.
per_pageintegerNoNumber of records per page (1–5,000,000). Defaults to 100.
name_containsstringNoFilter by DNS record names containing this substring.
comment_containsstringNoFilter by comments containing this substring.
content_containsstringNoFilter by DNS record content containing this substring.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_LIST_FIREWALL_RULES

Tool to list firewall rules for a specific DNS zone. Use after confirming the zone ID to retrieve and audit current firewall rules. Does not expose Workers routes or other routing constructs.

NameTypeRequiredDescription
pageintegerNoPage number for paginated results, starting from 1. Check result_info.total_pages in the response to determine when all pages have been retrieved.
matchstringNoMatch criteria when multiple filters provided: all or any.
orderstringNoField to order results by (e.g., priority, created_on).
zone_idstringYesUUID of the zone to list firewall rules for.
per_pageintegerNoNumber of items per page (1–1000).
directionstringNoSort direction: asc or desc.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_LIST_MONITORS

Tool to list all load-balancer monitors in a Cloudflare account. Use after creating or updating monitors to retrieve a paginated list. Response includes result_info.total_pages to determine when all pages have been fetched.

NameTypeRequiredDescription
pageintegerNoPage number for paginated results (1-indexed).
orderstringNoField to sort by (e.g., created_on, description).
per_pageintegerNoNumber of monitors per page (max 100).
directionstringNoSort direction: asc or desc.
account_idstringYesCloudflare account identifier.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_LIST_POOLS

Tool to list all load balancer pools in a Cloudflare account. Use after confirming account ID to discover pool IDs. Paginate using page and per_page; check result_info.total_pages in the response to determine if additional pages exist.

NameTypeRequiredDescription
pageintegerNoPage number for pagination (1-based).
monitorstringNoFilter pools by monitor ID. Only returns pools using this specific health check monitor.
per_pageintegerNoNumber of pools to return per page (1–50). Defaults to returning all pools if not specified.
account_idstringYesCloudflare account identifier (UUID).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_LIST_TUNNELS

List Cloudflare Tunnel (cloudflared) tunnels in an account to discover tunnel IDs, names, and statuses. Use when you need to find a tunnel_id before performing tunnel operations like routing, DNS configuration, or debugging.

NameTypeRequiredDescription
namestringNoFilter tunnels by name.
pageintegerNoPage number for pagination, starting from 1.
per_pageintegerNoNumber of tunnels per page.
account_idstringYesCloudflare account identifier.
is_deletedbooleanNoFilter by deletion status. Set to true to include deleted tunnels, false to exclude them.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_LIST_ZONES

Lists, searches, sorts, and filters zones in the authenticated account. Use page/per_page to paginate; check result_info.total_pages in the response to iterate all pages. Does not return DNS records — extract zone_id from results before passing to zone-scoped tools (DNS, firewall, etc.). Only zones delegated to Cloudflare nameservers appear; empty results indicate scope or delegation constraints, not errors.

NameTypeRequiredDescription
namestringNoA domain name. Optional filter operators can be provided to extend and refine the search.
pageintegerNoPage number of paginated results.
matchstringNoWhether to match all search requirements (all) or at least one (any).
orderstringNoField to order zones by: name, status, account.id, account.name, or plan.id.
statusstringNoA zone status: initializing, pending, active, or moved.
accountobjectNoFilter zones by account ID and/or account name.
per_pageintegerNoNumber of zones per page.
directionstringNoDirection to order zones: asc or desc.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_UPDATE_DNS_RECORD

Tool to update an existing DNS record within a specific zone. Use after confirming both zone and record identifiers; only provided fields are modified. Updates to records used by active tunnels take effect immediately and can disrupt live traffic.

NameTypeRequiredDescription
ttlintegerNoTime to live in seconds; use 1 for automatic TTL.
dataobjectNoAdditional record-specific data for LOC, SRV, and CAA records.
namestringNoDNS record name (e.g., example.com).
typestringNoDNS record type (A, AAAA, CNAME, CERT, DNSKEY, DS, LOC, MX, NS, PTR, SPF, SRV, SSHFP, TLSA, TXT, URI).
contentstringNoDNS record content (e.g., IP address for A records).
proxiedbooleanNoWhether the record is receiving Cloudflare’s benefits.
priorityintegerNoPriority for MX, SRV, and URI records; required for these record types.
identifierstringYesDNS record identifier (UUID) to update.
zone_identifierstringYesZone identifier (UUID) of the DNS record to update.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_UPDATE_LIST

Tool to update the description of a WAF list (cannot update items). Use after confirming list metadata.

NameTypeRequiredDescription
list_idstringYesUnique identifier of the WAF list.
account_idstringYesCloudflare account identifier.
descriptionstringYesNew description for the WAF list.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_UPDATE_TUNNEL_CONFIGURATION

Tool to update a remotely-managed Cloudflare Tunnel’s configuration (ingress rules and routing). Use when you need to programmatically configure hostname-to-origin mappings for a tunnel. WARNING: This operation REPLACES the entire configuration — incorrect configuration can break routing and make services unreachable. Best practice: fetch current configuration first (if patching) to preserve existing rules. At least one ingress rule is required, and the last rule should typically be a catch-all (hostname=’*’ or omitted) with service=‘http_status:404’.

NameTypeRequiredDescription
configobjectYesComplete tunnel configuration object including ingress rules. This REPLACES the entire configuration — fetch current config first if you need to patch rather than replace.
tunnel_idstringYesUUID of the tunnel to configure.
account_idstringYesCloudflare account identifier where the tunnel resides.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.

CLOUDFLARE_UPDATE_ZONE

Tool to update properties of an existing zone; changes apply immediately to the live zone. Confirm zone ID and intended change before calling. Only one field can be modified per call.

NameTypeRequiredDescription
typestringNoZone type: full, partial, or secondary. Only one of paused, type, or vanity_name_servers can be updated per call.
pausedbooleanNoWhether to pause the zone (true to pause, false to unpause). Only one of paused, type, or vanity_name_servers can be updated per call.
zone_idstringYesZone identifier (UUID).
vanity_name_serversarrayNoCustom name servers for vanity mode. Only one of paused, type, or vanity_name_servers can be updated per call.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError message if execution failed.
successfulbooleanYesWhether the action executed successfully.