Self-assigns the active alert identified by fingerprint to the
authenticated caller ("I'm working on this"). Orthogonal to silences:
an assigned alert keeps notifying unless it is also muted.
Semantics:
- Self-assign only: the assignee is always the caller; there is no "assign to user X".
- Takeover without conflict: if the alert is already assigned to
someone else, the assignment is replaced and the
assignedtimeline event carriesreassigned_fromwith the previous assignee's name. Any confirmation step is frontend-only. - No manual unassign: the assignment is auto-released when collect
receives the resolved webhook for the fingerprint (a system-driven
unassignedevent is appended to the timeline). This is also why the alert must still be firing in Mimir: assigning a resolved alert would create a row nothing ever cleans up (404 otherwise).
organization_id must be the alert's organization_id label (the
customer org). The alert is looked up in the Mimir tenant that owns the
org's alerting and its label must match: a caller authorized for org A
cannot act on org B's alert sharing the same reseller tenant.
Requires manage:systems permission on an organization in the caller's
hierarchy. Customers are pinned to their own organization.
Query parameters
-
The alert's organization (its organization_id label). Required for Owner/Distributor/Reseller; ignored for Customer (pinned).
Body
Required
-
Alertmanager fingerprint of the active alert
Format should match the following pattern:
^[A-Za-z0-9._:-]{1,128}$. -
Optional note taken together with the assignment. Embedded in the
assignedtimeline event (details.note) so the action renders as a single block; standalone notes posted via POST /alerts/notes stay separatenote_addedevents. Blank values are ignored.Maximum length is
2000.
curl \
--request POST 'https://api.your-domain.com/api/alerts/assignment' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '"{\n \"fingerprint\": \"79b1c79b3211797c\",\n \"note\": \"Me ne occupo io: verifico la connettività del firewall\"\n}"'
{
"fingerprint": "79b1c79b3211797c",
"note": "Me ne occupo io: verifico la connettività del firewall"
}
{
"code": 200,
"message": "alert assigned successfully",
"data": {
"assignment": {
"organization_id": "qpku6m1y2ne8",
"fingerprint": "bd50123c468631b0",
"assigned_user_id": "vuoarc4wub5o",
"assigned_user_name": "DistAdmin",
"assigned_user_org_id": "ig2m8ux02v57",
"assigned_user_org_name": "e2e2-dist",
"assigned_at": "2026-07-14T16:19:12.125306Z"
}
}
}
{
"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": {}
}