Skip to main content
If your server doesn’t answer 2xx (timeouts, 5xx, redirects, and connection errors all count), we retry with backoff:
  • Deduplicate on X-Contour-Delivery-Id (also id in the body). It is the same on every retry of the same event. Retries can arrive more than once if a previous attempt succeeded on your side but we didn’t see the response.
  • Events can arrive out of order under retries, for example call.analyzed before a retried call.ended. The call object is complete on every event, so use call.status and call.analysis rather than the sequence.
  • recording_url is minted fresh on every attempt and expires after about an hour. Fetch it promptly, or use GET /v1/calls/{call_id}/recording any time.
  • After the final attempt the delivery is marked failed. You can see it, and retry it, via the deliveries endpoints.

Delivery statuses

Pausing

PATCH an endpoint with "enabled": false to pause it. Events that occur while paused are not queued, so pausing is for maintenance windows, not for buffering.