Skip to content

monitoring ​

29 endpoints at a glance
MethodPathSummary
GET/monitoring/admin/budget/List All Budgets
POST/monitoring/admin/budget/{owner}/capSet User Cap
GET/monitoring/admin/pipeline-health/Pipeline Health
GET/monitoring/alerts/List Alerts
GET/monitoring/alerts/{alert_id}Get Alert
POST/monitoring/alerts/{alert_id}/ackAck Alert
POST/monitoring/alerts/{alert_id}/closeClose Alert
GET/monitoring/alerts/{alert_id}/narrativeGet Alert Narratives
POST/monitoring/alerts/{alert_id}/narrativeGenerate Alert Narrative
POST/monitoring/alerts/{alert_id}/snoozeSnooze Alert
GET/monitoring/budget/Get My Budget
GET/monitoring/channels/List Channels
POST/monitoring/channels/Create Channel
DELETE/monitoring/channels/{channel_id}Delete Channel
GET/monitoring/channels/{channel_id}Get Channel
PATCH/monitoring/channels/{channel_id}Patch Channel
DELETE/monitoring/checks/{check_id}Delete Check
GET/monitoring/checks/{check_id}Get Check
PATCH/monitoring/checks/{check_id}Patch Check
POST/monitoring/checks/{check_id}/rerunRerun Check
GET/monitoring/checks/{check_id}/results/List Check Results
GET/monitoring/meta/Get Meta
GET/monitoring/targets/List Targets
POST/monitoring/targets/Create Target
DELETE/monitoring/targets/{target_id}Delete Target
GET/monitoring/targets/{target_id}Get Target
PATCH/monitoring/targets/{target_id}Patch Target
GET/monitoring/targets/{target_id}/checks/List Target Checks
POST/monitoring/targets/{target_id}/checks/Create Check

monitoring​


List Targets​

GET
/monitoring/targets/

Parameters​

Header Parameters

authorization
x-api-key

Query Parameters

kind
tag
enabled
limit
Type
integer
Default
500
skip
Type
integer
Default
0
all

Admin-only: include every user's targets.

Type
boolean
Default
false

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Create Target​

POST
/monitoring/targets/

Parameters​

Header Parameters

authorization
x-api-key

Request Body​

