
# Mitglieder einer Organisation auflisten

`GET /fapi/v1/organizations/{org_id}/memberships` · aufgerufen vom Anmelde-Host der Umgebung

Listet die Mitgliedschaften einer Organisation, sortiert nach der letzten Änderung, für eine Profilansicht der Organisation. Ausstehende Einladungen erscheinen hier nie. Jede Zeile nennt den Benutzer nur über dessen `usr_…`-Kennung; dieser Endpunkt liefert weder Namen noch E-Mail-Adressen. Erforderlich ist das Cookie `__Host-idp_session` des angemeldeten Benutzers; fehlt es, ist abgelaufen oder widerrufen, wird `401 unauthenticated` zurückgegeben. Eine Erstanbieter-Anwendung auf einer anderen Origin kann stattdessen ihr Front-API-Zugriffstoken senden (`Authorization: DPoP <token>` mit einem DPoP-Nachweis; siehe [Front-API-Zugriffstoken](/docs/api/fapi/front-api-token)). Der Benutzer muss aktives Mitglied der Organisation sein und die Berechtigung `idp_members:read` besitzen. Ein Benutzer, der kein Mitglied ist, erhält `404 not_found`; ein Mitglied ohne die Berechtigung erhält `403 insufficient_permissions`.

Mit `@keenauth/js`: `await keenauth.organizations.members(orgId, { status: "active" })`.

## Anfrage

Header:

| Header | Erforderlich | Beschreibung |
| --- | --- | --- |
| `Idp-Client` | ja | SDK-Kennung. |

`org_id`: die Kennung der Organisation (`org_…`).

Abfrageparameter:

| Parameter | Erforderlich | Beschreibung |
| --- | --- | --- |
| `status` | nein | `active`, `suspended` oder `removed`; alle drei, wenn nichts angegeben ist. |
| `role_id` | nein | Nur Mitgliedschaften, die diese Rolle besitzen (`rol_…`). |
| `after` | nein | Der `next_after`-Wert der vorherigen Seite (undurchsichtig). |
| `limit` | nein | 1–100, Standard 20. |

Kein Body.

## Antwort

`200 OK` mit `{"data": [...], "next_after": "..."}`; `next_after` fehlt auf der letzten Seite.

Jeder Eintrag: `id` (`mem_…`), `user_id` (`usr_…`), `status`, `roles` (jeweils `role_id` und `source`, also die Herkunft der Zuweisung, z. B. `admin_api` oder `default`), `created_at`, `activated_at` (oder `null`), `expires_at` (oder `null`), `updated_at`, `version`.

## Fehler

| Status | Code | Wann |
| --- | --- | --- |
| 400 | `invalid_cursor` | `after` ist fehlerhaft. |
| 401 | `unauthenticated` | Kein gültiges Sitzungs-Cookie. |
| 403 | `insufficient_permissions` | Dem Benutzer fehlt `idp_members:read` in der Organisation. |
| 404 | `not_found` | Keine solche Organisation für diesen Benutzer; eine unbekannte, fehlerhafte oder fremde Kennung führt zur selben Antwort. |
| 422 | `validation_failed` | `status`, `role_id` oder `limit` ist ungültig. |
| 503 | `service_unavailable` | Vorübergehend nicht verfügbar; nach `Retry-After` erneut versuchen. |

## Beispiel

```bash
curl "https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/memberships?status=active&limit=2" \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -b cookies.txt
```

```json
{
  "data": [
    {
      "id": "mem_01jbz6x8kq3m2n4p5r6s7t8v9b",
      "user_id": "usr_01jbz6x8kq3m2n4p5r6s7t8v9c",
      "status": "active",
      "roles": [{ "role_id": "rol_01jbz6x8kq3m2n4p5r6s7t8v9w", "source": "admin_api" }],
      "created_at": "2026-11-03T09:00:00Z",
      "activated_at": "2026-11-03T09:00:00Z",
      "expires_at": null,
      "updated_at": "2026-11-03T09:00:00Z",
      "version": 1
    }
  ],
  "next_after": "AAAYQ3dAgGUBmgAAAABwAIAAAAAAAADh"
}
```

## Personenbezogene Daten

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