
# İmza anahtarlarını listele

`GET /v1/signing-keys` · izin `signing-keys:read`

Ortamın JWKS'inde yayımdaki token imza anahtarlarını döndürür: `next` (yayımlanmış, henüz imzalamıyor), `active` (yeni token'ları imzalar) ve `retired` (imzalamayı bıraktı; imzaladığı token'lar doğrulanabilsin diye 7 gün yayımda kalır). Sıra `next`, `active`, sonra `retired`'dır (yeniden eskiye). JWKS'ten çıkmış anahtarlar ve acil rotasyonla iptal edilmiş anahtarlar dönmez. Yanıt yalnız açık bilgidir: `kid` RFC 7638 JWK SHA-256 thumbprint'idir (base64url); özel anahtar imza servisinden hiç çıkmaz ve hiçbir yanıtta yoktur.

## İstek

Bu işlem yol, sorgu ya da gövde alanı almaz. Ortam kimlik bilgisinden gelir.

## Yanıt

`200 OK`; `data` (anahtarlar) ve `list_metadata`. Liste JWKS kadar küçüktür ve sayfalanmaz; iki imleç de her zaman `null`'dır. `activated_at` `next` anahtarda `null`'dır; `retired_at` ve `removal_at` (anahtarın JWKS'ten çıkacağı an) yalnız `retired` anahtarda doludur.

```json
{
  "data": [
    {
      "kid": "ypeBEsobvcr6wjGzmiPcTaeG7_gUfE5yuYB3ha_uSLs",
      "use": "token_signing",
      "algorithm": "RS256",
      "state": "next",
      "storage": "wrapped",
      "created_at": "2026-09-05T09:30:00.123456Z",
      "activated_at": null,
      "retired_at": null,
      "removal_at": null
    },
    {
      "kid": "PiPoFgA5WUoziU9lZOGxNIu9egCI1CxKy3PurtWcAJ0",
      "use": "token_signing",
      "algorithm": "RS256",
      "state": "active",
      "storage": "wrapped",
      "created_at": "2026-03-09T09:30:00.123456Z",
      "activated_at": "2026-09-05T09:30:00.123456Z",
      "retired_at": null,
      "removal_at": null
    },
    {
      "kid": "Ln0sA6lQeuJl7PW1NWiFpTOTogKdJBOUmXJloaJa78Y",
      "use": "token_signing",
      "algorithm": "RS256",
      "state": "retired",
      "storage": "wrapped",
      "created_at": "2025-09-10T09:30:00.123456Z",
      "activated_at": "2026-03-09T09:30:00.123456Z",
      "retired_at": "2026-09-05T09:30:00.123456Z",
      "removal_at": "2026-09-12T09:30:00.123456Z"
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}
```

## Hatalar

| HTTP | code | Ne zaman |
|---|---|---|
| 401 | `unauthenticated` | Kimlik bilgisi yok, geçersiz ya da iptal edilmiş. |
| 403 | `insufficient_permissions` | Kimlik bilgisinde gerekli izin yok. |
| 429 | `rate_limited` | Hız sınırı aşıldı; `Retry-After` süresinden sonra yeniden deneyin. |
| 501 | `not_implemented` | İşlem bu dağıtımda henüz kullanılamıyor; yeniden denemek sonucu değiştirmez. |
| 503 | `service_unavailable` | Bir bağımlılık geçici olarak kullanılamıyor; `Retry-After` süresinden sonra yeniden deneyin. |

## Örnek

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