Webhooks API
Manage webhook endpoint subscriptions programmatically. For the high-level concept (what events exist, payload shapes, signature verification), see the Webhooks guide. This page is the API reference.
The endpoint object
{
"id": "whe_abc123",
"url": "https://your-backend.example.com/seny-webhook",
"events": ["conversation.ended", "form.submitted"],
"status": "enabled",
"created_at": "2026-04-09T14:12:00Z",
"last_delivery": {
"status": "success",
"at": "2026-04-10T12:36:10Z"
}
}List endpoints
GET /api/v1/webhook_endpointsCreate an endpoint
POST /api/v1/webhook_endpoints
{
"url": "https://your-backend.example.com/seny-webhook",
"events": ["conversation.ended", "form.submitted"]
}Response includes a one-time signing_secret you use to verify inbound deliveries. Store it securely — it's not retrievable later.
Update an endpoint
PATCH /api/v1/webhook_endpoints/:id
{
"events": ["conversation.ended", "form.submitted", "criteria.evaluated"]
}Disable / enable
POST /api/v1/webhook_endpoints/:id/disable
POST /api/v1/webhook_endpoints/:id/enableDisabled endpoints stop receiving deliveries but are preserved along with their history.
Delete an endpoint
DELETE /api/v1/webhook_endpoints/:idPermanently removes the endpoint and its delivery history.
Rotate signing secret
POST /api/v1/webhook_endpoints/:id/rotate_secretGenerates a new signing secret and returns it once. The old secret stays valid for 24 hours after rotation so you can deploy the new one without dropping events.
List deliveries
GET /api/v1/webhook_endpoints/:id/deliveries?status=failed&limit=50Inspect every delivery attempt for an endpoint, with the full request/response payloads and retry history. Useful for debugging.
Resend a delivery
POST /api/v1/webhook_endpoints/:id/deliveries/:delivery_id/resendRetries a specific delivery with a fresh request. The event id stays the same, so idempotent consumers handle it correctly.
Test an endpoint
POST /api/v1/webhook_endpoints/:id/test
{ "event": "conversation.ended" }Sends a synthetic event of the given type to verify your endpoint is reachable and verifies signatures correctly. No conversation data is created.