Incident erstellen
Erstellt manuell einen Incident-Management-Incident für ein Team; die Eskalation wird kurz nach der Erstellung scharf geschaltet, mit demselben Paging-Verhalten wie ein aus einem Alert entstandener Incident.
POST /api/im/incidents
Erstellt einen Incident von Hand, außerhalb der Alert-Ingest-Pipeline, etwa für etwas, das ein Mensch bemerkt hat, bevor es ein Monitoring-Tool tat. Ein manuell erstellter Incident ist kein Incident zweiter Klasse: Eskalationsstufe 1 wird kurz nach der Erstellung scharf geschaltet, genau wie bei einem aus einem eingespeisten Alert entstandenen Incident. Dieses Scharfschalten läuft jedoch asynchron, nachdem diese Antwort bereits zurückgegeben wurde. Diese Antwort spiegelt also die Incident-Zeile so wider, wie sie committet wurde, noch bevor die Eskalation startet (siehe currentTier unten).
Authentifizierung
Erfordert denselben Basis-IM-Zugriff wie jeder Endpunkt dieser API (eine der IM-berechtigten Rollen admin, editor oder responder, oder einen organisationsweiten API-Token; Incident Management muss für die Organisation aktiviert sein). Das Erstellen eines Incidents erfordert zusätzlich die Schreib-Hürde für das Ziel-Team: Deine Rolle muss admin sein (auf Organisationsebene), oder du musst Team-Admin sein (ein im_team_member dieses Teams mit imRole: 'admin'). Ein organisationsweiter API-Token erfüllt die Organisations-Admin-Hürde, da er als synthetische admin-Rolle authentifiziert.
Request Body
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
teamId | number | Ja | Das Team, dem der Incident gehört. Muss zu deiner Organisation gehören. |
title | string | Ja | Incident-Titel, bis zu 10.000 Zeichen. |
severity | string | Ja | Einer von sev1, sev2, sev3, sev4. Muss explizit gesetzt werden: ein manueller Incident hat keinen Alert-Stream, aus dem sich der Schweregrad ableiten ließe, daher ist er immer severityManual: true. |
customerId | number | Nein | Ordnet den Incident einem Kunden zu. Muss, falls angegeben, zu deiner Organisation gehören. |
escalationPolicyId | number | Nein | Zu verwendende Eskalationsrichtlinie. Muss, falls angegeben, zu deiner Organisation gehören. Weggelassen (oder null) löst zur Standardrichtlinie des Teams auf (im_escalation_policy mit isDefault: true), oder zu null, falls das Team keine hat. Es fällt nie stillschweigend auf "keine Richtlinie" zurück, wenn das Team eine konfiguriert hat. |
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: die neu erstellte Incident-Zeile (gleiche Form wie die items von Incidents auflisten).
{
"id": 42,
"organizationId": 1,
"teamId": 3,
"title": "Database connection pool exhausted",
"customerId": null,
"primarySourceId": null,
"severity": "sev1",
"severityManual": true,
"status": "triggered",
"mergedIntoId": null,
"escalationPolicyId": 5,
"currentTier": null,
"escalationEpoch": 0,
"acknowledgedBy": null,
"acknowledgedAt": null,
"snoozedUntil": null,
"autoResolve": true,
"resolvedBy": null,
"resolveNote": null,
"createdBy": "u_abc123",
"sourceKind": "manual",
"triggeredAt": "2026-07-17T09:12:00.000Z",
"resolvedAt": null
}sourceKind ist manual und primarySourceId ist null: ein manuell erstellter Incident hat keine zugrunde liegende Alert-Source. Das Scharfschalten der initialen Eskalation und ein eventueller Outbound-Integrations-Fan-out laufen best-effort, nachdem die Incident-Zeile committet wurde: Der Incident existiert garantiert auch dann, wenn Paging oder eine Outbound-Integration fehlschlägt, ein solcher Fehler wird serverseitig geloggt, aber nicht in dieser Antwort sichtbar. Da die Eskalation erst scharf geschaltet wird, nachdem diese Antwort zurückgegeben wurde, ist currentTier in der Create-Antwort immer null. Frage Incidents auflisten oder Incident abrufen ab, um die Stufe zu sehen, sobald die Eskalation gestartet ist.
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 ist403 Forbidden(imTeamWriteDenied) wenn deine Rolle nichtadminist und du kein Team-Admin vonteamIdbist400 Bad Request(invalidRequestBody) wennteamIdfehlt oder keine positive Ganzzahl ist,titlefehlt oder 10.000 Zeichen überschreitet,severitynicht einer vonsev1bissev4ist, odercustomerId/escalationPolicyIdangegeben, 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ört422 Unprocessable Entity(imRoutingInvalidPolicyId) wennescalationPolicyIdangegeben ist, aber nicht zu deiner Organisation gehört
Incident bestätigen / Status ändern
Bewegt einen Incident-Management-Incident zwischen den offenen Status (acknowledged, investigating, identified, monitoring). status auf acknowledged setzen, um einen Incident zu bestätigen.
Events Ingest
Öffentlicher Alert-Ingest-Endpunkt für Incident Management. Beliebiges JSON-Alert-Payload aus deinem eigenen Monitoring- oder Alerting-System senden; es wird asynchron zu einem Incident verarbeitet.