Retrieves active alerts from Mimir for the caller's scope, paginated. Each
alert is enriched with a system object (name, type) looked up from the
local systems table, so the UI can render the system column without an
extra round-trip per row.
Sortable by starts_at (default desc), severity (criticality rank: critical
warning > info),
alertname, orstatus(Alertmanager state).fingerprintis used as a stable tiebreaker so pagination doesn't shift between requests.
Scope follows the same three modes as /alerts/totals:
organization_idomitted → caller's full hierarchy (cross-tenant fan-out).organization_id=X→ single tenantX.organization_id=X&include=descendants→Xplus its sub-tree.
All filter params support multiple values (repeat the param): values within
the same filter are matched as OR; different filters AND together. Example:
?severity=critical&severity=warning&alertname=CVE-2024-1234 returns
CVE-2024-1234 alerts that are critical or warning.
Per-tenant failures during fan-out (timeout, 5xx) are non-fatal: the rest of the
result is returned and the failure is reported in the warnings array.
Query parameters
-
Target organization ID(s). Repeat the param to pass multiple values. Optional for all roles except Customer (where it is ignored).
-
Set to
descendantstogether withorganization_idto expand each value to its sub-tree.Value is
descendants. -
1-based page number.
Minimum value is
1. Default value is1. -
Page size. Default 50, max 100.
Minimum value is
1, maximum value is100. Default value is50. -
Sort column (allowlist).
Values are
starts_at,severity,alertname, orstatus. Default value isstarts_at. -
Values are
ascordesc. Default value isdesc. -
Filter alerts by Alertmanager state. Supports multiple values.
Values are
active,suppressed, orunprocessed. -
Filter alerts by severity label. Supports multiple values.
Values are
critical,warning, orinfo. -
Filter alerts by system_key label. Supports multiple values.
-
Filter alerts by alertname label (the alert "type" — e.g.
HighCPU,DiskFull,CVE-2024-1234). Supports multiple values.
curl \
--request GET 'https://api.your-domain.com/api/alerts' \
--header "Authorization: Bearer $ACCESS_TOKEN"
{
"code": 200,
"message": "alerts retrieved successfully",
"data": {
"alerts": [
{
"fingerprint": "0a9d04bb6eed523f",
"labels": {
"alertname": "DiskFilling",
"severity": "warning",
"system_id": "e4eb4844-46f6-448c-8279-7cfedf5e1037",
"system_key": "NETH-D417-A2C2-7810-43D2-984B-2164-34C1-B22E",
"system_name": "test-sys",
"system_type": "ns8"
},
"annotations": {
"summary": "/var is 92% full on test-sys",
"description": "Disk usage exceeded the warning threshold."
},
"status": {
"state": "active",
"silencedBy": [],
"inhibitedBy": []
},
"startsAt": "2026-05-12T08:14:00Z",
"endsAt": "2026-05-12T08:44:00Z"
}
],
"pagination": {
"page": 1,
"page_size": 50,
"total_count": 1,
"total_pages": 1,
"has_next": false,
"has_prev": false
},
"warnings": []
}
}
{
"code": 200,
"message": "alerts retrieved successfully",
"data": {
"alerts": [],
"pagination": {
"page": 1,
"page_size": 50,
"total_count": 0,
"total_pages": 0,
"has_next": false,
"has_prev": false
},
"warnings": [
"org pt8gqs6y5wpr: context deadline exceeded"
]
}
}
{
"code": 400,
"message": "validation failed",
"data": {
"type": "validation_error",
"errors": [
{
"key": "username",
"message": "required",
"value": "string"
}
]
}
}
{
"code": 401,
"message": "invalid token",
"data": {}
}
{
"code": 403,
"message": "insufficient permissions",
"data": {}
}
{
"code": 500,
"message": "internal server error",
"data": {}
}