VocalDocscontracts 1.65.0

Read an event

GET /v1/events/{event_id}

PropertyValue
Operationget_event
GroupEvents
Scopeevents:read
Scopes of include valuesdata needs events:read
Route classread
IdempotencyNo Idempotency-Key
AuditAn audited content read events.event.read, when the request names an include value
Released in1.52.0
Phase 0 hostServed (the hosted api pins 1.65.0)

Answers one event of the log by its id, as a delivery carried it, for 30 days (a target); an event of the other environment, or one pruned from the log, is not_found. From 1.62.0 a custom event's data in PHI mode is answered only to a read that names include=data, an audited content read (ADR 0051 rule 8); outside PHI mode the data is answered as delivered.

Request

Set VOCAL_API to the base URL of your API and VOCAL_API_KEY to an API key with the events:read scope (Authentication and keys). Replace each placeholder, such as agt_... or <name>, with your own value.

curl "$VOCAL_API/v1/events/evt_..." \
  -H "Authorization: Bearer $VOCAL_API_KEY"

Parameters

NameInTypeRequiredDescription
event_idpathEventIdyesThe id of an event: evt_ and the row's UUIDv7 in 26 Crockford base32 characters. Opaque and safe to log.
includequeryarray of EventIncludenodata adds a custom event's data in PHI mode.

Responses

StatusContent typeShapeError codes
200application/jsonEvent
400application/jsonErrorEnvelopeinvalid_request
401application/jsonErrorEnvelopeunauthenticated
403application/jsonErrorEnvelopeforbidden
404application/jsonErrorEnvelopenot_found
429application/jsonErrorEnveloperate_limited
500application/jsonErrorEnvelopeinternal_error

Fields of the 200 answer

The shape is Event.

FieldTypeRequiredDescription
api_version"v1"yes
created_atTimestampyesWhen the change the event describes committed.
datamap of anyyesThe type's data, typed in the catalog (GET /v1/event-types, and the *EventData components). In PHI mode only its structural and identifier fields travel; from 1.62.0 a custom event's data is the customer's, which in PHI mode travels empty and GET /v1/events/{event_id} answers with include=data.
familyEventFamilyyes
idEventIdyesAssigned once in the producing transaction and kept across retries and replays: de-duplicate on it.
livemodebooleanyesTrue for the live environment.
object"event"yes
organization_idOrganizationIdyes
project_idProjectId or nullyesThe resource's Project: the default Project until Projects ship, null for a resource of the Organization itself, such as a Member.
sequenceintegeryesThe per-Organization order the relay assigns (ADR 0051 rule 7). Events about one subject keep their causal order; across subjects the order is relay order. A Webhook receiver uses it to discard a stale update. From 1.64.0, stated: a webhook.test envelope, which takes no place in the log, carries the latest relayed sequence of the Organization, at least 1, so it is never a new position in the order.
sourceEventSourceyes
subjectEventSubjectyes
targetsEventTargets or nullnoOn a custom event (1.62.0): the Call and the Process its request named; absent on every other type.
typestringyesThe event type, one of EventTypeName, or from 1.62.0 a CustomEventType of the family custom; a reader treats a type it does not know as an event it does not interpret.