Olayları listele
GET /v1/events · izin events:read
Ortamın olaylarını sıralı olarak, en eskiden en yeniye doğru döndürür. Her olay, webhook'ların ilettiği belgenin aynısıdır ve aynı id'yi taşır. Olaylar her pakette 30 gün boyunca saklanır.
Sisteminiz webhook alamadığında veya bir kesintiden sonra boşluğu doldurmak için bu uç noktayı kullanın: işlediğiniz son next_cursor değerini saklayın ve oradan devam edin.
Ortam her zaman API anahtarından alınır; bir ortam parametresi yoktur.
İstek
| Parametre | Konum | Zorunlu | Açıklama |
|---|---|---|---|
after |
query | hayır | Önceki yanıttaki next_cursor değeri veya yalnızca şu andan itibaren kaydedilen olayları almak için latest. Bu parametre yoksa liste, saklanan en eski olaydan başlar. |
types |
query | hayır | Virgülle ayrılmış olay türleri, en fazla 20 tane; örneğin user.created,user.deleted. Bu parametre yoksa tüm türler döndürülür. |
org_id |
query | hayır | Yalnızca bu kuruluşa ait olaylar (org_…). |
limit |
query | hayır | Sayfa boyutu, 1 ile 100 arasında. Varsayılan 20. |
payload |
query | hayır | thin (varsayılan) veya full. full için ayrıca users:read izni gerekir. Tam yük kullanılabilir hale gelene kadar full değeri hafif yükü döndürür. |
purpose |
query | hayır | tail (varsayılan) veya webhooks_listen. webhooks_listen yalnızca development ve staging ortamlarında kabul edilir. |
Yanıt
200 OK:
| Alan | Açıklama |
|---|---|
data |
Sıralı olaylar. Her olayın, ortam içinde artan bir seq değeri vardır. |
next_cursor |
Her zaman bulunur. data boş olsa bile bir sonraki istekte after olarak gönderin. |
has_more |
Devam eden olaylar varsa true olur; hemen yeniden istek gönderin. false ise yeniden sorgulamadan önce bekleyin (5 ile 60 saniye). |
Cursor, types veya org_id değerlerine bağlı değildir: filtreyi değiştirip aynı konumdan devam edebilirsiniz. Cursor yalnızca onu üreten ortamda çalışır.
{
"data": [
{
"id": "evt_01j9xk3m7q8r2s4t6v8w0y2z4a",
"type": "connection.deleted",
"schema_version": 1,
"environment_id": "env_01j9xk3m7q8r2s4t6v8w0y2z4e",
"occurred_at": "2026-11-03T08:15:42.120Z",
"recorded_at": "2026-11-03T08:15:42.140Z",
"seq": 4182,
"data": {
"object": {"id": "conn_01j9xk3m7q8r2s4t6v8w0y2z4f", "status": "deleted"},
"object_version": 2
},
"context": {"actor": {"type": "system"}, "request_id": "0192a6c1-7d3e-7a10-9b2c-3d4e5f607182"}
}
],
"next_cursor": "eyJ2IjoxfQ.c2lnbmF0dXJl",
"has_more": false
}
Örnek: yeni olayları sorgulama
cursor=latest
while true; do
page=$(curl -sS -G https://api.keenauth.com/v1/events \
-H "Authorization: Bearer $KEENAUTH_API_KEY" \
--data-urlencode "after=$cursor" --data-urlencode "limit=100")
echo "$page" | jq -c '.data[]'
cursor=$(echo "$page" | jq -r '.next_cursor')
[ "$(echo "$page" | jq -r '.has_more')" = "true" ] || sleep 10
done
CLI aynı işlemi keenauth events tail komutuyla yapar.
Hatalar
Her hata, kararlı bir code içeren bir application/problem+json gövdesidir.
| HTTP | code |
Ne zaman |
|---|---|---|
| 400 | invalid_cursor |
Cursor hatalı biçimlendirilmiş veya başka bir ortamda üretilmiş. |
| 401 | unauthenticated |
API anahtarı eksik, geçersiz veya iptal edilmiş. |
| 403 | insufficient_permissions |
Anahtarda events:read izni yok veya users:read olmadan payload=full kullanılmış. |
| 403 | test_feature_not_in_production |
Üretim ortamında purpose=webhooks_listen kullanılmış. |
| 422 | validation_failed |
Bir parametre geçersiz veya tekrarlanmış; errors[].pointer bunu belirtir. |
| 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. |
Kişisel veriler
Bu uç noktada kişisel veriler bulunur: olaylar. KeenAuth API'lerindeki kişisel veriler hangi verilerin saklandığını, ne kadar süre tutulduğunu ve nasıl silindiğini 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.