get_node_status
const url = 'https://example.com/api/v1/nodes/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/status';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/v1/nodes/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/status \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Node id
Responses
Section titled “Responses”The node’s display state and the alerts attributed to it
One node’s live status: its display state plus the alerts currently attributed to it, so node detail can show why it is down without re-deriving from the list.
object
A single alert produced by the engine.
object
When it fired (Unix ms, UTC).
Numeric breach detail for a threshold alert; None for a liveness alert.
object
Which way the metric crossed its bound.
The bound crossed for the committed severity, if the rule defines one at that level.
Observed sample value that committed the transition.
The check that produced it.
Whether the underlying check is currently flapping.
Metric the check measured (e.g. "icmp_rtt_ms"; the liveness sentinel for up/down).
Carried for the history log + notification payload so a human can read what fired —
not part of alert identity (dedup/grouping ignore it).
What the alert is about: a node’s UUID, or pool:<name> for a poller-pool alert.
Severity (derived from the committed state).
The committed state that triggered the alert.
Stable identifier for a monitored node.
A UUID, not a name or address — both of which can change over a node’s life.
The current state of a monitored node or check.
Example
{ "alerts": [ { "breach": { "direction": "above" }, "severity": "info", "state": "ok" } ], "state": "ok"}No valid bearer token
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
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}Role lacks the View permission
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
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}