Benutzer einer Organisation hinzufügen
POST /v1/organizations/{org_id}/memberships · Berechtigung organizations:write
Fügt einen bestehenden Benutzer direkt der Organisation hinzu (Quelle admin_api, Status active). Ohne role_ids wird die Standard-Mitgliedsrolle der Organisation zugewiesen; jede Rolle muss eine Rolle der Umgebung oder eine Rolle dieser Organisation sein. Die Antwort enthält einen ETag; der Schreibvorgang wird als organization_membership.created protokolliert. Idempotency-Key ist optional.
Anfrage
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
org_id |
Pfad | ja | ID der Organisation (org_…). |
user_id |
string | ja | ID des Benutzers (usr_…). |
role_ids |
string[] | nein | Rollen-IDs (rol_…), höchstens 50. |
expires_at |
string | nein | RFC-3339-Zeitpunkt in der Zukunft, zu dem die Mitgliedschaft endet. |
Antwort
201 Created mit der Mitgliedschaft.
{
"id": "mem_01j9xn5p9s0t4v6w8x0y2z4a6c",
"organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
"user_id": "usr_01j9xh2k6p7q1r3s5t7v9w1x3y",
"status": "active",
"source": "admin_api",
"reason": null,
"roles": [
{
"role_id": "rol_01j9xr7s1t2w6x8y0z2a4b6c8e",
"source": "admin_api",
"assigned_at": "2026-10-12T09:31:00.123456Z"
}
],
"expires_at": null,
"created_at": "2026-10-12T09:31:00.123456Z",
"activated_at": "2026-10-12T09:31:00.123456Z",
"suspended_at": null,
"removed_at": null,
"updated_at": "2026-10-12T09:31:00.123456Z",
"version": 1
}
Fehler
| HTTP | Code | Wann |
|---|---|---|
| 404 | not_found |
Die Organisation oder der Benutzer existiert in dieser Umgebung nicht. |
| 403 | role_not_assignable |
Eine Rolle ist weder eine Rolle der Umgebung noch eine Rolle dieser Organisation. |
| 403 | user_not_active |
Der Benutzer ist nicht aktiv. |
| 409 | membership_already_exists |
Der Benutzer ist bereits Mitglied der Organisation. |
| 409 | organization_disabled |
Die Organisation ist deaktiviert. |
| 409 | organization_membership_limit_reached |
Das Mitgliederlimit der Organisation ist erreicht. |
| 409 | membership_limit_reached |
Das Limit der Mitgliedschaften des Benutzers ist erreicht. |
| 422 | anonymous_user_not_allowed |
Der Benutzer ist anonym. |
| 422 | validation_failed |
Ein Feld fehlt oder ist ungültig. |
| 401 | unauthenticated |
Die Anmeldedaten fehlen, sind ungültig oder widerrufen. |
| 403 | insufficient_permissions |
Die Anmeldedaten haben nicht die erforderliche Berechtigung. Die Zuweisung einer privilegierten Rolle (is_privileged) erfordert zusätzlich roles:write; ohne diese Berechtigung wird nichts geschrieben, und required_permissions nennt beide Berechtigungen. |
| 429 | rate_limited |
Das Ratenlimit wurde überschritten; wiederholen Sie die Anfrage nach der Wartezeit aus Retry-After. |
| 503 | service_unavailable |
Eine Abhängigkeit ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach der Wartezeit aus Retry-After. |
Beispiel
curl -i -X POST "https://api.eu.keenauth.com/v1/organizations/org_01j9xk3m7q8r2s4t6v8w0y2z4a/memberships" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"user_id":"usr_01j9xh2k6p7q1r3s5t7v9w1x3y","role_ids":["rol_01j9xr7s1t2w6x8y0z2a4b6c8e"]}'
Personenbezogene Daten
Dieser Endpunkt verarbeitet personenbezogene Daten: Organisationsmitgliedschaften und Einladungen. Personenbezogene Daten in den KeenAuth-APIs 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).