---
title: "Incidents auflisten"
description: "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. Es werden nur `im_incident`-Felder zurückgegeben. Alerts, Timeline-Events und Zuweisungen sind über den Endpunkt [Incident abrufen](./get-incident) verfügbar.

## 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)

```bash
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)

```json
{
  "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": null,
      "acknowledgedAt": null,
      "snoozedUntil": null,
      "autoResolve": true,
      "resolvedBy": null,
      "resolveNote": null,
      "createdBy": null,
      "sourceKind": "alert",
      "triggeredAt": "2026-07-17T09:12:00.000Z",
      "resolvedAt": null
    }
  ],
  "nextCursor": "1752743520000:42"
}
```

`nextCursor` ist `null` auf der letzten Seite. Übergib ihn als `cursor`-Query-Parameter, um die nächste Seite zu laden.

## 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
