Usuarios
Listar Usuarios del Tenant
Obtener una lista paginada de usuarios en el tenant actual.
GET /api/user/tenant-users
Devuelve una lista paginada de los usuarios del tenant activo, del más reciente al más antiguo.
Auth: Requerida — permiso user:view
Encabezados
| Encabezado | Requerido | Valor |
|---|---|---|
Authorization | Sí | Bearer <access_token> |
x-tenant-id | Sí | UUID del tenant |
Parámetros de Consulta
| Parámetro | Tipo | Por Defecto | Descripción |
|---|---|---|---|
page | number | 1 | Número de página, empezando en 1 |
limit | number | 20 | Elementos por página (máximo 100) |
search | string | — | Coincidencia parcial, sin distinguir mayúsculas de minúsculas, sobre firstName, lastName, email o username |
role | string | — | Solo usuarios con este valor de rol: super_admin, admin, fde, supervisor, operator, viewer |
isActive | boolean | — | true o false |
Ejemplo
curl "https://api.reten.ai/api/user/tenant-users?page=1&limit=10" \
-H "Authorization: Bearer <token>" \
-H "x-tenant-id: <tenant-id>"const params = new URLSearchParams({ page: "1", limit: "10" });
const response = await fetch(`https://api.reten.ai/api/user/tenant-users?${params}`, {
headers: {
"Authorization": "Bearer <token>",
"x-tenant-id": "<tenant-id>",
},
});
const data = await response.json();import requests
response = requests.get(
"https://api.reten.ai/api/user/tenant-users",
headers={
"Authorization": "Bearer <token>",
"x-tenant-id": "<tenant-id>",
},
params={"page": 1, "limit": 10},
)
data = response.json()Respuesta 200 OK
{
"items": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"firstName": "Jane",
"lastName": "Doe",
"username": "jdoe",
"email": "jdoe@example.com",
"roles": ["supervisor"],
"isActive": true,
"createdAt": "2026-09-28T14:30:00.000Z"
}
],
"total": 1,
"page": 1,
"limit": 10,
"totalPages": 1
}Con role, el campo roles de cada usuario lista solo el rol filtrado, aunque el usuario tenga otros roles.
Respuestas de Error
| Estado | Descripción |
|---|---|
400 | Error de validación — page o limit fuera de rango, role no es un valor de rol, o isActive no es true/false |
403 | Falta el permiso — Required permissions: user:view |