Endpoint
Create webhook
POST/api/public/v1/webhookswrite
Register an https endpoint to receive signed event callbacks. Events: run.started, run.completed, run.failed, drafts.ready, message.ready, message.approved, push.completed, or "*" for all. Returns the signing secret ONCE — deliveries carry `X-Sayintel-Signature: t=<unix>,v1=<hex hmac_sha256(secret, `${t}.${rawBody}`)>`. Reject deliveries older than 5 minutes.
Request
curl -X POST "https://sayintel.com/api/public/v1/webhooks" \
-H "Authorization: Bearer $SAYINTEL_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"url": "<url>"}'Try it out
Try it outPOST/api/public/v1/webhookswrite
Sent as a bearer token to this site only, and kept in this tab's session storage. It is never written to disk or sent anywhere else.
Paste an API key to run.
Body
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| url | body | string | yes | Public https URL that will receive POST callbacks. |
| events | body | array | no | Event names to subscribe to. Defaults to ["*"] (all events). |
| description | body | string | no | — |
Response
{
"ok": true,
"tool": "create_webhook",
"kind": "write",
"data": { ... },
"error": null
}Notes
- Scope required: write. How scopes work.
- Accepts Idempotency-Key. A retry with the same key replays the first result instead of repeating the work.
- Same capability over MCP as the tool create_webhook. MCP setup.