
# Ergebnisse der Massenlöschung auflisten

`GET /v1/jobs/user-deletions/{job_id}/results` · Berechtigung `users:delete`

Listet das Ergebnis jedes Benutzers in einem Massenlöschjob in Anfragereihenfolge auf (`position` beginnt bei 1). Jedes Ergebnis ist eines der folgenden:

- `pending`: Der Benutzer hat noch kein Ergebnis.
- `succeeded`: Die Löschung des Benutzers wurde gestartet; `deletion_id` ist dieselbe ID, die [`DELETE /v1/users/{user_id}`](/docs/api/management/users/delete) für diesen Benutzer zurückgibt.
- `not_found`: Der Benutzer existierte in dieser Umgebung nicht oder war bereits gelöscht.
- `failed`: Die Löschung ist nach mehreren Versuchen fehlgeschlagen; `error_code` ist `internal`. Löschen Sie den Benutzer einzeln oder in einem neuen Job erneut.

Die Ergebnisse enthalten nur Benutzer-IDs; andere personenbezogene Daten werden nicht zurückgegeben. Die Liste wird nur vorwärts geblättert: Verwenden Sie `list_metadata.after` für die nächste Seite; `before` und `order` werden nicht unterstützt.

## Anfrage

| Parameter | In | Erforderlich | Beschreibung |
|---|---|---|---|
| `job_id` | path | ja | Job-ID mit Präfix `job_`. |
| `limit` | query | nein | Seitengröße, 1 bis 100. Standard 20. |
| `after` | query | nein | Opaker Cursor aus `list_metadata.after`. Gilt nur für denselben Job. |

## Antwort

`200 OK`. `list_metadata.after` ist der Cursor für die nächste Seite (`null` auf der letzten Seite); `list_metadata.before` ist immer `null`.

```json
{
  "data": [
    {
      "position": 1,
      "user_id": "usr_01h455vb4pex5vsknk084sn02q",
      "status": "succeeded",
      "deletion_id": "0191f0a0-0000-8000-8000-000000000001"
    },
    {
      "position": 2,
      "user_id": "usr_01h455vb4pex5vsknk084sn02r",
      "status": "not_found"
    }
  ],
  "list_metadata": { "before": null, "after": null }
}
```

## Fehler

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

| HTTP | `code` | Wann |
|---|---|---|
| 400 | `invalid_cursor` | Der Cursor ist fehlerhaft, abgelaufen oder gehört zu einem anderen Job. |
| 401 | `unauthenticated` | Der API-Schlüssel fehlt, ist ungültig oder widerrufen. |
| 403 | `insufficient_permissions` | Dem Schlüssel fehlt die Berechtigung `users:delete`. |
| 404 | `not_found` | Der Job existiert in dieser Umgebung nicht (oder die ID ist fehlerhaft). |
| 422 | `validation_failed` | `limit` liegt außerhalb des Bereichs, oder `before` bzw. `order` wurde gesendet (`not_supported`). |
| 429 | `rate_limited` | 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 "https://api.eu.keenauth.com/v1/jobs/user-deletions/job_01h455vb4pex5vsknk084sn02q/results?limit=100" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI: `keenauth jobs user-deletions results job_01h455vb4pex5vsknk084sn02q --limit 100`
