KosmoKrator

productivity

Cloudflare Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the Cloudflare KosmoKrator integration.

Lua Namespace

Agents call this integration through app.integrations.cloudflare.*. Use lua_read_doc("integrations.cloudflare") inside KosmoKrator to discover the same reference at runtime.

Call Lua from the Headless CLI

Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic Cloudflare workflow without starting an interactive agent session.

Inline Lua call
kosmo integrations:lua --eval 'dump(app.integrations.cloudflare.api_get({}))' --json
Read Lua docs headlessly
kosmo integrations:lua --eval 'print(docs.read("cloudflare"))' --json
kosmo integrations:lua --eval 'print(docs.read("cloudflare.api_get"))' --json

Workflow file

Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.

workflow.lua
local cloudflare = app.integrations.cloudflare
local result = cloudflare.api_get({})

dump(result)
Run the workflow
kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json
Namespace note. integrations:lua exposes app.integrations.cloudflare, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.cloudflare.default.* or app.integrations.cloudflare.work.* when you configured named credential accounts.

MCP-only Lua

If the script only needs configured MCP servers and does not need Cloudflare, use the narrower mcp:lua command.

MCP Lua command
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

Cloudflare

Cloudflare tools are exposed under app.integrations.cloudflare. Use them to manage common Cloudflare account, zone, DNS, cache, ruleset, page-rule, and Workers KV namespace workflows.

The package includes first-class tools for frequent operations and raw API helpers for Cloudflare’s much larger v4 API surface:

  • cloudflare_api_get
  • cloudflare_api_post
  • cloudflare_api_patch
  • cloudflare_api_put
  • cloudflare_api_delete

Raw API helpers take a path relative to https://api.cloudflare.com/client/v4, for example /zones/{zone_id}/settings. Use first-class tools when one exists because they validate required identifiers and document the expected body shape.

Discovery

Start with accounts and zones:

local token = app.integrations.cloudflare.cloudflare_verify_token({})

local accounts = app.integrations.cloudflare.cloudflare_list_accounts({
  per_page = 20
})

local zones = app.integrations.cloudflare.cloudflare_list_zones({
  name = "example.com",
  per_page = 20
})

Use cloudflare_get_account, cloudflare_list_account_members, and cloudflare_list_account_roles for account access audits.

DNS

DNS tools use zone_id and Cloudflare DNS record IDs. Use list first when only a hostname is known.

local records = app.integrations.cloudflare.cloudflare_list_dns_records({
  zone_id = "zone_123",
  type = "A",
  name = "www.example.com"
})

local created = app.integrations.cloudflare.cloudflare_create_dns_record({
  zone_id = "zone_123",
  type = "A",
  name = "www.example.com",
  content = "192.0.2.10",
  ttl = 1,
  proxied = true
})

Use cloudflare_get_dns_record, cloudflare_update_dns_record, cloudflare_patch_dns_record, and cloudflare_delete_dns_record for single-record lifecycle work. update uses Cloudflare’s PUT replacement endpoint; patch sends partial changes.

Zone DNS support also includes:

  • cloudflare_export_dns_records
  • cloudflare_import_dns_records
  • cloudflare_scan_dns_records
  • cloudflare_review_dns_record_scan
  • cloudflare_get_dns_settings
  • cloudflare_update_dns_settings

Zones, Cache, And Settings

Use cloudflare_create_zone, cloudflare_get_zone, cloudflare_edit_zone, and cloudflare_delete_zone for zone lifecycle operations.

local ssl = app.integrations.cloudflare.cloudflare_get_zone_setting({
  zone_id = "zone_123",
  setting_id = "ssl"
})

local purge = app.integrations.cloudflare.cloudflare_purge_cache({
  zone_id = "zone_123",
  files = {
    "https://www.example.com/app.css"
  }
})

For settings with non-string payloads, pass body using Cloudflare’s exact API schema.

Rules

