Incidents auflisten
Liefert eine gefilterte, cursor-paginierte Liste der Incident-Management-Incidents deiner Organisation.
GET /api/im/incidents
Liefert eine gefilterte, cursor-paginierte Liste der Incidents deiner Organisation. Jeder Eintrag trägt die Felder des Incidents selbst und dazu eine kleine, seitenweit aufgelöste Ergänzung: die primäre Zuweisung, die Personen hinter den Lebenszyklus-Spalten und die Alert-Aktivität des Incidents (siehe Aufgelöste Personen weiter unten). Die vollständigen Alerts, Timeline-Events und Zuweisungen eines Incidents liefert der Endpunkt Incident abrufen.
Authentifizierung
Erfordert eine Session oder einen API-Token mit IM-Zugriff (Rolle admin, editor oder responder; ein organisationsweiter API-Token funktioniert ebenfalls). Incident Management muss für die Organisation aktiviert sein.
Query-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
status | string, wiederholbar | Filter nach Status. Ein oder mehrere von triggered, acknowledged, investigating, identified, monitoring, resolved, merged. |
severity | string, wiederholbar | Filter nach Schweregrad. Ein oder mehrere von sev1, sev2, sev3, sev4. |
teamId | number, wiederholbar | Filter nach besitzendem Team. |
customerId | number, wiederholbar | Filter nach dem zugeordneten Kunden des Incidents. |
sourceId | number, wiederholbar | Filter nach primärer Alert-Source. |
assignedUserId | string | Nur Incidents mit einer aktiven Zuweisung (beliebige Rolle) an diese User-ID. |
onCall | boolean (true/false/1/0) | true beschränkt auf Incidents, die einem Team gehören, für das du gerade On-Call bist. Bist du für kein Team On-Call, liefert das eine leere Seite. false oder weggelassen wendet keinen On-Call-Filter an. |
from | ISO-8601-Datum/Zeit | Nur Incidents, die zu diesem Zeitpunkt oder später ausgelöst wurden. |
to | ISO-8601-Datum/Zeit | Nur Incidents, die zu diesem Zeitpunkt oder früher ausgelöst wurden. |
q | string | Volltextsuche im Incident-Titel. Nur ganze Wörter, keine Präfixsuche. |
limit | number | Seitengröße. Standard 50, maximal 100. |
cursor | string | Fortsetzungs-Token aus dem nextCursor einer vorherigen Antwort. Als undurchsichtig behandeln: exakt zurückgeben, nicht selbst konstruieren. |
Ein wiederholbarer Parameter akzeptiert einen wiederholten Query-Key, z. B. status=triggered&status=acknowledged.
Beispiel (cURL)
curl -X GET "$BASE_URL/api/im/incidents?status=triggered&status=acknowledged&severity=sev1&limit=25" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"Antwort (Response)
{
"items": [
{
"id": 42,
"organizationId": 1,
"teamId": 3,
"title": "Database connection pool exhausted",
"customerId": null,
"primarySourceId": 7,
"severity": "sev1",
"severityManual": false,
"status": "triggered",
"mergedIntoId": null,
"escalationPolicyId": 5,
"currentTier": 1,
"escalationEpoch": 0,
"acknowledgedBy": "MFcTjWmYq2LpzR8vK1sXo",
"acknowledgedAt": "2026-07-17T09:15:31.000Z",
"snoozedUntil": null,
"autoResolve": true,
"resolvedBy": null,
"resolveNote": null,
"createdBy": null,
"sourceKind": "alert",
"triggeredAt": "2026-07-17T09:12:00.000Z",
"resolvedAt": null,
"assignee": {
"userId": "MFcTjWmYq2LpzR8vK1sXo",
"name": "Grace Hopper",
"role": "commander",
"image": "/api/assets/avatar/MFcTjWmYq2LpzR8vK1sXo"
},
"createdByUser": null,
"acknowledgedByUser": {
"userId": "MFcTjWmYq2LpzR8vK1sXo",
"name": "Grace Hopper",
"image": "/api/assets/avatar/MFcTjWmYq2LpzR8vK1sXo"
},
"resolvedByUser": null,
"lastAlertAt": "2026-07-17T09:41:00.000Z",
"alertDuplicateCount": 3
}
],
"nextCursor": "1752743520000:42"
}nextCursor ist null auf der letzten Seite. Übergib ihn als cursor-Query-Parameter, um die nächste Seite zu laden.
lastAlertAt ist das jüngste alertbezogene Timeline-Event des Incidents (null, wenn es keines gibt), alertDuplicateCount die Zahl der Wiederholungen, die seine Alerts per Deduplizierung aufgefangen haben. Beides steht in keiner im_incident-Spalte und wird deshalb getrennt ausgewiesen.
Aufgelöste Personen
assignee ist die primäre Rolleninhaberin des Incidents (commander vor tech_lead vor comms vor assignee) oder null, wenn niemand eine Rolle darin hält.
createdByUser, acknowledgedByUser und resolvedByUser sind die Personen hinter den Benutzer-IDs in createdBy, acknowledgedBy und resolvedBy derselben Zeile. Jedes Feld ist null, wenn die zugehörige ID null ist.
Alle diese Angaben löst der Server in einer einzigen gebündelten, auf deine Organisation eingegrenzten Abfrage für die gesamte Seite auf:
nameist der Anzeigename der Person, ersatzweise ihre E-Mail-Adresse, wenn im Profil kein Name hinterlegt ist.nameistnull, wenn die ID zu einer Person außerhalb deiner Organisation gehört, etwa zu einer organisationsübergreifend handelnden Plattform-Administration oder zu einem inzwischen gelöschten Konto. Zeige dafür einen neutralen Platzhalter an. Die API gibt bewusst keinen Namen heraus, den du nicht sehen darfst, und die rohe Benutzer-ID ist keine Beschriftung.imageist die Auslieferungs-URL des Profilbilds odernull, wenn die Person keines hat. Es ist ein autorisierender Pfad dieser API und keine öffentliche Bucket-URL, muss also mit denselben Zugangsdaten abgerufen werden.
Häufige Fehler
401 Unauthorizedwenn du nicht authentifiziert bist403 Forbidden(imAccessDenied) bei Verwendung eines kunden-gescopten Tokens, oder wenn deine Session keine IM-berechtigte Rolle hat403 Forbidden(imNotEnabled) wenn Incident Management für die Organisation nicht aktiviert ist400 Bad Request(invalidRequestBody) wenn ein Filterwert ungültig ist, z. B. ein unbekannterstatus/severity, ein nicht-numerischerteamId/customerId/sourceId, ein nicht parsbarerfrom/to/cursor, oder einlimitaußerhalb des zulässigen Bereichs