Skip to main content
Every tool call and post-call webhook is signed with the agent’s signing secret, the Standard Webhooks way. Find the secret on the agent’s Webhook tab. It starts with whsec_, and each agent has its own.

Headers

The signature is computed over {webhook-id}.{webhook-timestamp}.{body}, keyed with the base64-decoded part of the secret after whsec_. Standard Webhooks libraries check the signature and refuse requests more than 5 minutes old.
Libraries exist for many other languages too: see standardwebhooks.com.

By hand

Node.js

Common mistakes

  • Verifying the parsed body. Use the raw request body, exactly as received. Re-serialised JSON won’t match.
  • Using another agent’s secret. Each agent has its own.
  • After rotating. Calls that start after you click Rotate secret use the new secret; calls already in progress keep the old one until they end. Accept both briefly while you update your servers.