event and data. The event name determines the data schema. These are the same data objects used by the event stream.
Every request includes Webhook-Id (stable across retries) and Webhook-Timestamp (Unix seconds for that attempt). Signed requests also include Webhook-Signature. Verify the signature against the raw request body before parsing it, using Standard Webhooks.
Receive and verify
The SDK includes the TypeScript typeEventWebhookPayload and the Zod schema zEventWebhookPayload for validating incoming webhook payloads.
Install @omnara/sdk and standardwebhooks. Set WEBHOOK_SIGNING_SECRET to the same base64 value stored in the agent config’s signing secret. This Node.js server verifies the raw body before validating the payload; missing, invalid, or expired signatures are rejected.
/webhook over public HTTPS. This snippet only validates and acknowledges events. For custom-tool execution and duplicate handling, see the runnable custom-tool webhook example.
Payload examples
Timeline events include event, agent, project, organization, and turn identifiers, an event sequence, and a creation timestamp. The examples below include all required fields; the OpenAPI schemas describe optional fields and content-block variants.Agent input (agent_input)
Agent input (agent_input)
Model output (model_output)
Model output (model_output)
Tool result (tool_result)
Tool result (tool_result)
Context checkpoint (context_checkpoint)
Context checkpoint (context_checkpoint)
Tool-call update (tool_call_update)
Tool-call update (tool_call_update)
tool_call_update is a notification to fetch the tool call or interaction for its current details. It carries a state snapshot, not the tool arguments or a timeline sequence. For custom execution, handle ready updates and deduplicate by tool-call ID. Self-subagents send their own agent IDs; profile subagents use their own webhook configuration.