
# Sbloccare un utente

`POST /v1/users/{user_id}:unlock` · permesso `user-credentials:write`

Rimuove tutti i blocchi dell'account aperti di un utente, su tutti i percorsi di accesso, e azzera i suoi contatori dei tentativi falliti. Per ogni blocco rimosso viene scritto l'evento `user.unlocked` (`by = admin`), e un record di audit di gestione (`user.unlocked`) elenca i blocchi rimossi, con la credenziale utilizzata come attore. Un utente senza blocchi aperti riceve `unlocked: 0` e non viene scritto nulla, quindi la chiamata può essere ripetuta senza rischi. Per rimuovere un solo blocco, usare [`DELETE /v1/attack-protection/lockouts/{lockout_id}`](../attack-protection/delete-lockout.md).

## Richiesta

| Parametro | In | Obbligatorio | Descrizione |
|---|---|---|---|
| `user_id` | percorso | sì | ID dell'utente, con prefisso `usr_`. |

L'operazione non prevede un corpo.

## Risposta

`200 OK`.

```json
{"unlocked": 2}
```

`unlocked` è il numero di blocchi rimossi (al massimo uno per percorso di accesso).

## Errori

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

| HTTP | `code` | Quando |
|---|---|---|
| 404 | `not_found` | L'utente non esiste in questo ambiente (oppure l'ID non è valido). |
| 401 | `unauthenticated` | La chiave API è assente, non valida o revocata. |
| 403 | `insufficient_permissions` | La chiave non ha il permesso `user-credentials:write`. |
| 429 | `rate_limited` | È stato superato il limite di frequenza; rispettare `Retry-After`. |
| 503 | `service_unavailable` | Una dipendenza non è temporaneamente disponibile; riprovare più tardi. |

## Esempio

```bash
curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p:unlock \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI: `keenauth users unlock usr_0a1b2c3d4e5f6g7h8j9k0m1n2p`