Legacy page-rule tools are still available:

  • cloudflare_list_page_rules
  • cloudflare_create_page_rule
  • cloudflare_update_page_rule
  • cloudflare_delete_page_rule

For modern Cloudflare Ruleset Engine workflows, use:

  • cloudflare_list_zone_rulesets
  • cloudflare_get_zone_ruleset
  • cloudflare_create_zone_ruleset
  • cloudflare_update_zone_ruleset
  • cloudflare_delete_zone_ruleset
  • cloudflare_list_account_rulesets

Ruleset bodies are passed using Cloudflare’s documented name, kind, phase, description, and rules fields, or as a raw body.

Workers KV

This package includes namespace and key-list management:

  • cloudflare_list_kv_namespaces
  • cloudflare_create_kv_namespace
  • cloudflare_delete_kv_namespace
  • cloudflare_list_kv_keys

Workers KV value read/write endpoints can return or require non-JSON payloads, so use the raw API helpers only when the host can handle the needed body and response format.

Output Shape

Most first-class tools return Cloudflare’s parsed API envelope with success, result, errors, and messages. Older compact tools such as cloudflare_list_zones, cloudflare_list_dns_records, and cloudflare_get_analytics preserve their normalized response shape for compatibility.

Raw agent markdown
# Cloudflare

Cloudflare tools are exposed under `app.integrations.cloudflare`. Use them to manage common Cloudflare account, zone, DNS, cache, ruleset, page-rule, and Workers KV namespace workflows.

The package includes first-class tools for frequent operations and raw API helpers for Cloudflare's much larger v4 API surface:

- `cloudflare_api_get`
- `cloudflare_api_post`
- `cloudflare_api_patch`
- `cloudflare_api_put`
- `cloudflare_api_delete`

Raw API helpers take a path relative to `https://api.cloudflare.com/client/v4`, for example `/zones/{zone_id}/settings`. Use first-class tools when one exists because they validate required identifiers and document the expected body shape.

## Discovery

Start with accounts and zones:

```lua
local token = app.integrations.cloudflare.cloudflare_verify_token({})

local accounts = app.integrations.cloudflare.cloudflare_list_accounts({
  per_page = 20
})

local zones = app.integrations.cloudflare.cloudflare_list_zones({
  name = "example.com",
  per_page = 20
})
```

Use `cloudflare_get_account`, `cloudflare_list_account_members`, and `cloudflare_list_account_roles` for account access audits.

## DNS

DNS tools use `zone_id` and Cloudflare DNS record IDs. Use list first when only a hostname is known.

```lua
local records = app.integrations.cloudflare.cloudflare_list_dns_records({
  zone_id = "zone_123",
  type = "A",
  name = "www.example.com"
})

local created = app.integrations.cloudflare.cloudflare_create_dns_record({
  zone_id = "zone_123",
  type = "A",
  name = "www.example.com",
  content = "192.0.2.10",
  ttl = 1,
  proxied = true
})
```

Use `cloudflare_get_dns_record`, `cloudflare_update_dns_record`, `cloudflare_patch_dns_record`, and `cloudflare_delete_dns_record` for single-record lifecycle work. `update` uses Cloudflare's PUT replacement endpoint; `patch` sends partial changes.

Zone DNS support also includes:

- `cloudflare_export_dns_records`
- `cloudflare_import_dns_records`
- `cloudflare_scan_dns_records`
- `cloudflare_review_dns_record_scan`
- `cloudflare_get_dns_settings`
- `cloudflare_update_dns_settings`

## Zones, Cache, And Settings

Use `cloudflare_create_zone`, `cloudflare_get_zone`, `cloudflare_edit_zone`, and `cloudflare_delete_zone` for zone lifecycle operations.

```lua
local ssl = app.integrations.cloudflare.cloudflare_get_zone_setting({
  zone_id = "zone_123",
  setting_id = "ssl"
})

local purge = app.integrations.cloudflare.cloudflare_purge_cache({
  zone_id = "zone_123",
  files = {
    "https://www.example.com/app.css"
  }
})
```

