Lister les utilisateurs du répertoire
GET /v1/directories/{directory_id}/users · autorisation directories:read
Liste les enregistrements d'utilisateurs actifs que le fournisseur d'identité a provisionnés dans le répertoire, classés par ID : les attributs normalisés, les groupes du répertoire de l'utilisateur, le lien vers l'utilisateur de l'environnement et l'indicateur de dérive. Les enregistrements supprimés ne sont pas renvoyés. Les filtres state et group_id peuvent être combinés. Seule la pagination vers l'avant existe ; le curseur est lié au répertoire et aux filtres.
Sans l'autorisation users:read_pii, l'identifiant reçoit des données personnelles masquées : user_name sous la forme de son premier caractère suivi de ***, emails[].value sous la forme a***@e***.com, given_name, family_name et display_name sous forme d'initiales, et attributes à null. external_id, locale, zoneinfo, les groupes et les ID ne sont jamais masqués. Une clé secrète dispose de toutes les autorisations.
Requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
directory_id |
path | oui | ID du répertoire SCIM (dir_…). |
state |
query | non | Seulement les utilisateurs dans cet état : active, inactive ou held (dans un blocage de désactivation en masse). |
group_id |
query | non | Seulement les membres de ce groupe du répertoire (dsg_…) ; un groupe d'un autre répertoire renvoie une page vide. |
limit |
query | non | 1–100, valeur par défaut 20. |
after |
query | non | Le curseur issu de list_metadata.after. |
Il n'y a pas de corps de requête.
Réponse
200 OK avec une page d'utilisateurs du répertoire.
{
"data": [
{
"id": "dsu_01j9xp4q6r8s0t2v4w6x8y0z2b",
"directory_id": "dir_01j9xm2n4p6q8r0s2t4v6w8y0z",
"external_id": "00u1a2b3c4",
"user_name": "jane@example.com",
"emails": [{ "value": "jane@example.com", "primary": true }],
"given_name": "Jane",
"family_name": "Doe",
"display_name": "Jane Doe",
"locale": "en-US",
"zoneinfo": "Europe/Berlin",
"state": "active",
"attributes": { "department": "Engineering" },
"groups": [{ "id": "dsg_01j9xn3p5q7r9s1t3v5w7x9y1a", "name": "Engineering" }],
"user_id": "usr_01j9xq5r7s9t1v3w5x7y9z1a3c",
"link_status": "linked",
"drift": false,
"created_at": "2026-10-20T09:00:00Z",
"updated_at": "2026-10-20T09:05:00Z"
}
],
"list_metadata": {
"before": null,
"after": null
}
}
link_status vaut l'une des valeurs suivantes : linked, invited, blocked_other_org, duplicate, mirror_only ou unlinked ; user_id vaut null lorsque l'enregistrement n'est pas lié. Les valeurs vides sont null.
Erreurs
| HTTP | code | Quand |
|---|---|---|
| 400 | invalid_cursor |
Le curseur est invalide ou appartient à un autre répertoire ou à un autre filtre. |
| 404 | not_found |
Le répertoire n'existe pas dans cet environnement. |
| 422 | validation_failed |
state ou group_id est invalide ou répété, limit est hors plage, ou before ou order a été fourni (unsupported). |
| 401 | unauthenticated |
L'identifiant est absent, invalide ou révoqué. |
| 403 | insufficient_permissions |
L'identifiant ne dispose pas de l'autorisation requise. |
| 429 | rate_limited |
La limite de débit a été dépassée ; réessayez après la période indiquée par Retry-After. |
| 503 | service_unavailable |
La synchronisation des répertoires est temporairement indisponible ou non configurée dans ce déploiement ; réessayez après la période indiquée par Retry-After. |
Exemple
curl -i "https://api.eu.keenauth.com/v1/directories/dir_01j9xm2n4p6q8r0s2t4v6w8y0z/users?state=active&limit=20" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
Données personnelles
Ce point de terminaison traite des données personnelles : des utilisateurs de répertoire (SCIM). Données personnelles dans les API KeenAuth décrit ce qui est stocké, combien de temps ces données sont conservées et comment elles sont supprimées. N'envoyez de catégories particulières de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.