
# API 키 목록

`GET /v1/api-keys` · 권한 `api-keys:read`

환경의 관리 API 키를 최신순으로 나열합니다(`order=asc`는 역순). 폐기되거나 만료된 키도 포함됩니다. 원본 키는 반환되지 않으며 메타데이터만 제공됩니다.

## 요청

| 매개변수 | 위치 | 설명 |
|---|---|---|
| `limit` | query | 페이지 크기, 1–100. |
| `after` | query | 다음 페이지 커서(`list_metadata.after`). |
| `before` | query | 이전 페이지 커서(`list_metadata.before`). |
| `order` | query | `desc`(기본값, 최신순) 또는 `asc`. |

## 응답

`200 OK`. `last_used_ip`는 /24(IPv4) 또는 /48(IPv6) 접두사로 잘립니다.

```json
{
  "data": [
    {
      "id": "key_0000000000000000000000001z",
      "name": "ci",
      "type": "restricted",
      "permissions": ["users:read"],
      "allowed_cidrs": [],
      "last4": "xxxx",
      "created_by": "key_…",
      "created_at": "2026-10-01T10:00:00Z",
      "expires_at": "2027-10-01T10:00:00Z",
      "last_used_at": null,
      "last_used_ip": null,
      "rotated_from": null,
      "revoked_at": null,
      "revoke_reason": null
    }
  ],
  "list_metadata": { "before": null, "after": null }
}
```

## 오류

| HTTP | `code` | 발생 조건 |
|---|---|---|
| 400 | `invalid_cursor` | 커서가 잘못되었습니다. |
| 401 | `unauthenticated` | 키가 없거나 유효하지 않거나 폐기되었습니다. |
| 403 | `insufficient_permissions` | 키에 필요한 권한이 없습니다. |
| 422 | `validation_failed` | 쿼리 매개변수가 잘못되었습니다(예: 1–100 범위를 벗어난 `limit`). |

## 예시

```bash
curl "https://api.eu.keenauth.com/v1/api-keys?limit=20" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```
