---
title: "Status-Seite erstellen"
description: "Erstellt eine neue Status-Seite. Erfordert Admin-Rolle."
---

`POST /api/status-pages`

## Request-Body

| Feld | Typ | Pflicht | Standard | Beschreibung |
|------|-----|---------|----------|--------------|
| `customerId` | number | Ja | - | Kunden-ID (muss zu Ihrer Organisation gehören) |
| `name` | string | Ja | - | Anzeigename (1-120 Zeichen). Slug wird aus dem Namen generiert. |
| `slug` | string | Nein | auto | URL-Slug (1-120 Zeichen, auto-normalisiert auf Kleinbuchstaben-Bindestriche) |
| `description` | string | Nein | null | Beschreibung (max. 1000 Zeichen) |
| `visibility` | string | Nein | `public` | `public` oder `customer_members_only` |
| `isPublished` | boolean | Nein | true | Ob die Seite öffentlich sichtbar ist |
| `customDomainHostname` | string | Nein | null | Eigene Domain (3-253 Zeichen). Erzeugt einen ausstehenden DNS-Verifizierungseintrag. |
| `hiddenMonitors` | array | Nein | `[]` | Monitore, die auf dieser Statusseite ausgeblendet werden. Jeder Eintrag ist `{ "type": "http"\|"dns"\|"icmp"\|"smtp"\|"ssh"\|"ftp"\|"imap_pop", "id": <Monitor-ID> }`. Leer lassen oder `[]` senden, um alle Monitore anzuzeigen (Standard). Später hinzugefügte Monitore erscheinen automatisch. Maximal 500 Einträge. |

## Beispiel (cURL)

```bash
curl -X POST "$BASE_URL/api/status-pages" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": 5,
    "name": "Production Status",
    "description": "Real-time status of our production services",
    "visibility": "public",
    "hiddenMonitors": [{ "type": "http", "id": 42 }]
  }'
```

## Antwort

```json
{
  "statusPage": {
    "id": 1,
    "publicId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "organizationId": 1,
    "customerId": 5,
    "name": "Production Status",
    "slug": "production-status",
    "description": "Real-time status of our production services",
    "visibility": "public",
    "isPublished": true,
    "showRecentIncidents": false,
    "showRecentMaintenance": false,
    "customDomainId": null,
    "createdAt": "2026-01-15T10:00:00.000Z",
    "updatedAt": "2026-01-15T10:00:00.000Z"
  },
  "dns": null
}
```

Wird `customDomainHostname` angegeben, enthält die Antwort DNS-Verifizierungshinweise:

```json
{
  "dns": {
    "txtName": "_uptimeify-verify.status.deinkunde.com",
    "txtValue": "abc123-def456-ghi789"
  }
}
```

## Häufige Fehler

- `401 Unauthorized`, wenn nicht authentifiziert
- `403 Forbidden`, wenn kein Admin
- `409 Conflict`, wenn der Slug bereits vergeben ist

