
# Kullanıcının oturumlarını listeleme

`GET /v1/users/{user_id}/sessions` · izin `sessions:read`

Kullanıcının oturumlarını tek sayfada, en son görülen önce olacak şekilde, en fazla 1.000 kayıtla listeler. Listede `limit`, `after`, `before` veya `order` yoktur ve `list_metadata` her zaman `null` değerlidir. Varsayılan olarak yalnızca etkin oturumlar döndürülür; `include_inactive=true` ile süresi dolmuş ve iptal edilmiş oturumlar (hâlâ saklama süresi içinde olanlar) da döndürülür. Tam IP adresi gösterilir ve her görüntüleme yönetim denetim günlüğüne yazılır. Çerezler, belirteçler ve cihaz parmak izleri hiçbir zaman döndürülmez.

## Kuruluş kapsamı

Bir kuruluş yöneticisi için üye tanılama görünümü oluşturmak üzere `org_id` gönderin. Bu durumda anahtarın ayrıca `organizations:read` iznine sahip olması gerekir; aksi halde istek hiçbir veri okunmadan `403 insufficient_permissions` hatasıyla başarısız olur. Kullanıcı bu kuruluşun üyesi değilse (`invited`, `active` veya `suspended` üyelik yoksa), istek bilinmeyen bir kullanıcıyla aynı yanıt olan `404 not_found` hatasıyla başarısız olur. Kullanıcı üyeyse yalnızca o kuruluşun politikası altında açılmış oturumlar (`org_id` değeri o kuruluş olan oturumlar) döndürülür; kullanıcının başka bir kuruluş bağlamındaki ya da hiçbir kuruluşa bağlı olmayan oturumları asla döndürülmez. Bu görünümde `ip_address` ve `user_agent` değerleri `null` olur. `org_id` olmadan yanıt değişmez.

## İstek

| Parametre | Konum | Zorunlu | Açıklama |
|---|---|---|---|
| `user_id` | path | evet | `usr_` önekli kullanıcı kimliği. |
| `include_inactive` | query | hayır | Süresi dolmuş ve iptal edilmiş oturumların da döndürülmesi için `true`. Varsayılan değer `false`. |
| `org_id` | query | hayır | `org_` önekli kuruluş kimliği. Görünümü o kuruluşla sınırlar; bkz. [Kuruluş kapsamı](#kuruluş-kapsamı). `organizations:read` gerektirir. |

## Yanıt

`200 OK`. Boş alanlar `null` olur.

```json
{
  "data": [
    {
      "id": "ses_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "user_id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "status": "active",
      "login_host": "login.example.com",
      "auth_time": "2026-02-01T08:00:00Z",
      "acr": "mfa",
      "amr": ["pwd", "otp"],
      "created_at": "2026-02-01T08:00:00Z",
      "last_seen_at": "2026-02-01T09:15:00Z",
      "idle_expires_at": "2026-02-08T09:15:00Z",
      "absolute_expires_at": "2026-03-03T08:00:00Z",
      "org_id": null,
      "ip_address": "203.0.113.10",
      "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_0)",
      "revoked_at": null,
      "revoke_reason": null
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}
```

`status`: `active`, `expired`, `revoked` · `acr`: `1fa`, `mfa`, `phr` · `org_id`: varsa oturumun kuruluşu.

## Hatalar

Her hata, kararlı bir `code` içeren bir `application/problem+json` gövdesidir.

| HTTP | `code` | Ne zaman |
|---|---|---|
| 422 | `validation_failed` | `include_inactive` değeri `true` veya `false` değilse. |
| 404 | `not_found` | Kullanıcı bu ortamda yoksa (ya da kimlik biçimi hatalıysa) veya `org_id` verilmiş ve kullanıcı o kuruluşun üyesi değilse. |
| 401 | `unauthenticated` | API anahtarı eksik, geçersiz veya iptal edilmişse. |
| 403 | `insufficient_permissions` | Anahtarda `sessions:read` izni yoksa veya `org_id` verilmiş ve anahtarda `organizations:read` yoksa. |
| 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; daha sonra yeniden deneyin. |

## Örnek

```bash
curl "https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/sessions?include_inactive=true" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI: `keenauth users sessions list usr_0a1b2c3d4e5f6g7h8j9k0m1n2p --include-inactive`

## Kişisel veriler

Bu uç nokta kişisel veri içerir: oturumlar. [KeenAuth API'lerinde kişisel veriler](/docs/policies/personal-data) sayfasında neyin saklandığı, ne kadar süreyle tutulduğu ve nasıl silindiği açıklanmaktadır. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.
