Get event by ID
Loads a single event by (project_id, id). Requires events.read.
Events are not registered in resource_scope_index; project scope is
required on the query (ADR 049). Misses and cross-project ids return 404.
Pre-claim projects return 404 (stored events stay invisible until claim).
oauth2 events.readAuthorizationBearer <token>Scope: events.read
id*stringManaged event id (evt_<opaque>).
project_id*stringThe unique identifier of the project
^[a-zA-Z0-9_-]+$The event was retrieved successfully.
application/json- response
Wide event with event_type=auth.attempt.created.
id*stringManaged event id (evt_<opaque>).
project_id*project-id^[a-zA-Z0-9_-]+$team_id?|Emit-time team scope, when the actor operated under a team.
event_type*stringSemantic event name (dot-separated). Discriminator for the Event union — see docs/design/api/events-catalog.md.
category*stringWide-event category.
"request""auth""session""admin""entity""signal"occurred_at*stringWhen the action happened (server/storage clock, dialect-owned).
date-timecreated_at*stringWhen the row was inserted (server/storage clock, dialect-owned).
date-timeactor_id?|Who triggered the event.
actor_type?|Actor kind.
entity_type?|Resource type affected.
entity_id?|Resource id affected.
client_id*stringApplication or agent that produced the event.
token_id?stringToken id present at emit time, when any.
delegation_type?stringDelegation kind (omit when unset).
"direct""delegated""pat_shared""exchanged"delegation_id?stringgrantor?stringfingerprint?stringDevice fingerprint correlation id.
request_id?|HTTP request correlation id.
session_id?|Session correlation id.
flow_id?|Login flow correlation id.
metadata?Emit-time metadata, already redacted at write. Path A request.api may set client (ip, user_agent, origin) for SIEM join on request_id. Not a live risk-evaluator input.
payload*Empty payload for event types with no typed fields
(e.g. project.deleted, user.deleted, session.expired).
import { createZitadelClient } from "@zitadel/api/client";const client = createZitadelClient({ baseUrl: process.env.ZITADEL_URL ?? "http://localhost:8080", token: process.env.ZITADEL_PROJECT_SECRET!, // server-side only});const event = await client.getEvent("evt_01HZYABCDEFGHJKMNPQRSTVWXY", { project_id: "proj_01KWH1P4MYS7F0N9WD3P2E4YM5" });{ "id": "string", "project_id": "string", "team_id": "string", "category": "request", "occurred_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "actor_id": "string", "actor_type": "human", "entity_type": "string", "entity_id": "string", "client_id": "string", "token_id": "string", "delegation_type": "direct", "delegation_id": "string", "grantor": "string", "fingerprint": "string", "request_id": "string", "session_id": "string", "flow_id": "string", "metadata": { "authorization": { "path": "platform_operator", "actor_home_project_id": "string" }, "client": { "ip": "string", "user_agent": "string", "origin": "string" } }, "event_type": "auth.attempt.created", "payload": {}}Was this helpful?