For settings with non-string payloads, pass `body` using Cloudflare's exact API schema.

## Rules

Legacy page-rule tools are still available:

- `cloudflare_list_page_rules`
- `cloudflare_create_page_rule`
- `cloudflare_update_page_rule`
- `cloudflare_delete_page_rule`

For modern Cloudflare Ruleset Engine workflows, use:

- `cloudflare_list_zone_rulesets`
- `cloudflare_get_zone_ruleset`
- `cloudflare_create_zone_ruleset`
- `cloudflare_update_zone_ruleset`
- `cloudflare_delete_zone_ruleset`
- `cloudflare_list_account_rulesets`

Ruleset bodies are passed using Cloudflare's documented `name`, `kind`, `phase`, `description`, and `rules` fields, or as a raw `body`.

## Workers KV

This package includes namespace and key-list management:

- `cloudflare_list_kv_namespaces`
- `cloudflare_create_kv_namespace`
- `cloudflare_delete_kv_namespace`
- `cloudflare_list_kv_keys`

Workers KV value read/write endpoints can return or require non-JSON payloads, so use the raw API helpers only when the host can handle the needed body and response format.

## Output Shape

Most first-class tools return Cloudflare's parsed API envelope with `success`, `result`, `errors`, and `messages`. Older compact tools such as `cloudflare_list_zones`, `cloudflare_list_dns_records`, and `cloudflare_get_analytics` preserve their normalized response shape for compatibility.
Metadata-derived Lua example
local result = app.integrations.cloudflare.api_get({})
print(result)

Functions

api_get Read

Execute a raw GET request against the Cloudflare API v4. Use relative paths such as `/zones/{zone_id}/settings`, and pass query parameters in `query`.

Lua path
app.integrations.cloudflare.api_get
Full name
cloudflare.cloudflare_api_get
ParameterTypeRequiredDescription
No parameters.
api_post Write

Execute a raw POST request against the Cloudflare API v4. Pass the JSON request body in `body`.

Lua path
app.integrations.cloudflare.api_post
Full name
cloudflare.cloudflare_api_post
ParameterTypeRequiredDescription
No parameters.
api_patch Write

Execute a raw PATCH request against the Cloudflare API v4. Pass the JSON request body in `body`.

Lua path
app.integrations.cloudflare.api_patch
Full name
cloudflare.cloudflare_api_patch
ParameterTypeRequiredDescription
No parameters.
api_put Write

Execute a raw PUT request against the Cloudflare API v4. Pass the JSON request body in `body`.

Lua path
app.integrations.cloudflare.api_put
Full name
cloudflare.cloudflare_api_put
ParameterTypeRequiredDescription
No parameters.
api_delete Write

Execute a raw DELETE request against the Cloudflare API v4. Pass an optional JSON request body in `body`.

Lua path
app.integrations.cloudflare.api_delete
Full name
cloudflare.cloudflare_api_delete
ParameterTypeRequiredDescription
No parameters.
verify_token Read

Verify the current Cloudflare API token and return token status metadata.

Lua path
app.integrations.cloudflare.verify_token
Full name
cloudflare.cloudflare_verify_token
ParameterTypeRequiredDescription
No parameters.
get_current_user Read

Get details of the currently authenticated Cloudflare user. Returns user ID, email, username, and account info.

Lua path
app.integrations.cloudflare.get_current_user
Full name
cloudflare.cloudflare_get_current_user
ParameterTypeRequiredDescription
No parameters.
list_accounts Read

List Cloudflare accounts visible to the authenticated API token.

Lua path
app.integrations.cloudflare.list_accounts
Full name
cloudflare.cloudflare_list_accounts
ParameterTypeRequiredDescription
No parameters.
get_account Read

Get a Cloudflare account by account_id.

