Webhooks
Control-plane events emitted as conversations start, end, and stream
Outbound customer webhooks for Voice Agents are on the near-term roadmap.
Today, the definitive source of conversation events is GET /v1/conversations/{id} and GET /v1/conversations/{id}/messages — polled or called after you receive a higher-level notification from your own system.
When the outbound webhook subscription API lands you’ll be able to register a URL for any subset of these events:
Signature verification
Every delivery carries X-Speechify-Signature, the same t=…,v1=<hex HMAC-SHA256> format used for webhook-tool calls. See Tools → Verifying the signature for code.
Payload shape
Respond with 2xx within 5 seconds. We retry non-2xx responses with exponential backoff up to 24 hours.
While you wait
For long-running polling, the two endpoints you’ll want are:
GET /v1/conversations/{id}— single-row status lookupGET /v1/conversations/{id}/messages— full transcript, ordered
Both are fast and cheap. A 1-second poll on an active conversation is fine; once status=completed arrives, stop polling and fetch the evaluations.