Kullanıcının günlüklerini listele

GET /v1/users/{user_id}/logs · izin logs:read

Bir kullanıcının günlük kayıtlarını imleç sayfalamasıyla, en yeniden en eskiye doğru listeler. Bu, panodaki kullanıcı etkinlik görünümünün arkasındaki verilerdir. Günlükleri listele ile aynı kuralları izler, ancak yalnızca from, to, type ve org_id filtrelerini kabul eder; diğer filtreler yok sayılır.

Kuruluş kapsamı

Bir kuruluş yöneticisi için üye tanılama görünümü oluşturmak üzere org_id geçirin. Bu durumda anahtarın ayrıca organizations:read iznine ihtiyacı vardır. Kullanıcı o kuruluşun üyesi değilse (invited, active veya suspended üyeliği yoksa), istek 404 not_found ile başarısız olur; bu, bilinmeyen bir kullanıcı için verilen yanıtın aynısıdır. Kullanıcı üyeyse, yalnızca bu kuruluş bağlamında gerçekleşen kayıtlar döndürülür: org_id değeri o kuruluş olan kayıtlar. Kullanıcının kuruluş dışındaki veya başka bir kuruluş bağlamındaki oturum açmaları hiçbir zaman döndürülmez. org_id olmadan görünüm, ortamdaki kullanıcının tüm kayıtlarını kapsar.

İstek

Parametre Konum Zorunlu Açıklama
user_id path evet Kullanıcı kimliği, usr_ öneki ile.
limit query hayır Sayfa boyutu, 1 ile 100 arası. Varsayılan 20.
after query hayır list_metadata.after değerinden alınan şeffaf olmayan imleç (daha eski kayıtlar). before ile birlikte kullanılamaz.
before query hayır list_metadata.before değerinden alınan şeffaf olmayan imleç (daha yeni kayıtlar). after ile birlikte kullanılamaz.
from query hayır RFC 3339 zamanı; bu zamanda veya sonrasındaki kayıtlar. Saklama süresi içinde olmalıdır.
to query hayır RFC 3339 zamanı; bu zamandan önceki kayıtlar. from değerinden sonra olmalıdır.
type query hayır authentication. veya session.created gibi günlük türü öneki. Parametreyi en fazla 20 değer için tekrarlayın; bunlardan herhangi biriyle eşleşen kayıt döndürülür.
org_id query hayır Kuruluş kimliği, org_ öneki ile. Görünümü o kuruluşun kayıtlarıyla sınırlar; bkz. Kuruluş kapsamı. organizations:read gerektirir.

Kayıtlar her zaman occurred_at alanına göre, en yeniden en eskiye sıralanır; order parametresi yoktur (order=desc kabul edilir, başka herhangi bir değer validation_failed ile başarısız olur). İmleç yalnızca üretildiği filtrelerle geçerlidir.

Yanıt

200 OK. data sayfadaki kayıtları içerir; list_metadata.after daha eski kayıtlara, list_metadata.before daha yeni kayıtlara işaret eder (yoksa null). Toplam sayı döndürülmez. Boş alanlar null olur.

ip, ip_asn, user_agent ve user_agent_family yalnızca anahtarda audit-events:read_ip izni varsa bulunur; identifier_hint yalnızca users:read_pii izni varsa. İzin yoksa alan tamamen atlanır (maskelenmiş bir değer de yoktur). ip_country her zaman döndürülür.

{
  "data": [
    {
      "id": "evt_01j9xk3m7q8r2s4t6v8w0y2z4a",
      "occurred_at": "2026-10-01T08:15:42.120Z",
      "type": "authentication.password.failed",
      "outcome": "failure",
      "reason_code": "invalid_credentials",
      "user_id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "org_id": null,
      "application_id": "app_01j9xk3m7q8r2s4t6v8w0y2z4b",
      "connection_id": "conn_01j9xk3m7q8r2s4t6v8w0y2z4c",
      "directory_id": null,
      "session_id": null,
      "identifier_hint": "a***@e***.com",
      "ip": "203.0.113.7",
      "ip_country": "DE",
      "ip_asn": 64500,
      "user_agent": "Mozilla/5.0 (X11; Linux x86_64)",
      "user_agent_family": "Firefox",
      "risk": null,
      "auth_context": null,
      "act_chain": null,
      "details": {"attempt": 3},
      "request_id": "0192a6c1-7d3e-7a10-9b2c-3d4e5f607182",
      "correlation_id": null,
      "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736"
    }
  ],
  "list_metadata": {
    "before": null,
    "after": "<opaque cursor>"
  }
}

Hatalar

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

HTTP code Ne zaman
400 invalid_cursor İmleç hatalı biçimli ya da bu istek için üretilmemiş.
400 invalid_filter Günlük hizmeti bir filtreyi ya da imleci reddetti.
400 range_outside_retention from, planınızın saklama süresinden daha eski.
422 validation_failed Bir sorgu parametresi geçersiz (limit aralık dışında, hatalı zaman damgası, to değeri from değerinden sonra değil, 20'den fazla type değeri, hatalı biçimli org_id, tekrarlanan parametre).
401 unauthenticated API anahtarı eksik, geçersiz veya iptal edilmiş.
403 insufficient_permissions Anahtarda logs:read izni yok ya da org_id ayarlıysa anahtarda organizations:read izni yok. required_permissions isteğin gerektirdiklerini listeler.
404 not_found Kullanıcı kimliği hatalı biçimli ya da org_id ayarlı ve kullanıcı o kuruluşun üyesi değil.
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

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

Yalnızca bir kuruluşun kayıtları:

keenauth users logs list usr_0a1b2c3d4e5f6g7h8j9k0m1n2p --org-id org_01j9xk3m7q8r2s4t6v8w0y2z4d --type authentication.

Kişisel veriler

Bu uç nokta kişisel veri içerir: ortam günlükleri. KeenAuth API'lerinde kişisel veriler sayfası neyin 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.