application/json
JSON
{
  
"kind": "string",
  
"value": "string",
  
"label": "string",
  
"tags": [
  
  
"string"
  
],
  
"description": "string",
  
"runbook_url": "string",
  
"enabled": true
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Body

Samples​


Get Target​

GET
/monitoring/targets/{target_id}

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

target_id*
Type
string
Required

Query Parameters

all
Type
boolean
Default
false

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Delete Target​

DELETE
/monitoring/targets/{target_id}

Delete a target + cascade-sweep its checks. The substrate
classes are deliberately single-purpose — the route owns the
cross-collection cascade including stopping every UDM that
the swept checks had spawned.

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

target_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Patch Target​

PATCH
/monitoring/targets/{target_id}

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

target_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"label": "string",
  
"tags": [
  
  
"string"
  
],
  
"description": "string",
  
"runbook_url": "string",
  
"enabled": true
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


List Target Checks​

GET
/monitoring/targets/{target_id}/checks/

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

target_id*
Type
string
Required

Query Parameters

enabled
all
Type
boolean
Default
false

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Create Check​

POST
/monitoring/targets/{target_id}/checks/

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

target_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"kind": "string",
  
"config": {
  
  
"additionalProperties": "string"
  
},
  
"every_s": 0,
  
"enabled": true,
  
"flap_threshold": 0
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


Get Check​

GET
/monitoring/checks/{check_id}

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

check_id*
Type
string
Required

Query Parameters

all
Type
boolean
Default
false

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Delete Check​

DELETE
/monitoring/checks/{check_id}

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

check_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Patch Check​

PATCH
/monitoring/checks/{check_id}

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

check_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"config": {
  
  
"additionalProperties": "string"
  
},
  
"every_s": 0,
  
"enabled": true,
  
"flap_threshold": 0
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


Rerun Check​

POST
/monitoring/checks/{check_id}/rerun

Force the check to run on the next worker tick — clears
next_due_ts so the drain loop picks it up regardless of
backoff. Useful after fixing a misconfigured API key, raising
a budget cap, or deploying an executor change: an operator can
poke the check instead of waiting out the unknown-status
backoff (which can be several minutes after a failed spawn).

Owner-scoped: a non-admin can only rerun their own checks.

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

check_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


List Channels​

GET
/monitoring/channels/

Parameters​

Header Parameters

authorization
x-api-key

Query Parameters

kind
enabled
all
Type
boolean
Default
false

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Create Channel​

POST
/monitoring/channels/

Parameters​

Header Parameters

authorization
x-api-key

Request Body​

application/json
JSON
{
  
"kind": "string",
  
"label": "string",
  
"config": {
  
  
"additionalProperties": "string"
  
},
  
"tag_filter": [
  
  
"string"
  
],
  
"severity_filter": [
  
  
"string"
  
],
  
"rate_limit_per_hour": 0,
  
"enabled": true
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Body

Samples​


Get Channel​

GET
/monitoring/channels/{channel_id}

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

channel_id*
Type
string
Required

Query Parameters

all
Type
boolean
Default
false

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Delete Channel​

DELETE
/monitoring/channels/{channel_id}

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

channel_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Patch Channel​

PATCH
/monitoring/channels/{channel_id}

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

channel_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"label": "string",
  
"config": {
  
  
"additionalProperties": "string"
  
},
  
"tag_filter": [
  
  
"string"
  
],
  
"severity_filter": [
  
  
"string"
  
],
  
"rate_limit_per_hour": 0,
  
"enabled": true
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


Get Meta​

GET
/monitoring/meta/

Static catalogue of every kind / check the UI can offer.
Pulled from the substrate's source-of-truth tables so the
frontend doesn't have to duplicate them. Cheap; fine to ship
on every page load.

Parameters​

Header Parameters

authorization
x-api-key

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


List Alerts​

GET
/monitoring/alerts/

Parameters​

Header Parameters

authorization
x-api-key

Query Parameters

target_id
check_id
severity
only_open

true = open alerts only (default), false = closed only, omit for both.

Default
true
limit
Type
integer
Default
200
skip
Type
integer
Default
0
all
Type
boolean
Default
false

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Get Alert​

GET
/monitoring/alerts/{alert_id}

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

alert_id*
Type
string
Required

Query Parameters

all
Type
boolean
Default
false

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Get Alert Narratives​

GET
/monitoring/alerts/{alert_id}/narrative

Stored triage notes for an alert — at most one per model, so a
chat and a reasoner take can be compared. Each carries the evidence
packet it was written from, for audit. Owner-scoped.

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

alert_id*
Type
string
Required

Query Parameters

all
Type
boolean
Default
false

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Generate Alert Narrative​

POST
/monitoring/alerts/{alert_id}/narrative

Write an LLM triage note for one alert (fire-and-forget).

A deterministic evidence packet — the alert, its check and target,
and the recent result history with its failure shape — is computed
first; the model only narrates it, and any draft asserting a figure
the packet can't support is rejected.

Owner-scoped: a non-admin can only narrate their own alerts. Poll
GET for the result. 400 on an unknown model alias or an alert
that isn't visible to this caller.

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

alert_id*
Type
string
Required

Query Parameters

all
Type
boolean
Default
false

Request Body​

application/json
JSON
{
  
"model": "string",
  
"force": false
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


Ack Alert​

POST
/monitoring/alerts/{alert_id}/ack

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

alert_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"note": "string"
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


Snooze Alert​

POST
/monitoring/alerts/{alert_id}/snooze

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

alert_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"until_ts": 0
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


Close Alert​

POST
/monitoring/alerts/{alert_id}/close

Operator-triggered manual close. Distinct from the
auto-close path the state machine takes on a recovery — useful
for known maintenance windows.

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

alert_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"note": "string"
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


List Check Results​

GET
/monitoring/checks/{check_id}/results/

Newest-first time-series for one check. Per-user
owner scope is enforced via the parent check — a non-admin
requesting another user's check_id gets 404.

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

check_id*
Type
string
Required

Query Parameters

since_ts
until_ts
limit
Type
integer
Default
500
all
Type
boolean
Default
false

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Get My Budget​

GET
/monitoring/budget/

Today's UDM-spawn budget for the caller — used / cap so the
UI can warn when a user is approaching their daily cap. Always
scoped to the caller; admin uses /admin/budget/ to see
other users.

Parameters​

Header Parameters

authorization
x-api-key

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Pipeline Health​

GET
/monitoring/admin/pipeline-health/

Notification-pipeline diagnostic: enabled checks, open alerts, and
configured channels rolled up globally and per owner, plus the
recent monitoring_drain delivery stats. Answers "is anything
triggering notifications?" — the per-owner gap field pinpoints
where the chain is empty (checks but no channel, alerts open but no
channel, inbox-only). drain_lookback = recent drain audit rows to
fold (default 60 ≈ last hour).

Parameters​

Header Parameters

authorization
x-api-key

Query Parameters

drain_lookback
Type
integer
Maximum
1440
Minimum
1
Default
60

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


List All Budgets​

GET
/monitoring/admin/budget/

List every user's today-row, sorted by used desc — drives the
admin panel. Includes the deployment default cap so the operator
can see what new users land on.

Parameters​

Header Parameters

authorization
x-api-key

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Set User Cap​

POST
/monitoring/admin/budget/{owner}/cap

Override one user's cap for today. Affects the current UTC
day only — by design, raising a cap is a temporary unblock; if
the user genuinely needs more head-room every day the operator
should bump MONITORING_DEFAULT_DAILY_UDM_SPAWN_CAP and
restart. Returns the persisted row so the UI can re-render the
table without a refetch.

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

owner*
Type
string
Required

Request Body​

application/json
JSON
{
  
"cap": 0
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value
Body

Samples​


Atlas — built on RIPE Atlas data.