Skip to content

Create a node

POST
/nodes
curl --request POST \
--url https://example.com/api/v1/nodes \
--header 'Content-Type: application/json' \
--data '{ "description": "example", "display_name": "example", "location": "example", "name": "example" }'

Registers an edge node server-side (day-one enrollment: create, then :enroll to mint its token). Gated by node:create.

Media type application/json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
description
string
display_name

Operator label; falls back to the name when empty

string
location

Optional location the node sits in, by name or id (descriptive placement, not scope)

string
name
required

Globally unique node name (also its NATS subject token, so no dots or whitespace)

string
>= 1 characters

Created

Media type application/json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
description
string
display_name
string
effective_tags

The resolved effective tags (key -> winning value) on this node: its direct bindings plus propagating platform tags. For the Tags column and the blade pills.

object
key
additional properties
string
enrolled
required
boolean
enrolled_at
string format: date-time
last_heartbeat_at
string format: date-time
location

The location the node sits in (descriptive placement, not scope)

string
location_id

The location’s id; the stable form of location

string
name
required
string
Example
{
"$schema": "/api/v1/schemas/NodeBody.json"
}

Error

Media type application/problem+json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
detail

A human-readable explanation specific to this occurrence of the problem.

string
errors

Optional list of individual error details

Array<object> | null
object
location

Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’

string
message

Error message text

string
value

The value at the given location

instance

A URI reference that identifies the specific occurrence of the problem.

string format: uri
status

HTTP status code

integer format: int64
title

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

string
type

A URI reference to human-readable documentation for the error.

string format: uri
default: about:blank
Example
{
"$schema": "/api/v1/schemas/ErrorModel.json",
"detail": "Property foo is required but is missing.",
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "about:blank"
}