Lister les consentements d'un utilisateur

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

Liste les consentements OAuth que l'utilisateur a accordés aux applications, du plus récent au plus ancien. Seuls les consentements actifs sont renvoyés : un consentement révoqué, ou remplacé par un consentement plus récent pour la même application, n'est pas listé. La liste ne permet que la pagination vers l'avant et ne renvoie aucun nombre total. La réponse n'inclut pas le texte de l'écran de consentement vu par l'utilisateur.

Requête

Paramètre Dans Obligatoire Description
user_id path oui Identifiant de l'utilisateur, préfixé usr_.
limit query non Éléments par page, de 1 à 100 (par défaut 20).
after query non Curseur tiré de list_metadata.after de la page précédente du même utilisateur.

before et order=asc ne sont pas pris en charge et renvoient 422.

Réponse

200 OK. Les champs vides valent 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}
}
Champ Description
id Identifiant du consentement, préfixé cns_.
application_id L'application à laquelle le consentement a été accordé.
api_id L'API à laquelle le consentement est lié, le cas échéant.
org_id Le contexte de l'organisation dans lequel le consentement a été accordé, le cas échéant.
scopes Les scopes accordés, triés et uniques.
authorization_details_types Types de demandes d'autorisation riches accordés ; vide si aucun.
consent_screen_version, locale La version et la langue de l'écran de consentement accepté par l'utilisateur.
prompt_reason Raison pour laquelle le consentement a été demandé : first, scope_expansion, prompt_consent ou skip_consent (application first-party sans écran de consentement).

Erreurs

Chaque erreur est un corps application/problem+json avec un code stable.

HTTP code Quand
400 invalid_cursor Le curseur est mal formé ou appartient à une autre liste.
422 validation_failed limit est hors plage, ou before ou un order ascendant a été envoyé.
404 not_found L'utilisateur n'existe pas dans cet environnement (ou l'identifiant est mal formé).
401 unauthenticated La clé d'API est absente, invalide ou révoquée.
403 insufficient_permissions La clé ne dispose pas de l'autorisation users:read.
429 rate_limited La limite de débit a été dépassée ; respectez Retry-After.
503 service_unavailable Une dépendance est temporairement indisponible ; réessayez plus tard.

Exemple

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

Données personnelles

Cet endpoint traite des données personnelles : des enregistrements de consentement. Données personnelles dans les API KeenAuth décrit ce qui est stocké, la durée de conservation et la manière dont elles sont supprimées. N'envoyez aucune catégorie particulière de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.