コンテンツにスキップ

get_node

GET
/api/v1/nodes/{node_id}
curl --request GET \
--url https://example.com/api/v1/nodes/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>'
node_id
required
string format: uuid

Node id

The node’s configuration, bindings and resolved kind

Media typeapplication/json

One node’s configuration detail, including its bindings (profile/credential/parent) so the node-detail page can show and edit them. Live mode only (PostgreSQL inventory).

object
address
required
string
credential_id
string | null format: uuid
dns_check
One of:
null
group_id

The group this node belongs to; null ⇒ ungrouped.

string | null format: uuid
id
required

Stable identifier for a monitored node.

A UUID, not a name or address — both of which can change over a node’s life.

string format: uuid
kind
required

What this node is — the kind the scheduler actually polls it as, resolved by the one precedence in [NodeKind::resolve].

The three configs below are the raw rows, and a node is not guaranteed to carry only one: the API edge refuses a second, but rows predating that guard exist. Reading the configs and concluding a kind from whichever is non-null is how the node page came to show a URL-monitor health card for a node the poller was treating as a Meraki device. Branch on this instead.

string
Allowed values: meraki url dns device
meraki_device
One of:
null
model
string | null
name
required
string
parent_id
string | null format: uuid
pool

The node’s own poll-pool (ADR-009/020); null ⇒ it inherits from its folder, else the default pool. Deliberately the raw stored value, not the effective one, so the edit form can tell an explicit assignment from an inherited one — the effective pool (and which poller currently holds the node) comes from GET /nodes/:id/assignment.

string | null
profile_id
string | null format: uuid
url_check
One of:
null
vendor

Descriptive maker/model, editable from the node detail.

string | null
Example
{
"dns_check": {
"record_type": "A"
},
"kind": "meraki",
"url_check": {
"body_match": {
"mode": "contains"
},
"expected_status": {
"kind": "two_xx"
},
"method": "GET"
}
}

No valid bearer token

Media typeapplication/json

The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies undescribed — a client that has to guess the failure shape ends up parsing the success shape and reading undefined.

object
error
required
object
code
required

Stable machine-readable code. Clients branch on this, never on the message.

string
message
required

Operator-facing sentence. Safe to display; never carries an internal error’s own text.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example"
}
}

Role lacks the View permission

Media typeapplication/json

The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies undescribed — a client that has to guess the failure shape ends up parsing the success shape and reading undefined.

object
error
required
object
code
required

Stable machine-readable code. Clients branch on this, never on the message.

string
message
required

Operator-facing sentence. Safe to display; never carries an internal error’s own text.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example"
}
}

No such node, or this deployment has no inventory

Media typeapplication/json

The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies undescribed — a client that has to guess the failure shape ends up parsing the success shape and reading undefined.

object
error
required
object
code
required

Stable machine-readable code. Clients branch on this, never on the message.

string
message
required

Operator-facing sentence. Safe to display; never carries an internal error’s own text.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example"
}
}