Uptimeify Docs

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

ParameterTypBeschreibung
statusstring, wiederholbarFilter nach Status. Ein oder mehrere von triggered, acknowledged, investigating, identified, monitoring, resolved, merged.
severitystring, wiederholbarFilter nach Schweregrad. Ein oder mehrere von sev1, sev2, sev3, sev4.
teamIdnumber, wiederholbarFilter nach besitzendem Team.
customerIdnumber, wiederholbarFilter nach dem zugeordneten Kunden des Incidents.
sourceIdnumber, wiederholbarFilter nach primärer Alert-Source.
assignedUserIdstringNur Incidents mit einer aktiven Zuweisung (beliebige Rolle) an diese User-ID.
onCallboolean (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.
fromISO-8601-Datum/ZeitNur Incidents, die zu diesem Zeitpunkt oder später ausgelöst wurden.
toISO-8601-Datum/ZeitNur Incidents, die zu diesem Zeitpunkt oder früher ausgelöst wurden.
qstringVolltextsuche im Incident-Titel. Nur ganze Wörter, keine Präfixsuche.
limitnumberSeitengröße. Standard 50, maximal 100.
cursorstringFortsetzungs-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:

  • name ist der Anzeigename der Person, ersatzweise ihre E-Mail-Adresse, wenn im Profil kein Name hinterlegt ist.
  • name ist null, 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.
  • image ist die Auslieferungs-URL des Profilbilds oder null, 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 Unauthorized wenn du nicht authentifiziert bist
  • 403 Forbidden (imAccessDenied) bei Verwendung eines kunden-gescopten Tokens, oder wenn deine Session keine IM-berechtigte Rolle hat
  • 403 Forbidden (imNotEnabled) wenn Incident Management für die Organisation nicht aktiviert ist
  • 400 Bad Request (invalidRequestBody) wenn ein Filterwert ungültig ist, z. B. ein unbekannter status/severity, ein nicht-numerischer teamId/customerId/sourceId, ein nicht parsbarer from/to/cursor, oder ein limit außerhalb des zulässigen Bereichs

Auf dieser Seite