Skip to main content
Every captured event follows the TapEvent schema.

Core fields

FieldTypeDescription
event_idstringUnique ID (evt_<hex>)
parent_event_idstring?Links child tool_call events to parent llm_request
project_idstringAPI key / project identifier
session_idstringSession grouping ID (ses_<hex>)
user_idstring?User identifier (from init())
typestring"tool_call", "llm_request", or "mcp_lifecycle"
tool_namestringTool or model name
modelstring?LLM model name
timestampnumberUnix epoch seconds

Request and response fields

FieldTypeDescription
inputsobject?Tool arguments or request parameters
outputobject?Tool result or response summary
errorstring?Error message if the call failed
latency_msnumber?Wall-clock time in milliseconds
sourcestringOrigin: "anthropic", "openai", "mcp_sdk", "composio_sdk", "http_intercept", "mcp_proxy", "mcp_server"

LLM-specific fields

FieldTypeDescription
system_promptstring?System prompt (LLM requests only)
request_messagesarray?Serialized conversation history
response_contentarray?Serialized response blocks
thinkingarray?Thinking/reasoning blocks
token_usageobject?Token counts (input, output, cache, reasoning)
stop_reasonstring?Why the LLM stopped ("end_turn", "tool_use", etc.)

AARM fields

These fields are only present when cryptographic receipts are enabled.
FieldTypeDescription
context_hashstring?AARM hash chain value
output_hashstring?SHA-256 of canonical output
signatureobject?AARM Ed25519 signature