Listar registros de aprovisionamiento del directorio
GET /v1/directories/{directory_id}/provisioning-logs · permiso directories:read
Lista el registro de aprovisionamiento de un directorio SCIM, de la más reciente a la más antigua. Cada solicitud SCIM autenticada que el proveedor de identidad envió es un registro: método, plantilla de ruta (el ID real nunca aparece en la ruta), tipo de recurso e ID, un resumen de operaciones sin valores, nombres de atributos ignorados, estado HTTP, scim_type, duración, el prefijo de la dirección del cliente (IPv4 /24, IPv6 /48), la clase de cliente y si la retención de desaprovisionamiento masivo detuvo la solicitud. Los cuerpos de solicitud y respuesta, los valores de los atributos, la dirección IP completa, el User-Agent y el valor del token nunca se almacenan ni se devuelven.
Los registros se conservan durante el período de retención de registros de su plan (Free 7 días, Startup 14, Business 30, Enterprise 90). El orden es siempre de la más reciente a la más antigua; no existe el parámetro order. Los registros de un directorio eliminado siguen siendo legibles con GET /v1/logs?type=scim.request.
Solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
directory_id |
path | sí | ID del directorio SCIM (dir_…). |
limit |
query | no | 1–100, por defecto 20. |
after |
query | no | El cursor de list_metadata.after (registros más antiguos). |
before |
query | no | El cursor de list_metadata.before (registros más recientes). |
from |
query | no | Límite inferior inclusivo (RFC 3339). |
to |
query | no | Límite superior exclusivo (RFC 3339). |
No hay cuerpo de solicitud.
Respuesta
200 OK con una página de registros.
{
"data": [
{
"id": "evt_01j9xp4q6r8s0t2v4w6x8y0z2b",
"occurred_at": "2026-10-20T12:00:00Z",
"outcome": "success",
"organization_id": "org_01j9xk1m3n5p7q9r1s3t5v7w9x",
"token_id": "dst_01j9xn2p4q6r8s0t2v4w6x8y0z",
"method": "PATCH",
"path_template": "PATCH /Users/{id}",
"resource_type": "User",
"resource_id": "dsu_01j9xq5r7s9t1v3w5x7y9z1a3c",
"operation_summary": ["replace:active"],
"ignored_attributes": [],
"status": 200,
"scim_type": null,
"duration_ms": 12,
"client_ip_prefix": "203.0.113.0/24",
"client_class": "okta",
"held": false,
"request_id": "0192f5e0-0000-7000-8000-000000000001",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
],
"list_metadata": {
"before": null,
"after": null
}
}
Errores
| HTTP | código | Cuándo |
|---|---|---|
| 400 | invalid_cursor |
El cursor está mal formado o pertenece a otra solicitud. |
| 400 | range_outside_retention |
from es anterior al período de retención de su plan. |
| 404 | not_found |
El directorio no existe en este entorno. |
| 422 | validation_failed |
limit está fuera de rango, from o to no están en formato RFC 3339, to no es posterior a from, o se indicó order (unsupported). |
| 401 | unauthenticated |
La credencial falta, no es válida o ha sido revocada. |
| 403 | insufficient_permissions |
La credencial no tiene el permiso requerido. |
| 429 | rate_limited |
Se superó el límite de frecuencia; reintente después del período indicado en Retry-After. |
| 503 | service_unavailable |
La sincronización de directorios o la búsqueda de registros no están disponibles temporalmente o no están configuradas en este despliegue; reintente después del período indicado en Retry-After. |
Ejemplo
curl -i "https://api.eu.keenauth.com/v1/directories/dir_01j9xm2n4p6q8r0s2t4v6w8y0z/provisioning-logs?limit=20" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
keenauth directories provisioning-logs list dir_01j9xm2n4p6q8r0s2t4v6w8y0z --from 2026-10-01T00:00:00Z
Datos personales
Este endpoint contiene datos personales: usuarios del directorio (SCIM). Datos personales en las API de KeenAuth describe qué se almacena, 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.