
# Hesap kilitlerini listele

`GET /v1/attack-protection/lockouts` · izin `attack-protection:read`

Ortamın açık hesap kilitlerini en eskiden en yeniye listeler. Kaba kuvvet koruması, çok fazla başarısızlıktan sonra bir kullanıcının bir giriş yolunu (örneğin `password` ya da `totp`) kilitler; kullanıcının diğer yolları açık kalır. Süresi dolmuş bir kilit listelenmez, çünkü artık o yolu engellemez. Liste yalnız ileri doğru sayfalanır ve toplam sayı döndürmez. Yanıtta IP adresi ve başarısızlık sayacı anahtarı yoktur.

## İstek

| Parametre | Yer | Zorunlu | Açıklama |
|---|---|---|---|
| `limit` | sorgu | hayır | Sayfa başına öğe, 1-100 (varsayılan 20). |
| `after` | sorgu | hayır | Önceki sayfanın `list_metadata.after` değerinden imleç. |

`before` ve `order=desc` desteklenmez ve `422` döner.

## Yanıt

`200 OK`.

```json
{
  "data": [
    {
      "id": "lck_01jaz8m5c3f6t9w2y4b7d0g3k6",
      "user_id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "path": "password",
      "locked_at": "2026-10-20T09:00:00Z",
      "expires_at": "2026-10-20T09:15:00Z",
      "failure_count": 20
    }
  ],
  "list_metadata": {"before": null, "after": null}
}
```

| Alan | Açıklama |
|---|---|
| `id` | Kilit kimliği, `lck_` önekli. `user.unlocked` olayı aynı kimliği taşır. |
| `user_id` | Kilitlenen kullanıcı. |
| `path` | Kilitlenen giriş yolu: `password`, `totp`, `sms_2fa`, `email_2fa`, `otp` ya da `recovery_code`. |
| `locked_at`, `expires_at` | Kilidin ne zaman başladığı ve kendiliğinden ne zaman kalkacağı. |
| `failure_count` | Kilide neden olan pencerede yapılan başarısız denemeler. |

## Hatalar

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

| HTTP | `code` | Ne zaman |
|---|---|---|
| 400 | `invalid_cursor` | İmleç biçimsiz ya da başka bir listeye ait. |
| 422 | `validation_failed` | `limit` aralık dışında ya da `before` ya da azalan `order` gönderildi. |
| 401 | `unauthenticated` | API anahtarı yok, geçersiz ya da iptal edilmiş. |
| 403 | `insufficient_permissions` | Anahtarda `attack-protection:read` 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 https://api.eu.keenauth.com/v1/attack-protection/lockouts?limit=50 \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI: `keenauth attack-protection lockouts list --limit 50`
