---
title: "Manuellen Vorfall anlegen"
description: "Legt einen manuellen Vorfall auf den Statusseiten eines Kunden oder auf gewählten Statusseiten und Komponenten an."
---

`POST /api/incidents`

Legt einen **manuellen** Vorfall an: eine Meldung auf Statusseiten, von Ihnen geschrieben statt von einem Monitor erkannt. Mit `customerId` erscheint er wie bisher auf jeder Statusseite dieses Kunden. Seit dem 27. Oktober 2026 ist `customerId` optional: mit `statusPageIds` erscheint der Vorfall auf diesen Seiten, seitenweit oder auf den Komponenten aus `componentIds`, auch auf einer Seite ohne Kunden oder ohne einen einzigen Monitor. Die Abonnenten jeder Seite, auf der er erscheint, werden benachrichtigt.

## Authentifizierung

Erfordert die Rolle `admin` oder `editor` (oder einen Organisations-API-Token). Ohne `customerId` gehört der Vorfall der Organisation, wie eine Statusseite ohne Kunden: ein kundengebundenes Login oder Token bekommt `403 forbidden`. Jede Seite in `statusPageIds` muss zu Ihrer Organisation gehören (sonst `404 statusPageNotFound`) und in Ihrem Kundenbereich liegen.

- Header: `Authorization: Bearer <token>`

## Anfrage (Request Body)

| Feld | Typ | Erforderlich | Beschreibung |
|-------|------|----------|-------------|
| `customerId` | integer | Nein* | Kunde, auf dessen Statusseiten der Vorfall erscheint. *Entweder `customerId` oder `statusPageIds` ist Pflicht. |
| `websiteId` | integer | Nein | Eine Website von `customerId`, um die es geht. Braucht `customerId`. |
| `title` | string | Ja | Überschrift, 1 bis 200 Zeichen. |
| `severity` | string | Ja | `minor`, `major`, `critical` oder `maintenance`. |
| `summary` | string | Nein | Bis zu 5.000 Zeichen. |
| `startedAt` | string | Nein | ISO-8601-Zeitpunkt, Standard jetzt. |
| `updateStatus` | string | Nein | Erstes Timeline-Update zusammen mit `updateBody`: `investigating`, `identified`, `monitoring` oder `resolved` (öffnet den Vorfall behoben). |
| `updateBody` | string | Nein | Text des ersten Updates, bis zu 5.000 Zeichen. |
| `statusPageIds` | Array | Nein* | Statusseiten (id oder publicId), höchstens 10. Eine Seite ohne Komponente aus `componentIds` bekommt den Vorfall seitenweit. Mit `customerId` nur Seiten ohne Kunden oder dieses Kunden. |
| `componentIds` | Array | Nein | Betroffene Komponenten (id oder publicId), höchstens 100; jede muss zu einer Seite aus `statusPageIds` gehören. Solange der Vorfall offen ist, übernehmen diese manuellen Komponenten seinen `impact`. |
| `impact` | string | Nein | `degraded`, `partial_outage`, `major_outage` oder `maintenance`. Standard aus `severity`: `minor` = `degraded`, `major` = `partial_outage`, `critical` = `major_outage`, `maintenance` = `maintenance`. |

## Beispiel (cURL)

```bash
curl -X POST "$BASE_URL/api/incidents" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Card payments failing",
    "severity": "major",
    "statusPageIds": ["2b9c7d1e-5f3a-4c8b-9e0d-1a2b3c4d5e6f"],
    "componentIds": [8],
    "updateStatus": "investigating",
    "updateBody": "We are looking into failed card payments."
  }'
```

## Antwort (Response)

`201 Created`

```json
{
  "incident": {
    "id": 5121,
    "publicId": "8d1f0c2e-6a2b-4f1e-9b7c-2e5a1d3c4b5a"
  }
}
```

## Häufige Fehler

- `400 Bad Request` (`incidentTargetRequired`), wenn weder `customerId` noch `statusPageIds` angegeben ist
- `400 Bad Request` (`statusPageIdsRequired`), wenn `componentIds` ohne `statusPageIds` kommt
- `400 Bad Request` (`statusPageComponentNotOnPage`), wenn eine Komponente zu einer Seite gehört, die nicht in `statusPageIds` steht
- `400 Bad Request` (`statusPageCustomerMismatch`), wenn eine Seite einem anderen Kunden als `customerId` gehört
- `400 Bad Request` (`invalidWebsite`), wenn die Website nicht zu `customerId` gehört oder `websiteId` ohne `customerId` kommt
- `400 Bad Request` (`invalidRequestBody`), wenn ein Feld fehlt oder Typ oder Wert falsch ist
- `401 Unauthorized`, wenn Sie nicht authentifiziert sind
- `403 Forbidden` (`forbidden`), wenn Ihre Rolle keine Statusseiten schreiben darf, oder ein kundengebundener Aufrufer einen Vorfall ohne Kunden oder auf einer Seite außerhalb seines Bereichs anlegt
- `403 Forbidden` (`statusPagesModuleDisabled`), wenn `statusPageIds` nicht leer ist und das Statusseiten-Modul für Ihre Organisation nicht aktiviert ist; Vorfälle ohne Statusseiten sind nicht betroffen
- `404 Not Found` (`statusPageNotFound`, `statusPageComponentNotFound`, `customerNotFound`), wenn eine Seite, Komponente oder ein Kunde in Ihrer Organisation nicht existiert
