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.