Listar los consentimientos de un usuario

GET /v1/users/{user_id}/consents · permiso users:read

Lista los consentimientos OAuth que el usuario ha otorgado a las aplicaciones, del más reciente al más antiguo. Solo se devuelven los consentimientos activos: un consentimiento revocado, o reemplazado por un consentimiento más reciente de la misma aplicación, no aparece en la lista. La lista solo pagina hacia adelante y no devuelve un recuento total. La respuesta no incluye el texto de la pantalla de consentimiento que vio el usuario.

Solicitud

Parámetro En Obligatorio Descripción
user_id path sí ID del usuario, con el prefijo usr_.
limit query no Elementos por página, de 1 a 100 (predeterminado 20).
after query no Cursor de list_metadata.after de la página anterior del mismo usuario.

before y order=asc no se admiten y devuelven 422.

Respuesta

200 OK. Los campos vacíos son null.

{
  "data": [
    {
      "id": "cns_01jb2k8m5c3f6t9w2y4b7d0g3k",
      "user_id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "application_id": "app_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "api_id": "api_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "org_id": null,
      "scopes": ["openid", "profile", "orders:read"],
      "authorization_details_types": [],
      "granted_at": "2026-10-20T09:00:00Z",
      "consent_screen_version": "3",
      "locale": "en",
      "prompt_reason": "scope_expansion"
    }
  ],
  "list_metadata": {"before": null, "after": null}
}
Campo Descripción
id ID del consentimiento, con el prefijo cns_.
application_id La aplicación a la que se otorgó el consentimiento.
api_id La API a la que está vinculado el consentimiento, si la hay.
org_id El contexto de la organización en el que se otorgó el consentimiento, si lo hay.
scopes Los ámbitos concedidos, ordenados y sin repetición.
authorization_details_types Tipos de solicitud de autorización enriquecida concedidos; vacío si no hay ninguno.
consent_screen_version, locale La versión y el idioma de la pantalla de consentimiento que aceptó el usuario.
prompt_reason Motivo por el que se solicitó el consentimiento: first, scope_expansion, prompt_consent o skip_consent (aplicación de primera parte sin pantalla de consentimiento).

Errores

Cada error es un cuerpo application/problem+json con un code estable.

HTTP code Cuándo
400 invalid_cursor El cursor está mal formado o pertenece a otra lista.
422 validation_failed limit está fuera de rango, o se envió before o un order ascendente.
404 not_found El usuario no existe en este entorno (o el ID está mal formado).
401 unauthenticated La clave de API falta, no es válida o fue revocada.
403 insufficient_permissions La clave no tiene el permiso users:read.
429 rate_limited Se superó el límite de frecuencia; respete Retry-After.
503 service_unavailable Una dependencia no está disponible temporalmente; vuelva a intentarlo más tarde.

Ejemplo

curl "https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/consents?limit=50" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"

CLI: keenauth users consents list usr_0a1b2c3d4e5f6g7h8j9k0m1n2p --limit 50

Datos personales

Este endpoint contiene datos personales: registros de consentimiento. 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.