
# Oturumu iptal et

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

Oturumu ve ona bağlı refresh token ailelerini iptal eder; oturumda verilmiş access token'lar introspection ve iptal denetiminde (`sid`) artık kabul edilmez ve oturumun uygulamalarına çıkış bildirimi gider. İsteğin gövdesi yoktur. Zaten iptal edilmiş ya da süresi dolmuş oturumda bir şey değişmez ve `already_inactive: true` döner. İptal yönetim audit'ine yazılır. Yeniden denemeleri güvenli kılmak için `Idempotency-Key` başlığı gönderin.

## İstek

| Parametre | Yer | Zorunlu | Açıklama |
|---|---|---|---|
| `session_id` | path | evet | `ses_` önekli oturum kimliği. |

## Yanıt

`200 OK`.

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

## Hatalar

Her hata, kararlı bir `code` taşıyan `application/problem+json` gövdesidir.

| HTTP | `code` | Ne zaman |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | Gönderilen gövde geçerli JSON değil ya da alan taşıyor. |
| 404 | `not_found` | Oturum bu ortamda yok (ya da kimlik biçimsiz). |
| 401 | `unauthenticated` | API anahtarı yok, geçersiz ya da iptal edilmiş. |
| 403 | `insufficient_permissions` | Anahtarda `sessions:write` izni yok. |
| 429 | `rate_limited` | Hız sınırı aşıldı; `Retry-After` değerine uyun. |
| 503 | `service_unavailable` | Bir bağımlılık geçici olarak kullanılamıyor; sonra yeniden deneyin. |

## Örnek

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