---
title: "Statusseiten-Regeln"
description: "Incident Management mit deinen Statusseiten koppeln: Regeln, die eine Seite bei Incidents eines Teams auf warning oder degraded setzen, plus eine manuelle Übersteuerung."
---

`GET /api/im/statuspage-rules` · `POST /api/im/statuspage-rules` · `PATCH /api/im/statuspage-rules/:id` · `DELETE /api/im/statuspage-rules/:id` · `POST /api/im/statuspage-rules/override` · `DELETE /api/im/statuspage-rules/override/:statusPageId`

Eine **Statusseiten-Regel** bedeutet: „Incidents von Team X mit Severity `minSeverity` oder schwerer setzen Statusseite Y auf `targetState`." `sev1` ist die schwerste Stufe. Mit `autoResolve` wird der Zustand der Seite zurückgesetzt, sobald der Incident gelöst ist. Eine **manuelle Übersteuerung** setzt einen Zustand auf einer Statusseite von Hand. Solange eine manuelle Übersteuerung aktiv ist, ändern und löschen Regeln den Zustand dieser Seite nicht.

## Authentifizierung

Erfordert den Basiszugriff auf Incident Management, den jeder Endpunkt dieser API braucht (eine IM-berechtigte Rolle `admin`, `editor` oder `responder`, oder ein organisationsweites API-Token; Incident Management muss für die Organisation aktiviert sein). Regeln auflisten darf jede IM-berechtigte Rolle.

- **Regeln anlegen, ändern und löschen** erfordert die Schreibhürde: Deine Rolle muss `admin` sein, oder du musst Team-Admin des Teams der Regel sein.
- **Eine manuelle Übersteuerung setzen oder aufheben** erfordert die Rolle `admin` oder `editor`, dieselbe Hürde wie andere Änderungen an Statusseiten.

Ein organisationsweites API-Token läuft mit der Rolle der Person, die es erstellt hat. Eine Team-Admin-Mitgliedschaft gilt für ein Token nie.

## Regeln auflisten

`GET /api/im/statuspage-rules`

Liefert alle Regeln deiner Organisation, sortiert nach `id`.

### Beispiel (cURL)

```bash
curl -X GET "$BASE_URL/api/im/statuspage-rules" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"
```

### Antwort (Response)

`200 OK`

```json
[
  {
    "id": 2,
    "organizationId": 1,
    "teamId": 3,
    "statusPageId": 15,
    "minSeverity": "sev2",
    "targetState": "degraded",
    "autoResolve": true,
    "createdAt": "2026-09-25T09:00:00.000Z",
    "updatedAt": "2026-09-25T09:00:00.000Z"
  }
]
```

## Regel anlegen

`POST /api/im/statuspage-rules`

### Request Body

| Feld | Typ | Erforderlich | Beschreibung |
|-------|------|----------|-------------|
| `teamId` | integer | Ja | Team deiner Organisation, dessen Incidents die Regel auslösen. Du brauchst die Schreibhürde dafür. |
| `statusPageId` | integer | Ja | Statusseite deiner Organisation. |
| `minSeverity` | string | Nein | `sev1` bis `sev4`, Standard `sev2`. |
| `targetState` | string | Nein | `warning` oder `degraded` (Standard). |
| `autoResolve` | boolean | Nein | Zustand der Seite zurücksetzen, wenn der Incident gelöst ist. Standard `true`. Nimmt auch die Strings `"true"`/`"false"` an. |

### Beispiel (cURL)

```bash
curl -X POST "$BASE_URL/api/im/statuspage-rules" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "teamId": 3, "statusPageId": 15, "minSeverity": "sev2", "targetState": "degraded" }'
```

### Antwort (Response)

`200 OK`: die angelegte Regel (gleiche Form wie ein Listeneintrag).

## Regel ändern

`PATCH /api/im/statuspage-rules/:id`

Teilweise Aktualisierung von `teamId`, `statusPageId`, `minSeverity`, `targetState` und `autoResolve` (gleiche Validierung wie beim Anlegen). Andere Schlüssel werden ignoriert. Du brauchst die Schreibhürde für das aktuelle Team der Regel und, wenn du `teamId` änderst, auch für das neue Team.

```bash
curl -X PATCH "$BASE_URL/api/im/statuspage-rules/2" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "minSeverity": "sev1", "targetState": "warning" }'
```

`200 OK`: die aktualisierte Regel.

## Regel löschen

`DELETE /api/im/statuspage-rules/:id`

```bash
curl -X DELETE "$BASE_URL/api/im/statuspage-rules/2" \
  -H "Authorization: Bearer $TOKEN"
```

`200 OK`

```json
{ "ok": true }
```

## Manuelle Übersteuerung setzen

`POST /api/im/statuspage-rules/override`

Setzt einen Zustand auf einer Statusseite und benachrichtigt ihre Abonnenten. Ersetzt jede Übersteuerung, die gerade auf der Seite liegt, egal ob eine Regel oder eine Person sie gesetzt hat.

| Feld | Typ | Erforderlich | Beschreibung |
|-------|------|----------|-------------|
| `statusPageId` | integer | Ja | Statusseite deiner Organisation. |
| `state` | string | Ja | `operational`, `warning` oder `degraded`. |
| `message` | string | Nein | Text, der mit dem Zustand angezeigt wird. Getrimmt und auf 5000 Zeichen gekürzt. |

```bash
curl -X POST "$BASE_URL/api/im/statuspage-rules/override" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "statusPageId": 15, "state": "warning", "message": "E-Mails kommen verzögert an, wir sind dran." }'
```

`200 OK`

```json
{ "ok": true }
```

## Übersteuerung aufheben

`DELETE /api/im/statuspage-rules/override/:statusPageId`

Entfernt die aktuelle Übersteuerung von der Seite, egal ob eine Regel oder eine Person sie gesetzt hat. Die Seite folgt danach wieder den Regeln (oder, ohne aktive Regel, ihren Monitoren). War eine Übersteuerung aktiv, werden die Abonnenten benachrichtigt.

```bash
curl -X DELETE "$BASE_URL/api/im/statuspage-rules/override/15" \
  -H "Authorization: Bearer $TOKEN"
```

`200 OK`

```json
{ "ok": true }
```

## 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
- `403 Forbidden` (`imTeamWriteDenied`) wenn du die Schreibhürde für das Team der Regel (oder das neue Team) nicht erfüllst
- `403 Forbidden` (ohne `data.code`) wenn du eine Übersteuerung ohne die Rolle `admin` oder `editor` setzt oder aufhebst
- `400 Bad Request` (`invalidRequestBody`) wenn `:id` oder `:statusPageId` keine positive Ganzzahl ist, `teamId` oder `statusPageId` fehlt oder ungültig ist, `minSeverity`, `targetState` oder `state` keinen erlaubten Wert hat, oder `autoResolve` kein Boolean ist
- `404 Not Found` (`imStatuspageRuleNotFound`) wenn die Regel nicht existiert oder zu einer anderen Organisation gehört
- `422 Unprocessable Entity` (`invalidTeamId`) wenn `teamId` nicht zu deiner Organisation gehört
- `422 Unprocessable Entity` (`invalidStatusPageId`) wenn `statusPageId` nicht zu deiner Organisation gehört
