Skip to main content
Records a single event within a conversation. An event is either a turn-pair (the user’s message and the agent’s reply) or a tool call. Send one capture-event per turn and one per tool call.

Headers

HeaderValueRequired
x-api-keyYour API key, sk_...Yes
Content-Typeapplication/jsonYes

Body

FieldTypeRequiredDescription
event_idUUIDYesClient-generated so child events can reference it as their parent.
session_idUUIDYesThe session this event belongs to, from capture-session.
primitive_namestringYesThe agent name for a turn-pair, or the tool name for a tool call.
primitive_typestringNoThe kind of primitive, for example tool, resource, or prompt.
argsstringYesThe input: the user’s message, or the tool’s arguments as JSON.
resultstringYesThe output: the agent’s reply, or the tool’s result as JSON.
successbooleanNoWhether the event succeeded. Defaults to true.
latencyinteger (ms)NoHow long the operation took, in milliseconds.
timestampinteger (ms)NoEpoch milliseconds for the event. Defaults to server time.
parent_idUUIDNoFor a tool call, the event_id of the turn or tool that triggered it.
metadataobjectNoFree-form metadata. checkpoint.* keys drive per-tool execution timelines in Pulse.

The event tree

Events form a tree so the trace of a conversation is preserved:
  • A turn-pair is a top-level event: primitive_name is your agent’s name, args is the user’s message, and result is the reply. It has no parent_id.
  • A tool call sets parent_id to the event_id of the turn that triggered it. Sub-tools chain further by pointing at the parent tool’s event_id.
This parent and child structure is what powers the trace view and the tool timelines in the dashboard.

Checkpoints

Ride named checkpoints in metadata under checkpoint.* keys to record milestones inside a single tool call. Hone reads them to draw a per-tool execution timeline in Pulse.

Request

A tool call under a turn

Response

Generate event_id client-side as a UUID so a later tool call can set its parent_id to this value.