Incident erstellen
Erstellt einen Incident-Management-Incident für ein Team von Hand; die Eskalation startet kurz nach dem Anlegen, mit demselben Paging-Verhalten wie bei einem Incident aus einem Alert.
POST /api/im/incidents
Erstellt einen Incident von Hand, außerhalb der Alert-Ingest-Pipeline, etwa für etwas, das ein Mensch vor jedem Monitoring-Tool bemerkt hat. Ein manuell erstellter Incident ist kein Incident zweiter Klasse: Tier 1 der Eskalation des Teams wird kurz nach dem Anlegen scharf geschaltet, genau wie bei einem Incident aus einem eingespeisten Alert. Das passiert erst nach dieser Antwort, die Antwort zeigt also den Incident-Datensatz so, wie er gespeichert wurde, bevor die Eskalation beginnt (siehe currentTier unten).
Authentifizierung
Jede IM-berechtigte Rolle (admin, editor, responder) oder ein organisationsweiter API-Token, siehe Authentifizierung. Incident Management muss für die Organisation aktiviert sein.
Zum Anlegen brauchst du zusätzlich die Schreibberechtigung für das Ziel-Team: Organisations-admin oder Team-Admin dieses Teams (Team-Mitglied mit imRole: "admin"). Ein organisationsweiter API-Token gilt dabei als Organisations-Admin.
Anfrage (Request Body)
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
teamId | number | Ja | Das Team, dem der Incident gehört und dessen Eskalations-Tiers Personen alarmieren. Muss zu deiner Organisation gehören. |
title | string | Ja | Titel des Incidents, nicht leer, höchstens 10.000 Zeichen. |
severity | string | Ja | Einer von sev1, sev2, sev3, sev4. Ein manueller Incident hat keinen Alert-Strom, aus dem sich der Schweregrad ableiten ließe, er wird deshalb immer mit severityManual: true angelegt. |
customerId | number oder null | Nein | Ordnet den Incident einem Kunden zu. Muss, falls angegeben, zu deiner Organisation gehören. |
Beispiel (cURL)
curl -X POST "$BASE_URL/api/im/incidents" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"teamId": 3,
"title": "Database connection pool exhausted",
"severity": "sev1"
}'Antwort (Response)
200 OK: der neu angelegte Incident-Datensatz (gleiche Form wie die items von Incidents auflisten, ohne die Ergänzungsfelder).
{
"id": 42,
"organizationId": 1,
"teamId": 3,
"title": "Database connection pool exhausted",
"customerId": null,
"primarySourceId": null,
"severity": "sev1",
"severityManual": true,
"status": "triggered",
"mergedIntoId": null,
"escalationPolicyId": null,
"currentTier": null,
"escalationEpoch": 0,
"escalationCycle": 0,
"acknowledgedBy": null,
"acknowledgedAt": null,
"snoozedUntil": null,
"autoResolve": true,
"resolvedBy": null,
"resolveNote": null,
"statuspageUpdate": null,
"createdBy": null,
"sourceKind": "manual",
"isTest": false,
"triggeredAt": "2026-07-17T09:12:00.000Z",
"resolvedAt": null
}sourceKind ist manual und primarySourceId ist null: ein manuell erstellter Incident hat keine Alert-Source. createdBy ist bei einer Browser-Session die User-ID der anlegenden Person und bei einem API-Token null. Das Scharfschalten der ersten Eskalation und die Weitergabe an ausgehende Integrationen laufen nach dem Speichern auf Best-Effort-Basis: der Incident existiert garantiert, auch wenn Paging oder eine Integration scheitert; ein solcher Fehler wird serverseitig protokolliert und erscheint nicht in dieser Antwort. Weil die Eskalation erst nach der Antwort startet, ist currentTier hier immer null. Mit Incident abrufen siehst du den Tier, sobald die Eskalation läuft.
Häufige Fehler
401 Unauthorizedwenn du nicht authentifiziert bist403 Forbidden(customerScopedTokenForbidden) bei Verwendung eines kunden-gescopten Tokens403 Forbidden(imAccessDenied) wenn die angemeldete Person keine IM-berechtigte Rolle hat403 Forbidden(imNotEnabled) wenn Incident Management für die Organisation nicht aktiviert ist403 Forbidden(imTeamWriteDenied) wenn du weder Organisations-Admin noch Team-Admin vonteamIdbist400 Bad Request(invalidRequestBody) wennteamIdfehlt oder keine positive Ganzzahl ist,titlefehlt, leer ist oder länger als 10.000 Zeichen,severitynichtsev1bissev4ist, odercustomerIdangegeben, aber keine positive Ganzzahl ist422 Unprocessable Entity(invalidTeamId) wennteamIdnicht zu deiner Organisation gehört422 Unprocessable Entity(invalidCustomerId) wenncustomerIdangegeben ist, aber nicht zu deiner Organisation gehört
Kanäle
Paging-Kanäle im Incident Management (Webhook, Slack, E-Mail) auflisten, anlegen, ändern und löschen, inklusive der Nur-Schreiben-Behandlung von Webhook-URLs und Headern.
Vorschlag zum Zusammenführen verwerfen
Verwirft den Vorschlag, dass ein Incident-Management-Vorfall derselbe ist wie ein offener Vorfall aus einer anderen Quelle.