
# Révoquer une session

`POST /v1/sessions/{session_id}:revoke` · autorisation `sessions:write`

Révoque la session et les familles de jetons d'actualisation qui y sont liées ; les jetons d'accès émis dans la session cessent d'être acceptés par l'introspection et par la vérification de révocation (`sid`), et les applications de la session reçoivent des notifications de déconnexion. La demande n'a pas de corps. Révoquer une session déjà révoquée ou expirée ne change rien et renvoie `already_inactive: true`. La révocation est écrite dans le journal d'audit de gestion. Envoyez un en-tête `Idempotency-Key` pour rendre les nouvelles tentatives sûres.

## Demande

| Paramètre | Dans | Obligatoire | Description |
|---|---|---|---|
| `session_id` | chemin | oui | Identifiant de session, préfixé `ses_`. |

## Réponse

`200 OK`.

```json
{
  "already_inactive": false,
  "revoked_token_families": 2
}
```

## Erreurs

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

| HTTP | `code` | Quand |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | Un corps a été envoyé qui n'est pas du JSON valide ou contient un champ. |
| 404 | `not_found` | La session 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 `sessions:write`. |
| 429 | `rate_limited` | La limite de débit a été dépassée ; respectez l'en-tête `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/sessions/ses_0a1b2c3d4e5f6g7h8j9k0m1n2p:revoke \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)"
```

CLI : `keenauth sessions revoke ses_0a1b2c3d4e5f6g7h8j9k0m1n2p --yes`