Lua path
app.integrations.cloudflare.get_account
Full name
cloudflare.cloudflare_get_account
ParameterTypeRequiredDescription
No parameters.
list_account_members Read

List members for a Cloudflare account.

Lua path
app.integrations.cloudflare.list_account_members
Full name
cloudflare.cloudflare_list_account_members
ParameterTypeRequiredDescription
No parameters.
list_account_roles Read

List roles available for a Cloudflare account.

Lua path
app.integrations.cloudflare.list_account_roles
Full name
cloudflare.cloudflare_list_account_roles
ParameterTypeRequiredDescription
No parameters.
list_zones Read

List all Cloudflare zones (domains). Returns zone IDs, names, status, and plan info. Use this to discover zone identifiers needed for DNS and analytics operations.

Lua path
app.integrations.cloudflare.list_zones
Full name
cloudflare.cloudflare_list_zones
ParameterTypeRequiredDescription
name string no Filter by zone name (e.g., "example.com").
status string no Filter by status: active, pending, initializing, moved, deleted, deactivated.
page integer no Page number for pagination (default: 1).
per_page integer no Number of zones per page (default: 20, max: 50).
create_zone Write

Create a Cloudflare zone. Requires name and account object or raw body matching Cloudflare zone create parameters.

Lua path
app.integrations.cloudflare.create_zone
Full name
cloudflare.cloudflare_create_zone
ParameterTypeRequiredDescription
No parameters.
get_zone Read

Get detailed information about a specific Cloudflare zone, including its ID, name, status, nameservers, and plan.

Lua path
app.integrations.cloudflare.get_zone
Full name
cloudflare.cloudflare_get_zone
ParameterTypeRequiredDescription
zone_id string yes The zone identifier (e.g., "023e105f4ecef8ad9ca31a8372d0c353").
edit_zone Write

Edit a Cloudflare zone with PATCH /zones/{zone_id}. Pass changed fields in body.

Lua path
app.integrations.cloudflare.edit_zone
Full name
cloudflare.cloudflare_edit_zone
ParameterTypeRequiredDescription
No parameters.
delete_zone Write

Delete a Cloudflare zone by zone_id.

Lua path
app.integrations.cloudflare.delete_zone
Full name
cloudflare.cloudflare_delete_zone
ParameterTypeRequiredDescription
No parameters.
get_zone_setting Read

Get one Cloudflare zone setting by setting_id, such as ssl, cache_level, or development_mode.

Lua path
app.integrations.cloudflare.get_zone_setting
Full name
cloudflare.cloudflare_get_zone_setting
ParameterTypeRequiredDescription
No parameters.
update_zone_setting Write

Update one Cloudflare zone setting by setting_id. Provide value or raw body.

Lua path
app.integrations.cloudflare.update_zone_setting
Full name
cloudflare.cloudflare_update_zone_setting
ParameterTypeRequiredDescription
No parameters.
purge_cache Write

Purge Cloudflare cache for a zone. Pass purge_everything=true or files/tags/hosts/prefixes in body.

Lua path
app.integrations.cloudflare.purge_cache
Full name
cloudflare.cloudflare_purge_cache
ParameterTypeRequiredDescription
No parameters.
get_analytics Read

Get analytics dashboard data for a Cloudflare zone. Returns HTTP requests, bandwidth, threats, and pageview metrics over a time range.

Lua path
app.integrations.cloudflare.get_analytics
Full name
cloudflare.cloudflare_get_analytics
ParameterTypeRequiredDescription
zone_id string yes The zone identifier.
since string no Start time: ISO 8601 date or relative offset like "-30d", "-7d", "-24h". Default: "-30d".
until string no End time: ISO 8601 date or "now". Default: "now".
continuous string no Whether to include continuous data ("true" or "false"). Default: "true".
list_dns_records Read

List DNS records for a Cloudflare zone. Returns record IDs, types, names, content, TTL, and proxy status.

