Portal / Nodes / Cloudflare / zone/get
zone/get
Retrieve complete details for a specific Cloudflare zone by its Zone ID.
When to Use
- Pre-change status check: Verify the zone status is
active before executing DNS changes, cache purges, or SSL modifications.
- Nameserver retrieval: Retrieve the assigned Cloudflare nameservers to configure at the domain registrar during onboarding.
- Plan validation: Confirm the zone is on a plan that supports a required feature (e.g., Enterprise for cache tag purging) before proceeding.
- Compliance audit: Capture zone creation date and configuration metadata for an asset registry or compliance report.
- Activation monitoring: Poll zone status during domain migration to detect when the zone transitions from
pending to active.
Configuration
Connection
| Field | Type | Required | Description |
ApiToken | string | required | Scoped Cloudflare API Token with Zone.Read permission. Store in BizFirst Credentials Manager. |
Operation Fields
| Field | Type | Required | Description |
ZoneId | string | required | 32-character hexadecimal Zone ID. Find it in Cloudflare Dashboard → your domain → Overview, or via zone/list. |
Sample Configuration
{
"resource": "zone",
"operation": "get",
"connection": {
"ApiToken": "{{ $credentials.cloudflare_readonly }}"
},
"ZoneId": "023e105f4ecef8ad9ca31a8372d0c353"
}
Validation Errors
| Code | Condition | Resolution |
MISSING_API_TOKEN | ApiToken is empty or not configured | Set the ApiToken credential in the connection panel |
MISSING_ZONE_ID | ZoneId field is empty | Provide a valid 32-character hex Zone ID |
UNKNOWN_ERROR | Cloudflare returned 404 (zone not found) or another error | Verify the Zone ID is correct and the token has access to that zone |
Output
Success Port
| Field | Type | Description |
id | string | 32-character hex Zone ID |
name | string | Apex domain name (e.g., example.com) |
status | string | active, pending, initializing, moved, or deleted |
nameservers | array | Cloudflare nameservers assigned to this zone |
originalNameservers | array | Nameservers at the registrar before Cloudflare delegation |
plan | object | Current plan — includes name (Free, Pro, Business, Enterprise) |
type | string | full, partial, or secondary |
activatedOn | string | ISO 8601 timestamp when zone became active |
createdOn | string | ISO 8601 timestamp when zone was created |
modifiedOn | string | ISO 8601 timestamp of last modification |
Error Port
On failure, the error port receives an object with code (error code string) and message (human-readable description).
Sample Output
{
"id": "023e105f4ecef8ad9ca31a8372d0c353",
"name": "example.com",
"status": "active",
"nameservers": ["alice.ns.cloudflare.com", "bob.ns.cloudflare.com"],
"originalNameservers": ["ns1.registrar.com", "ns2.registrar.com"],
"plan": {
"name": "Pro",
"price": 20,
"currency": "USD",
"frequency": "monthly"
},
"type": "full",
"activatedOn": "2024-01-15T10:30:00Z",
"createdOn": "2024-01-14T09:00:00Z",
"modifiedOn": "2025-03-10T14:22:00Z"
}
Expression Reference
| Expression | Returns |
{{ $node.ZoneGet.output.id }} | Zone ID string |
{{ $node.ZoneGet.output.status }} | Zone status string |
{{ $node.ZoneGet.output.nameservers[0] }} | First nameserver hostname |
{{ $node.ZoneGet.output.plan.name }} | Plan name (Free, Pro, Business, Enterprise) |
{{ $node.ZoneGet.output.activatedOn }} | Activation timestamp |
Node Policies & GuardRails
| Policy | Detail |
Use Zone.Read scoped token | This is a read-only operation — do not use an Edit-scoped token unless it is shared with write operations |
| Store ApiToken in Credentials Manager | Never paste the token directly into configuration JSON |
| Validate Zone ID format | Zone ID is exactly 32 hexadecimal characters — verify before using in downstream operations |
| Check status before writes | Branch on status === "active" using an IfCondition node before any destructive downstream operation |
| Do not poll in tight loops | If waiting for activation, use a Delay node between retries to stay within rate limits |
Examples
Example 1: Gate Deployment on Zone Status
In a deployment workflow, call zone/get and add an IfCondition node: if status !== "active", route to a notification node and stop. Only proceed to DNS/cache operations when the zone is confirmed active.
Example 2: Capture Nameservers for Registrar Configuration
During tenant onboarding, call zone/get after zone creation. Extract nameservers[0] and nameservers[1] and send them to the customer via an Email node with instructions to update their registrar settings.
Example 3: Plan-Feature Guard
Before executing a cache/purgeByTag operation, call zone/get and check plan.name === "Enterprise". If the zone is not on Enterprise, route to an error handler that notifies the operator — cache tag purging requires Enterprise.