POST request to it each time an event you subscribed to happens, for example when a call ends or its post-call summary is ready.
Set up an endpoint
Create an endpoint in the dashboard or with the API. You choose the URL and the event types to receive.secret that starts with whsec_. It is shown once. Store it in your secrets manager, because you need it to verify signatures.
The URL must use HTTPS and must not contain credentials. Addresses on private or internal networks are refused with webhook.url_not_allowed. Creating endpoints needs the webhooks:write scope and an admin role.
The request Larynth sends
Each delivery is aPOST with a JSON body and these headers.
The signing scheme follows the Standard Webhooks specification.
The body has the same four fields for every event.
Respond quickly
Return any2xx status within 10 seconds. Larynth reads at most the first 64 KB of your response and keeps a short excerpt for the delivery log. Redirects are not followed and count as a failure.
Do the real work after you respond. Verify the signature, store the event, return 200, then process it from a queue.
Retries
If your endpoint times out, can’t be reached or returns anything other than2xx, Larynth retries the same message. A message gets up to 9 attempts in total, with these waits between them:
After the last attempt the delivery is marked
failed and Larynth stops trying that message.
If an endpoint fails 50 deliveries in a row, Larynth disables it. Its status becomes disabled and disabled_reason says why. A successful delivery resets the counter. Fix the problem and re-enable the endpoint with PATCH /v1/webhooks/{id}.
Delivery is at least once. The same event can arrive more than once, so make your handler safe to run twice by keying on id.
Inspect and test
POST /v1/webhooks/{id}/testsends a test event to your endpoint. Thedataof a test event is{"test": true, "message": "This is a test event from Larynth."}.GET /v1/webhooks/{id}/deliverieslists attempts with status, response code, response time and a short excerpt of your response. Filter bystatus.POST /v1/webhooks/{id}/rotate-secretissues a new secret. The old secret stays valid for 24 hours, and during that time every delivery carries a signature for each secret. See verify signatures.