Skip to Content

Events

Events are the atomic unit of observability. Every action your agent takes is captured as an event within a session.

POST/v1/events

Ingest a single agent event. The event is validated, normalized, and stored under the authenticated tenant.

Request body:

FieldTypeRequiredDescription
eventIdUUIDYesClient-generated unique identifier
agentIdstringYesAgent identifier (1–255 chars)
sessionIdstringYesSession identifier (1–255 chars)
sourceTimestampISO 8601YesWhen the event occurred
categorystringYesEvent category (see Event Schema)
schemaVersionstringYesSchema version ("1.0")
payloadobjectYesCategory-specific data
previousHashstringNoHash of the previous event for chain integrity
traceIdstringNoDistributed trace ID
runIdstringNoExecution run ID
correlationIdstringNoCross-session correlation ID
parentEventIdUUIDNoParent event for causal chains
causationEventIdUUIDNoDirect cause event
agentVersionstringNoAgent software version
toolTypestringNoTool classification
targetSystemstringNoTarget system identifier
operationstringNoOperation type
initiatorTypestringNoWho initiated (human, agent, system)
initiatorIdstringNoInitiator identifier

Example request:

{ "eventId": "550e8400-e29b-41d4-a716-446655440000", "agentId": "support-bot", "sessionId": "session-001", "sourceTimestamp": "2025-01-15T10:30:00Z", "category": "tool_api", "schemaVersion": "1.0", "payload": { "toolName": "database_query", "argumentsHash": "a1b2c3d4...", "responseStatus": 200, "endpoint": "/api/customers" }, "toolType": "database", "targetSystem": "crm", "operation": "read" }

Idempotency: Sending the same eventId for the same tenant returns 202 with the original receivedAt. No duplicate is created.

Schema enforcement: The request body is validated with strict() — unknown top-level fields are rejected.

Last updated on