Input & Output
Output ports, DNS record object schema, zone object schema, and Cloudflare API error codes.
Output Ports
| Port | Trigger | Description |
|---|---|---|
| success | Cloudflare API returned 2xx | Operation completed successfully. All response data is available in the output object. |
| error | API error or network failure | The Cloudflare API returned an error code, the API Token was invalid or lacked permissions, or a network failure occurred. The error object includes Cloudflare error codes and messages. |
Zone Object Schema
Returned by zone/list (as array items) and zone/get.
| Field | Type | Description |
|---|---|---|
id | string | Cloudflare Zone ID (32-character hex). Use this as ZoneId in all zone-scoped operations. |
name | string | The domain name, e.g. example.com. |
status | string | Zone status. Values: active, pending, initializing, moved, deleted. |
nameservers | array | Array of Cloudflare nameserver hostnames assigned to this zone. Example: ["ada.ns.cloudflare.com", "lee.ns.cloudflare.com"]. |
original_nameservers | array | Nameservers before the domain was delegated to Cloudflare. |
plan | object | The Cloudflare plan for the zone. Contains id, name (e.g. Free Website), and price. |
created_on | string | ISO 8601 timestamp when the zone was added to Cloudflare. |
modified_on | string | ISO 8601 timestamp of last modification. |
paused | boolean | When true, Cloudflare is not proxying or protecting the zone. Traffic goes directly to origin. |
type | string | Zone type. full (Cloudflare-authoritative) or partial (CNAME setup). |
Example: zone/list Output
[
{
"id": "023e105f4ecef8ad9ca31a8372d0c353",
"name": "example.com",
"status": "active",
"paused": false,
"type": "full",
"nameservers": ["ada.ns.cloudflare.com", "lee.ns.cloudflare.com"],
"plan": { "id": "0feeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "name": "Free Website", "price": 0 },
"created_on": "2024-01-15T09:22:00Z",
"modified_on": "2025-03-10T14:05:31Z"
}
]
DNS Record Object Schema
Returned by dns/list (as array items), dns/get, dns/create, and dns/update.
| Field | Type | Description |
|---|---|---|
id | string | DNS record ID (32-character hex). Use as RecordId in get/update/delete operations. |
zone_id | string | The Zone ID this record belongs to. |
zone_name | string | The domain name of the zone. |
type | string | Record type: A, AAAA, CNAME, MX, TXT, SRV, NS, etc. |
name | string | Full DNS name of the record (always fully qualified). Example: api.example.com. |
content | string | Record value — IP address, hostname, or text string depending on type. |
ttl | integer | TTL in seconds. Value 1 means Automatic (Cloudflare-managed TTL). |
proxied | boolean | Whether traffic to this record is proxied through Cloudflare. |
priority | integer | Priority for MX and SRV records. Lower value = higher priority. |
created_on | string | ISO 8601 timestamp when the record was created. |
modified_on | string | ISO 8601 timestamp of last modification. |
Example: dns/create Output
{
"id": "372e67954025e0ba6aaa6d586b9e0b59",
"zone_id": "023e105f4ecef8ad9ca31a8372d0c353",
"zone_name": "example.com",
"type": "A",
"name": "api.example.com",
"content": "198.51.100.42",
"ttl": 1,
"proxied": true,
"created_on": "2025-05-23T10:00:00Z",
"modified_on": "2025-05-23T10:00:00Z"
}
SSL Certificate Object Schema
Returned by ssl/listCerts (as array items) and ssl/getCert.
| Field | Type | Description |
|---|---|---|
id | string | Certificate ID. Use as CertificateId in getCert/deleteCert. |
type | string | Certificate type: universal or dedicated_custom. |
status | string | Certificate status: active, pending_validation, pending_issuance, expired. |
hosts | array | Hostnames covered by the certificate. |
expires_on | string | ISO 8601 expiry timestamp. Use in a scheduled workflow to trigger cert renewal alerts. |
issuer | string | Certificate authority name. |
Cache Purge Output
Returned by cache/purgeByUrl, cache/purgeByTag, cache/purgeAll, and zone/purgeAll.
{
"id": "9a7806061c88ada191ed06f989cc3dac"
}
The id field is the purge job identifier. Cloudflare cache purges propagate within seconds across all edge PoPs. No polling is required — the response confirms the purge has been queued.
Cloudflare Error Codes
When an operation routes to the error port, the output object includes errors (array) and messages (array). Each error has a code integer and a message string.
| Error Code | Constant | Meaning & Common Cause |
|---|---|---|
1000 | INVALID_ZONE_ID | The ZoneId is malformed or does not exist in the account accessible to the provided API Token. |
1003 | INVALID_OR_MISSING_ZONE | The zone was not found. Check that the ZoneId belongs to the account associated with the token. |
7000 | DNS_RECORD_NOT_FOUND | The specified RecordId does not exist in the zone. |
9003 | MISSING_REQUIRED_PARAMETER | A required parameter (e.g. Name or Content in dns/create) was omitted. |
9109 | INVALID_DNS_RECORD_TYPE | The Type field contains an unsupported or misspelled record type. Valid values: A, AAAA, CNAME, MX, TXT, SRV, NS. |
9102 | DNS_RECORD_ALREADY_EXISTS | A record with the same name, type, and content already exists in the zone. |
6003 | INVALID_API_TOKEN | The API Token is invalid, expired, revoked, or lacks the required permission scope for this operation. |
10000 | CACHE_PURGE_URL_INVALID | One or more URLs in the Urls array are not valid fully-qualified URLs, or do not belong to the specified zone. |
1200 | SSL_MODE_NOT_SUPPORTED | The requested SSL mode is not supported for the zone's current plan or configuration. |
Accessing output downstream: If your Cloudflare node is named
createDnsRecord, access the new record ID via {{ nodes.createDnsRecord.output.id }} and the record content via {{ nodes.createDnsRecord.output.content }}.
Error Output Schema
{
"success": false,
"errors": [
{
"code": 9109,
"message": "Invalid DNS record type 'ANAME'. Valid types are: A, AAAA, CNAME, MX, TXT, SRV, NS."
}
],
"messages": []
}