Lister les membres d'une organisation

GET /fapi/v1/organizations/{org_id}/memberships · appelé depuis l'hôte de connexion de l'environnement

Liste les adhésions d'une organisation, triées par date de dernière modification, pour un écran de profil d'organisation. Les invitations en attente n'apparaissent jamais ici. Chaque ligne désigne l'utilisateur uniquement par son identifiant usr_… ; ce point de terminaison ne renvoie ni noms ni adresses e-mail. Nécessite le cookie __Host-idp_session de l'utilisateur authentifié ; si le cookie est absent, expiré ou révoqué, renvoie 401 unauthenticated. Une application de première partie sur une autre origine peut à la place envoyer son jeton d'accès à l'API front (Authorization: DPoP <token> avec une preuve DPoP ; voir Jeton d'accès à l'API front). L'utilisateur doit être un membre actif de l'organisation disposant de l'autorisation idp_members:read. Un utilisateur qui n'est pas membre reçoit 404 not_found ; un membre sans cette autorisation reçoit 403 insufficient_permissions.

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

Requête

En-têtes :

En-tête Obligatoire Description
Idp-Client oui Identifiant du SDK.

org_id : l'identifiant de l'organisation (org_…).

Paramètres de requête :

Paramètre Obligatoire Description
status non active, suspended ou removed ; les trois lorsqu'il est omis.
role_id non Uniquement les adhésions détenant ce rôle (rol_…).
after non La valeur next_after de la page précédente (opaque).
limit non 1 à 100, 20 par défaut.

Aucun corps.

Réponse

200 OK avec {"data": [...], "next_after": "..."} ; next_after est absent de la dernière page.

Chaque élément : id (mem_…), user_id (usr_…), status, roles (chacun avec role_id et source, c'est-à-dire l'origine de l'attribution, comme admin_api ou default), created_at, activated_at (ou null), expires_at (ou null), updated_at, version.

Erreurs

Statut Code Cas
400 invalid_cursor after est mal formé.
401 unauthenticated Aucun cookie de session valide.
403 insufficient_permissions L'utilisateur ne dispose pas de idp_members:read dans l'organisation.
404 not_found Aucune organisation de ce type pour cet utilisateur ; un identifiant inconnu, mal formé ou étranger reçoit la même réponse.
422 validation_failed status, role_id ou limit est invalide.
503 service_unavailable Temporairement indisponible ; réessayez après Retry-After.

Exemple

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
{
  "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"
}

Données personnelles

Ce point de terminaison traite des données personnelles : adhésions aux organisations et invitations. Données personnelles dans les API KeenAuth décrit ce qui est stocké, pendant combien de temps et comment elles sont supprimées. Ne transmettez pas de catégories particulières de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.