Lister les utilisateurs

GET /v1/users · autorisation users:read

Liste les utilisateurs de l'environnement avec une pagination par curseur, les plus récents en premier par défaut. Seuls les filtres ne contenant aucune donnée personnelle sont acceptés ici. Pour rechercher des utilisateurs par adresse e-mail, numéro de téléphone ou nom d'utilisateur, utilisez Rechercher des utilisateurs.

Requête

Paramètre Dans Requis Description
limit query non Taille de page, de 1 à 100. Par défaut 20.
after query non Curseur opaque issu de list_metadata.after. Exclusif avec before.
before query non Curseur opaque issu de list_metadata.before. Exclusif avec after.
order query non asc ou desc selon la date de création. Par défaut desc.
status query non active, blocked ou pending_deletion.
external_id query non Correspondance exacte avec votre propre identifiant.
created_after query non Heure RFC 3339 ; utilisateurs créés après cette heure.
created_before query non Heure RFC 3339 ; utilisateurs créés avant cette heure.

Un curseur n'est valable qu'avec les mêmes filtres et le même ordre que ceux pour lesquels il a été émis ; sinon, la requête échoue avec invalid_cursor.

Réponse

200 OK. data contient les utilisateurs de la page ; list_metadata.before et list_metadata.after sont les curseurs de la page précédente et de la page suivante (null lorsqu'il n'y en a pas). Aucun nombre total n'est renvoyé.

Les données personnelles sont masquées lorsque la clé ne possède pas l'autorisation users:read_pii : email devient a***@e***.com, phone_number ne conserve que ses 2 derniers chiffres (+**********67), name, given_name, family_name, middle_name et nickname deviennent des initiales (A. L.), username ne conserve que son premier caractère (a***), birthdate devient ****-**-** et address devient {"redacted": true}. user_metadata et app_metadata ne sont pas masqués.

{
  "data": [ {
    "id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
    "kind": "regular",
    "status": "active",
    "external_id": null,
    "username": null,
    "name": "Ada Lovelace",
    "email": "ada@example.com",
    "email_verified": true,
    "phone_number": null,
    "phone_verified": false,
    "user_metadata": {},
    "app_metadata": {},
    "created_via": "admin_api",
    "created_at": "2026-01-15T09:30:00Z",
    "updated_at": "2026-01-15T09:30:00Z",
    "last_sign_in_at": null,
    "deletion_requested_at": null,
    "deletion_due_at": null
  } ],
  "list_metadata": { "before": null, "after": "<opaque cursor>" }
}

Erreurs

Chaque erreur est un corps application/problem+json accompagné d'un code stable.

HTTP code Quand
400 invalid_cursor Le curseur est mal formé, altéré ou a été émis pour d'autres filtres.
422 validation_failed Un paramètre de requête est invalide (limit hors plage, horodatage incorrect, paramètre répété).
401 unauthenticated La clé API est absente, invalide ou révoquée.
403 insufficient_permissions La clé ne possède pas 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?limit=20&status=active" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"

Données personnelles

Ce point de terminaison contient des données personnelles : profil de l'utilisateur final. 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.