
# Daten eines Benutzers exportieren

`POST /v1/users/{user_id}:export` · Berechtigung `users:export`

Startet einen Job, der die personenbezogenen Daten zusammenstellt, die KeenAuth über einen Benutzer speichert, für ein Auskunfts- oder Datenübertragbarkeitsersuchen (GDPR Artikel 15 und 20). Der Job läuft im Hintergrund: Fragen Sie [einen Datenexport-Job eines Benutzers abrufen](/docs/api/management/jobs/get-user-export) ab, bis `status` den Wert `completed` hat, und laden Sie dann [das Paket herunter](/docs/api/management/jobs/download-user-export). Der Endnutzer wird nicht per E-Mail benachrichtigt; die Zustellung des Pakets an ihn liegt in Ihrer Verantwortung.

## Anfrage

| Parameter | In | Pflicht | Beschreibung |
|---|---|---|---|
| `user_id` | path | ja | Benutzer-ID mit dem Präfix `usr_`. |
| `Idempotency-Key` | header | nein | 16–64 Zeichen `[A-Za-z0-9_-]`. Derselbe Schlüssel vom selben Credential liefert denselben Job zurück. |
| `include_ip` | body | nein | `true` fügt dem Paket IP-Adressen aus Sitzungen und Ereignissen hinzu. Erfordert zusätzlich `audit-events:read_ip`. Standard: `false`. |

Der Body ist optional; senden Sie `{}` oder keinen Body für einen Export ohne IP-Adressen.

```json
{ "include_ip": false }
```

## Antwort

`202 Accepted` mit dem Job. Eine wiederholte Anfrage mit demselben `Idempotency-Key` liefert den ursprünglichen Job und `Idempotent-Replayed: true`.

```json
{
  "id": "job_01j9xk3m7q8r2s4t6v8w0y2z4e",
  "kind": "subject",
  "source": "management_api",
  "user_id": "usr_01j9xk3m7q8r2s4t6v8w0y2z4a",
  "status": "queued",
  "include_app_metadata": true,
  "include_ip": false,
  "file": null,
  "failure_reason": null,
  "requested_by": { "type": "api_key", "id": "key_01j9xk3m7q8r2s4t6v8w0y2z4b" },
  "created_at": "2026-10-28T09:00:00Z",
  "started_at": null,
  "completed_at": null,
  "expires_at": null
}
```

Das Paket ist eine ZIP-Datei:

| Datei | Inhalt |
|---|---|
| `manifest.json` | Schema-Version, Job- und Benutzer-IDs, Erstellungszeit, Quelle sowie SHA-256 und Datensatzanzahl jeder anderen Datei. |
| `profile.json`, `emails.json`, `phones.json` | Profilfelder, E-Mail-Adressen und Telefonnummern. |
| `metadata.json` | `user_metadata` und `app_metadata`. |
| `identities.json` | Verknüpfte Social- und Unternehmensidentitäten. |
| `authenticators.json`, `sessions.json` | Passkeys und andere Authentifikatoren (ohne Geheimnisse) sowie Sitzungen. |
| `organizations.json`, `oauth_grants.json`, `consents.json` | Organisationsmitgliedschaften, OAuth-Grants und Zustimmungsnachweise. |
| `auth_events.ndjson` | Authentifizierungsereignisse, ein JSON-Objekt pro Zeile. |

Passwort-Hashes, TOTP-Seeds, Wiederherstellungscodes, Sitzungstoken sowie rohe SAML- oder ID-Token werden nie aufgenommen. Das Paket wird 7 Tage nach Abschluss des Jobs aufbewahrt.

## Fehler

Jeder Fehler ist ein `application/problem+json`-Body mit einem stabilen `code`.

| HTTP | `code` | Wann |
|---|---|---|
| 400 | `malformed_request` | Der Body oder der Header `Idempotency-Key` ist fehlerhaft. |
| 401 | `unauthenticated` | Der API-Schlüssel fehlt, ist ungültig oder wurde widerrufen. |
| 403 | `insufficient_permissions` | Dem Schlüssel fehlt `users:export`, oder `include_ip` ist `true` und dem Schlüssel fehlt `audit-events:read_ip` (`required_permissions` nennt beide). |
| 404 | `not_found` | Der Benutzer existiert in dieser Umgebung nicht, oder die ID ist fehlerhaft. |
| 422 | `idempotency_key_reuse` | Der `Idempotency-Key` wurde mit einer anderen Anfrage verwendet. |
| 429 | `rate_limited` | In dieser Umgebung sind zu viele Export-Jobs eingereiht oder in Bearbeitung, oder das Ratenlimit wurde überschritten; beachten Sie `Retry-After`. |
| 503 | `service_unavailable` | Eine Abhängigkeit ist vorübergehend nicht verfügbar; versuchen Sie es später erneut. |

## Beispiel

```bash
curl -X POST https://api.eu.keenauth.com/v1/users/usr_01j9xk3m7q8r2s4t6v8w0y2z4a:export \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: dsar-2026-10-28-0001" \
  -H "Content-Type: application/json" \
  -d '{"include_ip": false}'
```

CLI: `keenauth users export usr_01j9xk3m7q8r2s4t6v8w0y2z4a`

## Personenbezogene Daten

Dieser Endpoint enthält personenbezogene Daten: Profil eines Endnutzers. [Personenbezogene Daten in den KeenAuth-APIs](/docs/policies/personal-data) beschreibt, welche Daten gespeichert werden, wie lange sie aufbewahrt werden und wie sie gelöscht werden. Senden Sie in keinem Feld besondere Kategorien personenbezogener Daten (Gesundheit, biometrische Daten, Religion, politische Meinungen, sexuelle Orientierung).
