Overview
Add Cloudflare to any ModuleX agent or workflow. Cloudflare v4 API integration: DNS, WAF lists, zones, firewall rules, load balancer monitors & pools, account discovery. All against api.cloudflare.com/client/v4.
Categories : Developer Tools & Infrastructure · Security · Infrastructure · Networking · Auth : API Token · Actions : 13
Authentication
API Token Authentication
Authenticate using your Cloudflare API Token (recommended)
Required Credentials
Field Description Required Format Cloudflare API Token Your Cloudflare API Token for authentication Yes xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Available Actions
list_zones — List, search, sort, and filter your Cloudflare zones
Parameters Zone status: active, pending, initializing, moved, deleted, deactivated
Account identifier filter
Results per page (max 50 for most endpoints) (Default: 20)
Sort order: name, status, account.id, account.name
Sort direction (asc/desc) (Default: asc)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "ListZonesOutput" ,
"type" : "object"
}
create_dns_record — Create a new DNS record within a specific zone
Parameters DNS record type (A, AAAA, CNAME, TXT, MX, NS, SRV, etc.)
TTL (1 = automatic) (Default: 1)
Priority for MX/SRV records
Proxy through Cloudflare (Default: false)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "CreateDNSRecordOutput" ,
"type" : "object"
}
update_dns_record — Update an existing DNS record. Only provided fields are modified.
Parameters Priority for MX/SRV records
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "UpdateDNSRecordOutput" ,
"type" : "object"
}
delete_dns_record — Delete a DNS record within a specific zone
Parameters DNS record identifier to delete
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "DeleteDNSRecordOutput" ,
"type" : "object"
}
list_waf_lists — Fetch all WAF lists (no items) for an account
Parameters Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "ListWAFListsOutput" ,
"type" : "object"
}
create_waf_list — Create a new empty WAF list for the account
Parameters List type: ip, redirect, hostname, asn
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "CreateWAFListOutput" ,
"type" : "object"
}
update_waf_list — Update the description of a WAF list (cannot update items)
Parameters New description for the list
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "UpdateWAFListOutput" ,
"type" : "object"
}
delete_waf_list — Delete a WAF list
Parameters List identifier to delete
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "DeleteWAFListOutput" ,
"type" : "object"
}
list_accounts — List all accounts accessible to the user
Parameters Results per page (max 50 for most endpoints) (Default: 20)
Sort direction (asc/desc) (Default: asc)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "ListAccountsOutput" ,
"type" : "object"
}
list_account_members — List members of a given Cloudflare account
Parameters Results per page (max 50 for most endpoints) (Default: 20)
Sort: user.first_name, user.last_name, user.email, status (Default: status)
Sort direction (asc/desc) (Default: asc)
Filter by status: accepted, pending, rejected
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "ListAccountMembersOutput" ,
"type" : "object"
}
list_firewall_rules — List firewall rules for a specific zone
Parameters Results per page (max 50 for most endpoints) (Default: 25)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "ListFirewallRulesOutput" ,
"type" : "object"
}
list_monitors — List all load-balancer monitors in a Cloudflare account
Parameters Results per page (max 50 for most endpoints) (Default: 25)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "ListMonitorsOutput" ,
"type" : "object"
}
list_pools — List all load balancer pools in a Cloudflare account
Parameters Results per page (max 50 for most endpoints) (Default: 25)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"result" : {
"default" : null ,
"title" : "Result"
},
"total" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Total"
},
"page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Page"
},
"per_page" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Per Page"
}
},
"required" : [
"success"
],
"title" : "ListPoolsOutput" ,
"type" : "object"
}
Limits & Quotas
Cloudflare wraps every response in
{"success", "errors", "messages", "result", "result_info"}. The
shared _call helper checks the envelope’s success flag (not just
HTTP status), pulls errors[0].message on failure, and lifts
result_info pagination (total_count, page, per_page) onto
the output’s top-level total/page/per_page fields for list
actions.
Most list endpoints cap per_page at 50; firewall rules cap at 100.
result is open: list endpoints return a JSON array; CRUD
endpoints return the object directly. Mirrors the upstream shape.
Links