Version 2.1.1792967583 · latest Download OpenAPI Markdown

Nodes

Approved edge nodes and sub-IPs; primary nodes self-enroll with an enrollment token, while sub-IPs are added manually by an admin.

nodesNode schedulingAuthentication: Admin only8 endpoints

List nodes

GET/api/v2/nodes
Authentication: Admin only

Query parameters

FieldTypeRequiredDescription
pageinteger— Page number, starting from 1
Default 1
page_sizeinteger— Items per page
Default 20
sortstring— Sort fields, comma-separated; prefix `-` for descending, e.g. `-created_at,id`

Create node

POST/api/v2/nodes
Authentication: Admin only

Request body application/json

FieldTypeRequiredDescription
areastring— Area (display only, never sent to nodes); empty = not set. Sub-IPs take the primary node's value.
bandwidth_mbpsinteger— Node bandwidth in Mbps (display only, unrelated to monitor.bw_limit_mbps); 0 = not set. Sub-IPs take the primary node's value.
desstring— Description
enabledboolean— Whether enabled
ipstring— Node IP address (IPv4 or IPv6).
monitorNodeMonitor— Node monitor probe settings (the control plane probes this IP at the interval configured in monitor.node).
namestringRequired Name
parent_idinteger— Primary node that owns this sub-IP; null = primary node.
region_idinteger— Region ID
service_expirestring— Server service expiry date YYYY-MM-DD (used for the home-page expiry reminder; never auto-disables); null = not set, no reminder. Sub-IPs take the primary node's value.
service_startstring— Server service start date YYYY-MM-DD (display only); null = not set. Sub-IPs take the primary node's value.

Get node

GET/api/v2/nodes/{id}
Authentication: Admin only

Query parameters

FieldTypeRequiredDescription
capacityboolean— When true, include capacity (primary nodes only; null when no system info is available).

Update node

PUT/api/v2/nodes/{id}
Authentication: Admin only

Request body application/json

FieldTypeRequiredDescription
areastring— Area (display only, never sent to nodes); empty = not set. Sub-IPs take the primary node's value.
bandwidth_mbpsinteger— Node bandwidth in Mbps (display only, unrelated to monitor.bw_limit_mbps); 0 = not set. Sub-IPs take the primary node's value.
desstring— Description
enabledboolean— Whether enabled
ipstring— Node IP address (IPv4 or IPv6).
monitorNodeMonitor— Node monitor probe settings (the control plane probes this IP at the interval configured in monitor.node).
namestring— Name
parent_idinteger— Primary node that owns this sub-IP; null = primary node.
region_idinteger— Region ID
service_expirestring— Server service expiry date YYYY-MM-DD (used for the home-page expiry reminder; never auto-disables); null = not set, no reminder. Sub-IPs take the primary node's value.
service_startstring— Server service start date YYYY-MM-DD (display only); null = not set. Sub-IPs take the primary node's value.

Delete node

DELETE/api/v2/nodes/{id}
Authentication: Admin only

Re-push the config a node rolled back

POST/api/v2/nodes/{id}/config-readmit
Authentication: Admin only

Node NIC addresses

GET/api/v2/nodes/{id}/local-addrs
Authentication: Admin only

Move node back to pending

POST/api/v2/nodes/{id}/to-pending
Authentication: Admin only

Nodes object

FieldTypeRequiredDescription
areastring— Area (display only, never sent to nodes); empty = not set. Sub-IPs take the primary node's value.
bandwidth_mbpsinteger— Node bandwidth in Mbps (display only, unrelated to monitor.bw_limit_mbps); 0 = not set. Sub-IPs take the primary node's value.
capacityNodeCapacity— Node memory capacity (read-only, only returned by GET /nodes/{id}?capacity=true): per-site resident cost = locations × 28.1KB + HTTPS ratio × 25.5KB, budget = memory MiB × 0.25 / 2 − 28MiB, limit = budget / per-site cost. null = no system info for the node or memory total missing.
read-only
cert_expirystring— Expiry time of the most recently issued certificate; null = no certificate issued yet (or a sub-IP).
created_atstring— Created at
read-only
desstring— Description
disable_bystring— Disable source (manual = admin; monitor = auto-disabled by node monitoring and re-enabled once probes recover; bandwidth = auto-disabled when outbound bandwidth exceeds monitor.bw_limit_mbps and re-enabled when it drops back); empty when enabled.
enabledboolean— Whether enabled
enrolled_atstring— Time the node enrolled; null for a manually added sub-IP.
hintsstring[]— Hints (e.g. NIC addresses could not be obtained).
hostnamestring— Node hostname, reported at enrollment.
idinteger— Record ID
read-only
ipstring— Node IP address (IPv4 or IPv6).
monitorNodeMonitor— Node monitor probe settings (the control plane probes this IP at the interval configured in monitor.node).
namestring— Name
opsNodeOps— Node operations status (read-only, from heartbeats): online, whether the config lags behind the latest published version, and clock sync. Sub-IPs follow their primary node.
read-only
parent_idinteger— Primary node that owns this sub-IP; null = primary node.
region_idinteger— Region ID
rolestring— Node role: edge for an edge node, l2 for a second-tier cache node.
Values ["edge","l2"]
service_expirestring— Server service expiry date YYYY-MM-DD (used for the home-page expiry reminder; never auto-disables); null = not set, no reminder. Sub-IPs take the primary node's value.
service_startstring— Server service start date YYYY-MM-DD (display only); null = not set. Sub-IPs take the primary node's value.
statusstring— ok = result available; pending = command queued, fetch again later; unknown = node offline.
Values ["ok","pending","unknown"]
updated_atstring— Updated at
read-only
v4string[]— IPv4 addresses on the node's NICs.
v6string[]— IPv6 addresses on the node's NICs.