
# Déverrouiller un utilisateur

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

Supprime tous les verrouillages de compte ouverts d'un utilisateur, sur tous les parcours de connexion, et remet à zéro ses compteurs d'échecs. Pour chaque verrouillage supprimé, l'événement `user.unlocked` (`by = admin`) est écrit, et un enregistrement d'audit de gestion (`user.unlocked`) liste les verrouillages supprimés, avec vos identifiants d'accès comme acteur. Un utilisateur sans verrouillage ouvert obtient `unlocked: 0` et rien n'est écrit : l'appel peut donc être répété sans risque. Pour supprimer un seul verrouillage, utilisez [`DELETE /v1/attack-protection/lockouts/{lockout_id}`](../attack-protection/delete-lockout.md).

## Requête

| Paramètre | Emplacement | Obligatoire | Description |
|---|---|---|---|
| `user_id` | chemin | oui | Identifiant de l'utilisateur, préfixé `usr_`. |

L'opération ne prend aucun corps.

## Réponse

`200 OK`.

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

`unlocked` est le nombre de verrouillages supprimés (au plus un par parcours de connexion).

## Erreurs

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

| HTTP | `code` | Quand |
|---|---|---|
| 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 possède pas la permission `user-credentials: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

```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`
