
# Sitzungen eines Benutzers auflisten

`GET /v1/users/{user_id}/sessions` · Berechtigung `sessions:read`

Listet die Sitzungen des Benutzers auf einer einzigen Seite auf, zuletzt gesehene zuerst, maximal 1.000. Die Liste hat keine Parameter `limit`, `after`, `before` oder `order`, und `list_metadata` hat immer den Wert `null`. Standardmäßig werden nur aktive Sitzungen zurückgegeben; mit `include_inactive=true` werden auch abgelaufene und widerrufene Sitzungen (noch innerhalb der Aufbewahrungsfrist) zurückgegeben. Die vollständige IP-Adresse wird angezeigt, und jede Ansicht wird im Verwaltungs-Audit-Log protokolliert. Cookies, Tokens und Geräte-Fingerprints werden niemals zurückgegeben.

## Organisationsbereich

Übergeben Sie `org_id`, um für einen Organisationsadministrator eine Diagnoseansicht des Mitglieds zu erstellen. Der Schlüssel benötigt dann zusätzlich die Berechtigung `organizations:read`; ohne sie schlägt die Anfrage mit `403 insufficient_permissions` fehl, bevor etwas gelesen wird. Ist der Benutzer kein Mitglied dieser Organisation (keine Mitgliedschaft mit Status `invited`, `active` oder `suspended`), schlägt die Anfrage mit `404 not_found` fehl, derselben Antwort wie für einen unbekannten Benutzer. Ist der Benutzer Mitglied, werden nur Sitzungen zurückgegeben, die nach der Richtlinie dieser Organisation eröffnet wurden (Sitzungen, deren `org_id` diese Organisation ist); Sitzungen des Benutzers im Kontext einer anderen Organisation oder außerhalb jeder Organisation werden niemals zurückgegeben. `ip_address` und `user_agent` sind in dieser Ansicht `null`. Ohne `org_id` bleibt die Antwort unverändert.

## Anfrage

| Parameter | In | Pflicht | Beschreibung |
|---|---|---|---|
| `user_id` | Pfad | ja | Benutzer-ID, mit `usr_` beginnend. |
| `include_inactive` | Query | nein | `true`, um auch abgelaufene und widerrufene Sitzungen zurückzugeben. Standardwert ist `false`. |
| `org_id` | Query | nein | Organisations-ID, mit `org_` beginnend. Beschränkt die Ansicht auf diese Organisation; siehe [Organisationsbereich](#organisationsbereich). Benötigt `organizations:read`. |

## Antwort

`200 OK`. Leere Felder sind `null`.

```json
{
  "data": [
    {
      "id": "ses_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "user_id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "status": "active",
      "login_host": "login.example.com",
      "auth_time": "2026-02-01T08:00:00Z",
      "acr": "mfa",
      "amr": ["pwd", "otp"],
      "created_at": "2026-02-01T08:00:00Z",
      "last_seen_at": "2026-02-01T09:15:00Z",
      "idle_expires_at": "2026-02-08T09:15:00Z",
      "absolute_expires_at": "2026-03-03T08:00:00Z",
      "org_id": null,
      "ip_address": "203.0.113.10",
      "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_0)",
      "revoked_at": null,
      "revoke_reason": null
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}
```

`status`: `active`, `expired`, `revoked` · `acr`: `1fa`, `mfa`, `phr` · `org_id`: die Organisation der Sitzung, falls vorhanden.

## Fehler

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

| HTTP | `code` | Wann |
|---|---|---|
| 422 | `validation_failed` | `include_inactive` ist weder `true` noch `false`. |
| 404 | `not_found` | Der Benutzer existiert in dieser Umgebung nicht (oder die ID ist fehlerhaft), oder `org_id` ist angegeben und der Benutzer ist kein Mitglied dieser Organisation. |
| 401 | `unauthenticated` | Der API-Schlüssel fehlt, ist ungültig oder wurde widerrufen. |
| 403 | `insufficient_permissions` | Dem Schlüssel fehlt die Berechtigung `sessions:read`, oder `org_id` ist angegeben und dem Schlüssel fehlt `organizations:read`. |
| 429 | `rate_limited` | Das Ratenlimit wurde überschritten; beachten Sie `Retry-After`. |
| 503 | `service_unavailable` | Ein Dienst ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage später. |

## Beispiel

```bash
curl "https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/sessions?include_inactive=true" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI: `keenauth users sessions list usr_0a1b2c3d4e5f6g7h8j9k0m1n2p --include-inactive`

## Personenbezogene Daten

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