---
title: "Abonnenten einer Status-Seite löschen"
description: "Löscht einen Abonnenten und seine gespeicherten Einwilligungsnachweise unwiderruflich. Erfordert Admin- oder Editor-Rolle."
---

`DELETE /api/status-pages/:id/subscribers/:subscriberId`

Das ist ein **echtes Löschen (Hard Delete)**, nicht das öffentliche Ein-Klick-Abmelden. Der öffentliche Abmelde-Link behält die Abonnenten-Zeile mit `status: "unsubscribed"` als Nachweis, dass keine weiteren E-Mails mehr verschickt werden dürfen. Dieser Endpunkt beantwortet dagegen Löschanfragen (DSGVO Art. 17) und entfernt die Zeile vollständig, inklusive E-Mail-Adresse, Zeitpunkt der Einwilligung, IP-Adresse und User-Agent.

## Pfad-Parameter

| Parameter | Beschreibung |
|-----------|-------------|
| `id` | Status-Seiten-ID oder `publicId` (UUID) |
| `subscriberId` | Abonnenten-ID (positive Ganzzahl) |

## Beispiel (cURL)

```bash
curl -X DELETE "$BASE_URL/api/status-pages/db58058e-4b58-4d97-a314-3bb8e279a182/subscribers/42" \
  -H "Authorization: Bearer $TOKEN"
```

## Antwort

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

## Häufige Fehler

- `401 Unauthorized`, wenn du nicht authentifiziert bist
- `400 User must belong to an organization` (`data.code: userMustBelongToOrg`), wenn sich aus Session oder Token keine Organisation ableiten lässt
- `403 Forbidden`, wenn deine Rolle nicht Admin oder Editor ist, oder dein Kunden-Scope diese Status-Seite nicht einschließt
- `400 Invalid Status page identifier`, wenn `id` keine gültige numerische ID oder UUID ist (kein `data.code`)
- `404 Status page not found`, wenn `id` wohlgeformt ist, aber keine Status-Seite dazu existiert (kein `data.code`)
- `404 Status page not found` (`data.code: statusPageNotFound`), wenn `id` sich zu einer echten Status-Seite auflöst, diese aber zu einer anderen Organisation gehört oder außerhalb deines Kunden-Scopes liegt
- `400 Invalid subscriber id` (`data.code: invalidSubscriberId`), wenn `subscriberId` sich nicht als positive Ganzzahl parsen lässt
- `404 Subscriber not found` (`data.code: subscriberNotFound`), wenn `subscriberId` nicht existiert oder zu einer anderen Status-Seite als `id` gehört

`id` wird aufgelöst und geprüft, bevor `subscriberId` überhaupt geparst wird, ein fehlerhaftes `id` ist also immer der Fehler, den du zuerst siehst.