Lua path
app.integrations.cloudflare.list_dns_records
Full name
cloudflare.cloudflare_list_dns_records
ParameterTypeRequiredDescription
zone_id string yes The zone identifier.
type string no Filter by record type: A, AAAA, CNAME, MX, TXT, NS, SRV, etc.
name string no Filter by record name (e.g., "www.example.com").
content string no Filter by record content (e.g., an IP address).
page integer no Page number for pagination (default: 1).
per_page integer no Number of records per page (default: 20, max: 100).
create_dns_record Write

Create a new DNS record in a Cloudflare zone. Supports A, AAAA, CNAME, MX, TXT, NS, SRV, and other record types.

Lua path
app.integrations.cloudflare.create_dns_record
Full name
cloudflare.cloudflare_create_dns_record
ParameterTypeRequiredDescription
zone_id string yes The zone identifier.
type string yes DNS record type: A, AAAA, CNAME, MX, TXT, NS, SRV, etc.
name string yes DNS record name (e.g., "www.example.com" or "@" for the zone root).
content string yes DNS record content (e.g., "192.0.2.1" for an A record).
ttl integer no Time to live in seconds. Use 1 for automatic ("Auto" TTL). Default: 1.
proxied boolean no Whether the record is proxied through Cloudflare (orange cloud). Default: false.
get_dns_record Read

Get one DNS record in a Cloudflare zone.

Lua path
app.integrations.cloudflare.get_dns_record
Full name
cloudflare.cloudflare_get_dns_record
ParameterTypeRequiredDescription
No parameters.
update_dns_record Write

Replace a DNS record using PUT. Provide type, name, content, and optional ttl/proxied or raw body.

Lua path
app.integrations.cloudflare.update_dns_record
Full name
cloudflare.cloudflare_update_dns_record
ParameterTypeRequiredDescription
No parameters.
patch_dns_record Write

Patch a DNS record using PATCH. Provide changed fields or raw body.

Lua path
app.integrations.cloudflare.patch_dns_record
Full name
cloudflare.cloudflare_patch_dns_record
ParameterTypeRequiredDescription
No parameters.
delete_dns_record Write

Delete one DNS record from a Cloudflare zone.

Lua path
app.integrations.cloudflare.delete_dns_record
Full name
cloudflare.cloudflare_delete_dns_record
ParameterTypeRequiredDescription
No parameters.
export_dns_records Read

Export DNS records for a zone using Cloudflare DNS records export.

Lua path
app.integrations.cloudflare.export_dns_records
Full name
cloudflare.cloudflare_export_dns_records
ParameterTypeRequiredDescription
No parameters.
import_dns_records Write

Import DNS records for a zone. Pass the request body expected by Cloudflare.

Lua path
app.integrations.cloudflare.import_dns_records
Full name
cloudflare.cloudflare_import_dns_records
ParameterTypeRequiredDescription
No parameters.
scan_dns_records Write

Start Cloudflare DNS record scan for a zone.

Lua path
app.integrations.cloudflare.scan_dns_records
Full name
cloudflare.cloudflare_scan_dns_records
ParameterTypeRequiredDescription
No parameters.
review_dns_record_scan Write

Review DNS records discovered by Cloudflare DNS scan.

Lua path
app.integrations.cloudflare.review_dns_record_scan
Full name
cloudflare.cloudflare_review_dns_record_scan
ParameterTypeRequiredDescription
No parameters.
get_dns_settings Read

Get DNS settings for a Cloudflare zone.

Lua path
app.integrations.cloudflare.get_dns_settings
Full name
cloudflare.cloudflare_get_dns_settings
ParameterTypeRequiredDescription
No parameters.
update_dns_settings Write

Update DNS settings for a Cloudflare zone. Pass changed DNS setting fields in body.

Lua path
app.integrations.cloudflare.update_dns_settings
Full name
cloudflare.cloudflare_update_dns_settings
ParameterTypeRequiredDescription
No parameters.
list_page_rules Read

