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", "label": "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

Free-form operator notes about the node

string
label

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 (lowercase letters, digits, and hyphens); it is also the node’s NATS subject token, which is why the rule forbids a dot

string
>= 1 characters <= 100 characters /^[a-z0-9][a-z0-9-]*$/

Created

Media type application/json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
description
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
label
string
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"
}