Blocca un utente

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

Blocca un utente con un blocco del cliente (source = admin_api); lo stato diventa blocked. Bloccare un utente già bloccato va a buon fine senza modifiche. Un utente in attesa di eliminazione non può essere bloccato. La revoca delle sessioni dell'utente viene eseguita in modo asincrono. Invia un header Idempotency-Key per rendere sicuri i tentativi ripetuti.

Request

Parameter In Required Description
user_id path sì ID utente, con prefisso usr_.

Corpo facoltativo:

Campo Tipo Obbligatorio Descrizione
note string no Fino a 1000 caratteri. Non scrivere dati personali.

Response

200 OK. Il corpo è l'oggetto utente. L'header ETag contiene la versione dell'utente.

I dati personali vengono mascherati quando la chiave non ha l'autorizzazione users:read_pii: email diventa a***@e***.com, phone_number mantiene solo le ultime 2 cifre (+**********67), name, given_name, family_name, middle_name e nickname diventano iniziali (A. L.), username mantiene solo il primo carattere (a***), birthdate diventa ****-**-** e address diventa {"redacted": true}. user_metadata e app_metadata non vengono mascherati.

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

Errors

Ogni errore è un corpo application/problem+json con un code stabile.

HTTP code Quando
400 malformed_request, unknown_field Il corpo non è JSON valido oppure contiene un campo sconosciuto.
409 conflict L'utente è in attesa di eliminazione (errors[].code è user_pending_deletion).
415 unsupported_media_type È stato inviato un corpo senza Content-Type: application/json.
422 validation_failed note è troppo lungo.
404 not_found L'utente non esiste in questo ambiente (oppure l'ID non è valido).
401 unauthenticated La chiave API è mancante, non valida o revocata.
403 insufficient_permissions La chiave non ha l'autorizzazione users:write.
429 rate_limited È stato superato il limite di frequenza; rispetta Retry-After.
503 service_unavailable Una dipendenza non è disponibile temporaneamente; riprova più tardi.

Esempio

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

Dati personali

Questo endpoint contiene dati personali: profilo dell'utente finale. Dati personali nelle API di KeenAuth descrive cosa viene memorizzato, per quanto tempo viene conservato e come viene eliminato. Non inviare categorie particolari di dati personali (salute, dati biometrici, religione, opinioni politiche, orientamento sessuale) in nessun campo.