---
title: "Incidents gesammelt ändern"
description: "Wendet eine Aktion (bestätigen, lösen, Schweregrad, zuweisen) auf bis zu 200 Incident-Management-Incidents gleichzeitig an, mit Ergebnis je Incident."
---

`POST /api/im/incidents/bulk`

Wendet eine Aktion auf viele Incidents an, etwa um während eines großen Ausfalls Dutzende Incidents auf einmal zu bestätigen oder zu lösen. Jeder Incident durchläuft genau dieselbe Logik wie beim Einzel-Endpunkt, mit denselben Nebenwirkungen (Eskalation stoppen oder neu scharf schalten, Statusseiten, ausgehende Integrationen). Die Incidents werden einzeln und unabhängig voneinander verarbeitet: ein scheiternder Incident macht die anderen weder rückgängig noch blockiert er sie, die Anfrage ist also **nicht** atomar.

## Authentifizierung

Jede IM-berechtigte Rolle (`admin`, `editor`, `responder`) oder ein organisationsweiter API-Token, siehe [Authentifizierung](/de/api/incident-management#authentifizierung). Incident Management muss für die Organisation aktiviert sein.

Jede Aktion außer `acknowledge` ist den Teams der Incidents vorbehalten: du musst Mitglied im Team **jedes** ausgewählten Incidents oder Organisations-Admin sein. Das wird für alle IDs geprüft, bevor irgendetwas geändert wird; gehört auch nur ein Incident nicht zu dir, wird die ganze Anfrage mit `403` abgelehnt und die betroffenen IDs stehen in `data.deniedIncidentIds`. Ein organisationsweiter API-Token gilt dabei als Organisations-Admin.

## Anfrage (Request Body)

| Feld | Typ | Erforderlich | Beschreibung |
|-------|------|----------|--------------|
| `ids` | number[] | Ja | 1 bis 200 Incident-IDs, eindeutige positive Ganzzahlen. |
| `action` | string | Ja | Einer von `acknowledge`, `resolve`, `severity`, `assign`, `team`. |
| `payload` | object | Je nach `action` | Siehe unten. |

| `action` | `payload` | Entspricht |
|----------|-----------|---------|
| `acknowledge` | keins | [Bestätigen](/de/api/incident-management/acknowledge-incident#bestätigen). Ein bereits bestätigter Incident zählt als `ok`. |
| `resolve` | `note` (string, optional, höchstens 10.000 Zeichen) | [Incident lösen](/de/api/incident-management/resolve-incident) |
| `severity` | `severity` (Pflicht, `sev1` bis `sev4`) | [Schweregrad ändern](/de/api/incident-management/incident-severity) |
| `assign` | `userId` (Pflicht: eine User-ID, oder `null`, um die Rolle zu leeren), `role` (optional, Standard `assignee`) | [Rolle zuweisen](/de/api/incident-management/incident-assign#rolle-zuweisen) |
| `team` | `teamId` (Pflicht) | Nicht umgesetzt, antwortet immer mit `501` |

## Beispiel (cURL)

```bash
curl -X POST "$BASE_URL/api/im/incidents/bulk" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [42, 43, 44],
    "action": "resolve",
    "payload": { "note": "Upstream provider outage resolved." }
  }'
```

## Antwort (Response)

`200 OK`, auch wenn einzelne Incidents gescheitert sind. `ok` listet die geänderten IDs, `failed` die übrigen mit einem `reason`: dem `data.code`, den der Einzel-Endpunkt geliefert hätte (z. B. `imIncidentNotFound`, `imIncidentAlreadyClosed`, `imIncidentStatusConflict`, `invalidUserId`), oder `unknown`.

```json
{
  "ok": [42, 43],
  "failed": [
    { "id": 44, "reason": "imIncidentAlreadyClosed" }
  ]
}
```

## 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` (`imTeamMembershipRequired`) wenn die Aktion nicht `acknowledge` ist und mindestens ein ausgewählter Incident zu einem Team gehört, in dem du nicht Mitglied bist (und du nicht Organisations-Admin bist); `data.deniedIncidentIds` listet sie, geändert wurde nichts
- `400 Bad Request` (`invalidRequestBody`) wenn `ids` leer ist, mehr als 200 Einträge, Duplikate oder keine positiven Ganzzahlen enthält, `action` unbekannt ist, oder das Payload zur Aktion ungültig ist (fehlende oder unbekannte `severity`, fehlende `userId`, unbekannte `role`, `note` kein String oder zu lang, fehlende `teamId`)
- `501 Not Implemented` (`imBulkActionNotImplemented`) bei `action: "team"`; das Verschieben von Incidents zwischen Teams wird nicht unterstützt
