Listar los miembros de una organización
GET /fapi/v1/organizations/{org_id}/memberships · llamado desde el host de inicio de sesión del entorno
Lista las membresías de una organización, ordenadas por último cambio, para una pantalla de perfil de organización. Las invitaciones pendientes nunca aparecen aquí. Cada fila identifica al usuario solo mediante su identificador usr_…; este endpoint no devuelve nombres ni direcciones de correo electrónico. Requiere la cookie __Host-idp_session del usuario autenticado; si la cookie falta, ha caducado o ha sido revocada, devuelve 401 unauthenticated. Una aplicación propia en otro origen puede enviar, en su lugar, su token de acceso a la API frontal (Authorization: DPoP <token> con una prueba DPoP; consulte Token de acceso a la API frontal). El usuario debe ser miembro activo de la organización con el permiso idp_members:read. Un usuario que no es miembro recibe 404 not_found; un miembro sin el permiso recibe 403 insufficient_permissions.
Con @keenauth/js: await keenauth.organizations.members(orgId, { status: "active" }).
Solicitud
Encabezados:
| Encabezado | Obligatorio | Descripción |
|---|---|---|
Idp-Client |
sí | Identificador del SDK. |
org_id: el identificador de la organización (org_…).
Parámetros de consulta:
| Parámetro | Obligatorio | Descripción |
|---|---|---|
status |
no | active, suspended o removed; los tres cuando se omite. |
role_id |
no | Solo las membresías que tienen este rol (rol_…). |
after |
no | El valor next_after de la página anterior (opaco). |
limit |
no | De 1 a 100, por defecto 20. |
Sin cuerpo.
Respuesta
200 OK con {"data": [...], "next_after": "..."}; next_after no aparece en la última página.
Cada elemento: id (mem_…), user_id (usr_…), status, roles (cada uno con role_id y source, es decir, el origen de la asignación, como admin_api o default), created_at, activated_at (o null), expires_at (o null), updated_at, version.
Errores
| Estado | Código | Cuándo |
|---|---|---|
| 400 | invalid_cursor |
after está mal formado. |
| 401 | unauthenticated |
No hay una cookie de sesión válida. |
| 403 | insufficient_permissions |
El usuario no tiene idp_members:read en la organización. |
| 404 | not_found |
No existe tal organización para este usuario; un identificador desconocido, mal formado o ajeno recibe la misma respuesta. |
| 422 | validation_failed |
status, role_id o limit no es válido. |
| 503 | service_unavailable |
Servicio temporalmente no disponible; vuelva a intentarlo después de Retry-After. |
Ejemplo
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"
}
Datos personales
Este endpoint maneja datos personales: membresías e invitaciones de organizaciones. Datos personales en las API de KeenAuth describe qué se almacena, durante cuánto tiempo se conserva y cómo se elimina. No envíe categorías especiales de datos personales (salud, datos biométricos, religión, opiniones políticas, orientación sexual) en ningún campo.