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.