---
title: "Abonnenten einer Status-Seite exportieren"
description: "Lädt alle Abonnenten einer Status-Seite als CSV herunter. Erfordert Admin- oder Editor-Rolle."
---

`GET /api/status-pages/:id/subscribers/export`

Anders als [Abonnenten auflisten](./list-subscribers) ist der Export nicht begrenzt, er liefert alle Zeilen der Seite. Jeder Export wird im Audit-Log deiner Organisation festgehalten (nur Seiten-ID und Zeilenanzahl, nie die Adressen selbst), da es sich um einen Massenexport der personenbezogenen Daten deiner Abonnenten handelt.

## Pfad-Parameter

| Parameter | Beschreibung |
|-----------|-------------|
| `id` | Status-Seiten-ID oder `publicId` (UUID) |

## Beispiel (cURL)

```bash
curl "$BASE_URL/api/status-pages/db58058e-4b58-4d97-a314-3bb8e279a182/subscribers/export" \
  -H "Authorization: Bearer $TOKEN" \
  -o subscribers.csv
```

## Antwort

`Content-Type: text/csv; charset=utf-8`, `Content-Disposition: attachment; filename="status-page-<id>-subscribers.csv"` (`<id>` ist die numerische ID der Status-Seite, nicht ihre `publicId`).

```csv
"email","status","locale","created_at","confirmed_at"
"reader@example.com","confirmed","en","2026-08-01T12:00:00.000Z","2026-08-01T12:05:00.000Z"
"other@example.com","pending","de","2026-08-02T09:30:00.000Z",""
```

Die Zeilen sind nach `created_at` absteigend sortiert, neueste zuerst. Jedes Feld ist in Anführungszeichen gesetzt, enthaltene Anführungszeichen werden gemäß RFC 4180 verdoppelt. Ein Wert, der sonst mit `=`, `+`, `-` oder `@` beginnen würde, oder mit diesen Zeichen, denen Whitespace vorangeht (Tab, Leerzeichen oder Wagenrücklauf), erhält ein führendes einfaches Anführungszeichen, sodass er als reiner Text und nicht als Formel ausgewertet wird. Die E-Mail-Adressen stammen von Website-Besuchern und sind damit nicht vertrauenswürdig, das schützt beim Öffnen der Datei in Excel oder Sheets vor CSV-/Formel-Injection.

## 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