List page rules for a Cloudflare zone. Returns rule IDs, targets, actions, and priority.

Lua path
app.integrations.cloudflare.list_page_rules
Full name
cloudflare.cloudflare_list_page_rules
ParameterTypeRequiredDescription
zone_id string yes The zone identifier.
status string no Filter by status: active, disabled.
page integer no Page number for pagination (default: 1).
per_page integer no Number of rules per page (default: 20).
create_page_rule Write

Create a Cloudflare page rule for a zone. Pass targets/actions/priority/status in body or first-class fields.

Lua path
app.integrations.cloudflare.create_page_rule
Full name
cloudflare.cloudflare_create_page_rule
ParameterTypeRequiredDescription
No parameters.
update_page_rule Write

Update a Cloudflare page rule. Pass changed fields in body or first-class fields.

Lua path
app.integrations.cloudflare.update_page_rule
Full name
cloudflare.cloudflare_update_page_rule
ParameterTypeRequiredDescription
No parameters.
delete_page_rule Write

Delete a Cloudflare page rule.

Lua path
app.integrations.cloudflare.delete_page_rule
Full name
cloudflare.cloudflare_delete_page_rule
ParameterTypeRequiredDescription
No parameters.
list_zone_rulesets Read

List Ruleset Engine rulesets for a Cloudflare zone.

Lua path
app.integrations.cloudflare.list_zone_rulesets
Full name
cloudflare.cloudflare_list_zone_rulesets
ParameterTypeRequiredDescription
No parameters.
get_zone_ruleset Read

Get one Cloudflare zone ruleset.

Lua path
app.integrations.cloudflare.get_zone_ruleset
Full name
cloudflare.cloudflare_get_zone_ruleset
ParameterTypeRequiredDescription
No parameters.
create_zone_ruleset Write

Create a Cloudflare zone ruleset. Pass name, kind, phase, rules, and optional description or raw body.

Lua path
app.integrations.cloudflare.create_zone_ruleset
Full name
cloudflare.cloudflare_create_zone_ruleset
ParameterTypeRequiredDescription
No parameters.
update_zone_ruleset Write

Update a Cloudflare zone ruleset by ruleset_id.

Lua path
app.integrations.cloudflare.update_zone_ruleset
Full name
cloudflare.cloudflare_update_zone_ruleset
ParameterTypeRequiredDescription
No parameters.
delete_zone_ruleset Write

Delete a Cloudflare zone ruleset.

Lua path
app.integrations.cloudflare.delete_zone_ruleset
Full name
cloudflare.cloudflare_delete_zone_ruleset
ParameterTypeRequiredDescription
No parameters.
list_account_rulesets Read

List Ruleset Engine rulesets for a Cloudflare account.

Lua path
app.integrations.cloudflare.list_account_rulesets
Full name
cloudflare.cloudflare_list_account_rulesets
ParameterTypeRequiredDescription
No parameters.
list_kv_namespaces Read

List Workers KV namespaces for a Cloudflare account.

Lua path
app.integrations.cloudflare.list_kv_namespaces
Full name
cloudflare.cloudflare_list_kv_namespaces
ParameterTypeRequiredDescription
No parameters.
create_kv_namespace Write

Create a Workers KV namespace for a Cloudflare account.

Lua path
app.integrations.cloudflare.create_kv_namespace
Full name
cloudflare.cloudflare_create_kv_namespace
ParameterTypeRequiredDescription
No parameters.
delete_kv_namespace Write

Delete a Workers KV namespace.

Lua path
app.integrations.cloudflare.delete_kv_namespace
Full name
cloudflare.cloudflare_delete_kv_namespace
ParameterTypeRequiredDescription
No parameters.
list_kv_keys Read

List keys in a Workers KV namespace.

Lua path
app.integrations.cloudflare.list_kv_keys
Full name
cloudflare.cloudflare_list_kv_keys
ParameterTypeRequiredDescription
No parameters.