Skip to content

ack_alert

POST
/api/v1/alerts/ack
curl --request POST \
--url https://example.com/api/v1/alerts/ack \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "acked": true, "at_unix_ms": 1, "by": "example", "check": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "node": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "note": "example", "severity": "info", "source": "example", "subject": "example" }'
Media typeapplication/json

Inbound ack reflection. An external incident tool mirrors ack state in by the dedup identity (subject, check, severity); acked:false clears it. AckAlerts-gated; the mutating-request middleware records the audit entry.

object
acked

true = acked (upsert), false = cleared (delete). Defaults to true.

boolean
at_unix_ms

When the external tool recorded the ack (Unix ms, UTC); defaults to now.

integer | null format: int64
by

External actor reference (id / handle) — never a secret.

string | null
check
required
string format: uuid
node

The node the alert is about. Omit it and send subject instead for an alert about something other than a node (a poller pool). Exactly one of the two is required.

string | null format: uuid
note

Optional free-text note from the external tool.

string | null
severity
required

How serious an alert is. Variants are declared low → high so the derived Ord ranks Critical above Warning above Info.

string
Allowed values: info warning critical
source

Originating tool: pagerduty | jsm | manual | …

string | null
subject

The alert’s subject in its flat form — a node’s UUID, or pool:<name>. This is the value the alert’s own node field carries, so an integration can echo back what it received.

string | null

The ack was recorded (or cleared) and broadcast

Media typeapplication/json

What an ack call reports back: the new state, and the stored view when acknowledging.

object
ack
One of:
null
acked
required
boolean
Examplegenerated
{
"ack": {
"at_unix_ms": 1,
"by": "example",
"note": "example",
"source": "example"
},
"acked": true
}

Neither node nor a readable subject was supplied

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 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 alert-acknowledgement 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"
}
}

The subject is outside the caller’s group scope

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"
}
}

This deployment has no ack store

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"
}
}