로그 조회
GET /v1/logs/{log_id} · 권한 logs:read
details를 포함한 로그 레코드 하나를 반환합니다.
요청
| 매개변수 | 위치 | 필수 | 설명 |
|---|---|---|---|
log_id |
path | 예 | 로그 레코드 ID이며 evt_ 접두사가 붙습니다. |
응답
레코드와 함께 200 OK를 반환합니다. 비어 있는 필드는 null입니다.
ip, ip_asn, user_agent, user_agent_family는 키에 audit-events:read_ip 권한이 있을 때만 포함되고, identifier_hint는 users:read_pii 권한이 있을 때만 포함됩니다. 권한이 없으면 해당 필드는 마스킹된 값 없이 완전히 생략됩니다. ip_country는 항상 반환됩니다.
{
"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"
}
오류
모든 오류는 안정적인 code를 포함한 application/problem+json 본문으로 반환됩니다.
| HTTP | code |
발생 조건 |
|---|---|---|
| 401 | unauthenticated |
API 키가 없거나, 잘못되었거나, 취소되었습니다. |
| 403 | insufficient_permissions |
키에 logs:read 권한이 없습니다. |
| 404 | not_found |
레코드가 존재하지 않거나, 다른 환경에 속하거나, 보관 기간 밖에 있습니다. |
| 429 | rate_limited |
요청 한도를 초과했습니다. Retry-After를 따르십시오. |
| 503 | service_unavailable |
종속 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오. |
예제
curl https://api.eu.keenauth.com/v1/logs/log_01j9xk3m7q8r2s4t6v8w0y2z4a \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
개인정보
이 엔드포인트는 개인정보, 즉 환경 로그를 포함합니다. KeenAuth API의 개인정보에서 저장되는 항목, 보관 기간, 삭제 방법을 설명합니다. 어떤 필드에도 특수 범주의 개인정보(건강, 생체 인식 데이터, 종교, 정치적 견해, 성적 지향)를 보내지 마십시오.