Skip to main content
Set a webhook URL on an agent and Cadenya POSTs one delivery per event on every objective that agent runs. Every delivery uses the same envelope and the same signature scheme, so one handler covers all of them.

Events

Envelope

Every objective event arrives in the same envelope. type names the event, data carries the agent, variation, and objective it belongs to, and data.objectiveEvent.data holds the fields documented on each event page.
Cadenya signs every delivery per the Standard Webhooks specification and sends it as a POST with a JSON body.Find the signing key under Account Admin and rotate it with rotate the webhook signing key. Cadenya records every attempt, and you can inspect them with list webhook deliveries.
string
required
The event name, for example objective_event.tool_called.
string
required
RFC 3339 time when Cadenya emitted the delivery.
object
required
Everything you need to route the event without a lookup.

Verify and unwrap

The SDKs read the signing key from CADENYA_WEBHOOK_SECRET, check the signature and timestamp, and return the typed envelope. Pass the raw request body, not a parsed and re-serialized one, because a single changed byte fails the check.
Each event page has a full handler you can run, plus a cURL script that signs and posts a sample delivery to it.
Use the Svix Playground as a throwaway webhook URL while you shape your handler. It shows every delivery with its headers.