Uptimeify Docs

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)

FeldTypErforderlichBeschreibung
teamIdnumberJaDas Team, dem der Incident gehört und dessen Eskalations-Tiers Personen alarmieren. Muss zu deiner Organisation gehören.
titlestringJaTitel des Incidents, nicht leer, höchstens 10.000 Zeichen.
severitystringJaEiner 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.
customerIdnumber oder nullNeinOrdnet 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 Unauthorized wenn du nicht authentifiziert bist
  • 403 Forbidden (customerScopedTokenForbidden) bei Verwendung eines kunden-gescopten Tokens
  • 403 Forbidden (imAccessDenied) wenn die angemeldete Person keine IM-berechtigte Rolle hat
  • 403 Forbidden (imNotEnabled) wenn Incident Management für die Organisation nicht aktiviert ist
  • 403 Forbidden (imTeamWriteDenied) wenn du weder Organisations-Admin noch Team-Admin von teamId bist
  • 400 Bad Request (invalidRequestBody) wenn teamId fehlt oder keine positive Ganzzahl ist, title fehlt, leer ist oder länger als 10.000 Zeichen, severity nicht sev1 bis sev4 ist, oder customerId angegeben, aber keine positive Ganzzahl ist
  • 422 Unprocessable Entity (invalidTeamId) wenn teamId nicht zu deiner Organisation gehört
  • 422 Unprocessable Entity (invalidCustomerId) wenn customerId angegeben ist, aber nicht zu deiner Organisation gehört

Auf dieser Seite