Skip to main content
POST
Create a webhook endpoint

Authorizations

Authorization
string
header
required

A user token (pv_ut_…) as Authorization: Bearer pv_ut_…. X-Peeve-Key is accepted too. Never a query parameter — URLs end up in proxy logs and Referer headers.

The token carries its owner's live workspace role, re-read on every call.

Body

application/json
url
string
required

HTTPS only. Private, loopback, link-local and .internal destinations are refused.

Maximum string length: 2048
events
enum<string>[]
required

Required. [] is refused; ["*"] means everything.

Minimum array length: 1
Available options:
session.started,
session.resolved,
handoff.created,
handoff.message.created,
handoff.status.changed,
lead.created,
lead.status.changed,
meeting.booked,
meeting.status.changed,
billing.payment_failed,
billing.subscription.changed,
billing.credits_low,
billing.credits_expiring,
*
label
string | null
Maximum string length: 80
channels
enum<string>[] | null

Optional. Omit or null for every channel.

Available options:
human,
agent,
whatsapp,
messenger,
instagram,
email
enabled
boolean
default:true

false creates it paused.

Response

Created. The only response that carries the secret, besides rotate-secret.

object
string
required

The resource type, e.g. lead.

data
object
required
request_id
string
required

Echoed in the X-Request-Id header. Quote it to support.