
# Kullanıcının onaylarını listeleme

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

Kullanıcının uygulamalara verdiği OAuth onaylarını en yeniden eskiye doğru listeler. Yalnızca etkin onaylar döndürülür: iptal edilmiş ya da aynı uygulamanın daha yeni bir onayıyla değiştirilmiş onaylar listelenmez. Liste yalnızca ileriye doğru sayfalanır ve toplam sayı döndürmez. Yanıt, kullanıcının gördüğü onay ekranının metnini içermez.

## İstek

| Parametre | Konum | Zorunlu | Açıklama |
|---|---|---|---|
| `user_id` | path | evet | Kullanıcı kimliği, `usr_` önekiyle. |
| `limit` | query | hayır | Sayfa başına öğe sayısı, 1-100 (varsayılan 20). |
| `after` | query | hayır | Aynı kullanıcının önceki sayfasındaki `list_metadata.after` imleci. |

`before` ve `order=asc` desteklenmez ve `422` döndürür.

## Yanıt

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

```json
{
  "data": [
    {
      "id": "cns_01jb2k8m5c3f6t9w2y4b7d0g3k",
      "user_id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "application_id": "app_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "api_id": "api_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "org_id": null,
      "scopes": ["openid", "profile", "orders:read"],
      "authorization_details_types": [],
      "granted_at": "2026-10-20T09:00:00Z",
      "consent_screen_version": "3",
      "locale": "en",
      "prompt_reason": "scope_expansion"
    }
  ],
  "list_metadata": {"before": null, "after": null}
}
```

| Alan | Açıklama |
|---|---|
| `id` | Onay kimliği, `cns_` önekiyle. |
| `application_id` | Onayın verildiği uygulama. |
| `api_id` | Onayın bağlı olduğu API, varsa. |
| `org_id` | Onayın verildiği kuruluş bağlamı, varsa. |
| `scopes` | Verilen kapsamlar, sıralı ve benzersiz. |
| `authorization_details_types` | Verilen zengin yetkilendirme isteği türleri; yoksa boş. |
| `consent_screen_version`, `locale` | Kullanıcının kabul ettiği onay ekranının sürümü ve dili. |
| `prompt_reason` | Onayın neden istendiği: `first`, `scope_expansion`, `prompt_consent` veya `skip_consent` (onay ekranı olmayan birinci taraf uygulama). |

## Hatalar

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

| HTTP | `code` | Ne zaman |
|---|---|---|
| 400 | `invalid_cursor` | İmleç hatalı biçimlendirilmiş veya başka bir listeye ait. |
| 422 | `validation_failed` | `limit` aralık dışında veya `before` ya da artan bir `order` gönderildi. |
| 404 | `not_found` | Kullanıcı bu ortamda yok (ya da kimlik hatalı biçimlendirilmiş). |
| 401 | `unauthenticated` | API anahtarı eksik, geçersiz veya iptal edilmiş. |
| 403 | `insufficient_permissions` | Anahtarda `users: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; daha sonra yeniden deneyin. |

## Örnek

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

CLI: `keenauth users consents list usr_0a1b2c3d4e5f6g7h8j9k0m1n2p --limit 50`

## Kişisel veriler

Bu uç nokta kişisel veri içerir: onay kayıtları. [KeenAuth API'lerinde kişisel veriler](/docs/policies/personal-data) saklanan verileri, ne kadar süreyle tutulduklarını ve nasıl silindiklerini açıklar. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.
