Webhooks

Create a webhook endpoint

Register an HTTPS URL that receives a signed POST for each subscribed event. The response includes the signing secret once. Store it; it is not shown again.

post/api/v1/webhook_endpoints

Request

  • Base URL
    https://app.voicepanel.com
  • URL
    https://app.voicepanel.com/api/v1/webhook_endpoints
  • Auth
    HTTP bearer

Request body

account_idstring

The account that owns the endpoint. Defaults to the account of the API token.

urlstring uri required

HTTPS URL that receives a POST for each event. Private and loopback addresses are rejected.

descriptionstring

A label shown in the dashboard

event_typesstring[] required

Event types the endpoint receives. response.completed fires when a participant completes a response.

Example request

{
  "account_id": "acct_7Kq2mVbXpR4nZa",
  "url": "https://example.com/webhooks/voicepanel",
  "description": "CRM sync",
  "event_types": [
    "response.completed"
  ]
}

Response

The endpoint, with its signing secret

idstring required

The webhook endpoint ID

account_idstring required

The account that owns the endpoint

urlstring required

HTTPS URL that receives a POST for each event

descriptionstring nullable required

A label shown in the dashboard

event_typesstring[] required

Event types the endpoint receives

enabledboolean required

False when deliveries are stopped, by you or after failures

disabled_atstring date-time nullable required

When the endpoint was disabled

disabled_reason'endpoint_returned_410' | 'failing_for_7_days' | 'manual' nullable required

Why the endpoint was disabled

consecutive_failuresinteger required

Failed deliveries since the last success

last_success_atstring date-time nullable required
last_failure_atstring date-time nullable required
previous_secret_expires_atstring date-time nullable required

After a rotation, when deliveries stop carrying the previous signature

created_bystring nullable required

ID of the user who created the endpoint

created_atstring date-time required
updated_atstring date-time required
secretstring required

Signing secret, prefixed whsec_. Shown once; store it to verify deliveries.

warningstring required

Reminder that the secret is not shown again

Example response

{
  "id": "whep_9Lm2Xc7VqT4bRn",
  "account_id": "acct_7Kq2mVbXpR4nZa",
  "url": "https://example.com/webhooks/voicepanel",
  "description": "CRM sync",
  "event_types": [
    "response.completed"
  ],
  "enabled": true,
  "last_success_at": "2026-03-09T18:45:02.000Z",
  "created_by": "0f1b3c6e-9d2a-4b7c-8e5f-2a1d4c6b8e90",
  "created_at": "2026-02-20T10:00:00.000Z",
  "updated_at": "2026-03-09T18:45:02.000Z",
  "secret": "whsec_MfKQ9r8GtY2bP0xW4zVn7LcH1sJd6aEo3uRi5kTgXq8=",
  "warning": "Store this secret securely. It will not be shown again."
}

Changes

No recorded changes to this operation across all 1 revision of this API.