Bloquer un utilisateur

POST /v1/users/{user_id}:block · autorisation users:write

Bloque un utilisateur au moyen d'un blocage client (source = admin_api) ; le statut devient blocked. Bloquer un utilisateur déjà bloqué réussit sans modification. Un utilisateur en attente de suppression ne peut pas être bloqué. La révocation des sessions de l'utilisateur s'exécute de manière asynchrone. Envoyez un en-tête Idempotency-Key pour rendre les nouvelles tentatives sûres.

Requête

Paramètre Dans Obligatoire Description
user_id path oui Identifiant de l'utilisateur, préfixé usr_.

Corps facultatif :

Champ Type Obligatoire Description
note string non Jusqu'à 1000 caractères. N'indiquez pas de données personnelles.

Réponse

200 OK. Le corps est l'objet utilisateur. L'en-tête ETag porte la version de l'utilisateur.

Les données personnelles sont masquées lorsque la clé ne dispose pas de 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.

{
  "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
}

Erreurs

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

HTTP code Quand
400 malformed_request, unknown_field Le corps n'est pas du JSON valide ou contient un champ inconnu.
409 conflict L'utilisateur est en attente de suppression (errors[].code vaut user_pending_deletion).
415 unsupported_media_type Un corps a été envoyé sans Content-Type: application/json.
422 validation_failed note est trop long.
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:write.
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 -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p:block \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"note": "Suspected account takeover"}'

Données personnelles

Cet endpoint traite 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.