Skip to content

Create a webhook subscription

POST
/webhooks
curl --request POST \
--url https://app.whatsetter.com/api/v1/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "url": "https://api.yourcrm.com/whatsetter-hook", "events": [ "contact.qualified" ], "description": "example" }'

Subscribes an https endpoint to events. The response contains the signing secret, shown once. Store it now. Requires scope webhooks:manage.

Media typeapplication/json
object
url
required
string
events
required
Array<string>
Allowed values: contact.qualified contact.not_qualified booking.created message.received agent.disconnected
description
string
<= 255 characters

Created, note the one-time secret

Media typeapplication/json
object
data
object
id
string
url
string
events
Array<string>
active
boolean
description
string | null
secret_prefix
string | null
last_delivery_at
string | null format: date-time
last_delivery_status
integer | null
created_at
string format: date-time
secret

Whsec_…, shown only at creation

string
Examplegenerated
{
"data": {
"id": "example",
"url": "example",
"events": [
"example"
],
"active": true,
"description": "example",
"secret_prefix": "example",
"last_delivery_at": "2026-04-15T12:00:00Z",
"last_delivery_status": 1,
"created_at": "2026-04-15T12:00:00Z",
"secret": "example"
}
}

Missing, unknown or revoked API key

Media typeapplication/json
object
error
object
code
string
message
string
Examplegenerated
{
"error": {
"code": "example",
"message": "example"
}
}

Invalid parameter or body

Media typeapplication/json
object
error
object
code
string
message
string
Examplegenerated
{
"error": {
"code": "example",
"message": "example"
}
}