Cross-system parallel of GET /systems/{id}/alerts/silences. Returns
every active or pending Alertmanager silence in the caller's scope,
enriched with organization_id (the tenant that owns the silence) and
system_key (extracted from the silence matchers). Expired silences
and silences without a system_key matcher are excluded — only
silences our UI ever creates are addressable.
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.
Requires read:systems permission.
Query parameters
-
Target organization ID(s). Repeat the param for 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. -
Filter silences by one or more system keys (exact match on the
system_keymatcher). Repeat the param for multiple values.
curl \
--request GET 'https://api.your-domain.com/api/alerts/silences' \
--header "Authorization: Bearer $ACCESS_TOKEN"
{
"code": 200,
"message": "silences retrieved successfully",
"data": {
"silences": [
{
"id": "d9f91c6e-1b33-484e-befa-bfb41020e178",
"organization_id": "m4m3mdjdiizs",
"system_key": "NETH-D417-A2C2-7810-43D2-984B-2164-34C1-B22E",
"matchers": [
{
"name": "system_key",
"value": "NETH-D417-A2C2-7810-43D2-984B-2164-34C1-B22E",
"isRegex": false
},
{
"name": "alertname",
"value": "HighCPUUsage",
"isRegex": false
},
{
"name": "severity",
"value": "warning",
"isRegex": false
}
],
"startsAt": "2026-05-12T08:16:36Z",
"endsAt": "2026-05-12T09:16:36Z",
"updatedAt": "2026-05-12T08:16:36Z",
"createdBy": "amelia.foster",
"comment": "muted during maintenance window",
"status": {
"state": "active"
}
}
],
"warnings": []
}
}
{
"code": 401,
"message": "invalid token",
"data": {}
}
{
"code": 403,
"message": "insufficient permissions",
"data": {}
}
{
"code": 500,
"message": "internal server error",
"data": {}
}