
# セッションの取得

`GET /v1/sessions/{session_id}` · 権限 `sessions:read`

どのステータス（`active`、`expired`、`revoked`）のセッションでも、1 件を返します。IP アドレスは完全な形で表示され、この参照操作は管理監査ログに記録されます。Cookie、トークン、デバイスのフィンガープリントは返されません。

## リクエスト

| パラメータ | 指定場所 | 必須 | 説明 |
|---|---|---|---|
| `session_id` | path | はい | セッション ID。接頭辞は `ses_` です。 |

## レスポンス

`200 OK`。空のフィールドは `null` になります。

```json
{
  "id": "ses_0a1b2c3d4e5f6g7h8j9k0m1n2p",
  "user_id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
  "status": "revoked",
  "login_host": "login.example.com",
  "auth_time": "2026-02-01T08:00:00Z",
  "acr": "1fa",
  "amr": ["pwd"],
  "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": "org_0a1b2c3d4e5f6g7h8j9k0m1n2p",
  "ip_address": "203.0.113.10",
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_0)",
  "revoked_at": "2026-02-01T10:00:00Z",
  "revoke_reason": "admin"
}
```

`revoke_reason` は `revoked` のセッションにのみ設定されます。値の例は `admin`、`user_logout`、`idp_logout`、`refresh_reuse` です。

## エラー

すべてのエラーは、安定した `code` を含む `application/problem+json` ボディで返されます。

| HTTP | `code` | 発生条件 |
|---|---|---|
| 404 | `not_found` | この環境にセッションが存在しないか、ID の形式が不正です。 |
| 401 | `unauthenticated` | API キーが指定されていないか、不正であるか、取り消されています。 |
| 403 | `insufficient_permissions` | このキーには `sessions:read` 権限がありません。 |
| 429 | `rate_limited` | レート制限を超えました。`Retry-After` に従ってください。 |
| 503 | `service_unavailable` | 依存先が一時的に利用できません。しばらくしてから再試行してください。 |

## 例

```bash
curl https://api.eu.keenauth.com/v1/sessions/ses_0a1b2c3d4e5f6g7h8j9k0m1n2p \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI: `keenauth sessions get ses_0a1b2c3d4e5f6g7h8j9k0m1n2p`

## 個人データ

このエンドポイントは個人データ（セッション）を扱います。[KeenAuth API における個人データ](/docs/policies/personal-data)では、保存される内容、保存期間、削除方法について説明しています。いずれのフィールドにも、特別な種類の個人データ（健康、生体情報、宗教、政治的意見、性的指向）を送信しないでください。
