Skip to content
Keptslot
Start free

List endpoints

GET
/v1/webhook-endpoints
curl --request GET \
--url https://api.keptslot.com/v1/webhook-endpoints \
--header 'Authorization: Bearer <token>'

This endpoint lists the webhook endpoints of the workspace. No response here carries the signing secret.

The webhook endpoints of the workspace.

Media type application/json
object
data
required
Array<object>
object
id
required
string format: uuid
url
required
string
events
required

The event types this endpoint receives. Twelve are subscribable: booking.created, booking.cancelled, booking.rescheduled, booking.no_show, payment.succeeded, payment.refunded, booking.held, booking.reminder, booking.staff_reminder, booking.expired, payment.disputed and payment.dispute_closed. booking.no_show fires when the business marks a no-show, not when it clears one. The four payment events carry data.payment beside data.booking; payment.succeeded fires once when the charge succeeds, and payment.refunded once per increase of the refund total, whoever issued the refund. An endpoint receives only the events in this list. The webhooks guide describes each event and its body.

Array<string>
Allowed values: booking.created booking.cancelled booking.rescheduled booking.no_show payment.succeeded payment.refunded booking.held booking.reminder booking.staff_reminder booking.expired payment.disputed payment.dispute_closed
active
required
boolean
consecutive_failures
required

How many deliveries failed in a row. It returns to 0 after a success.

integer
last_success_at
string | null format: date-time
last_failure_at
string | null format: date-time
created_at
required
string format: date-time
secret

The signing secret. It is present ONLY on the create response. The stored form is sealed and no read path can reveal it again. Store it now. If you lose it, rotate it.

string
Example
{
"data": [
{
"events": [
"booking.created"
]
}
]
}

The key is missing, malformed or revoked.

Media type application/json
object
error
required
object
type
required

A stable machine-readable code. Match on this.

string
message
required

A sentence for a person. Do not match on this.

string
param

The field that caused the refusal, if one field did.

string
dimension

The plan limit that refused the request. It is present only on a 402, and only for a secret key or an account key. See the errors guide.

string
used

The current count for that dimension. It is present only on a 402, and only for an account key. It is absent when the refusal has no count to report. Absent and zero are different answers.

integer format: int64
limit

The cap for that dimension. It is present only on a 402, and only for an account key. A cap of zero is a real value.

integer format: int64
Example generated
{
"error": {
"type": "example",
"message": "example",
"param": "example",
"dimension": "example",
"used": 1,
"limit": 1
}
}

This is a server route and you sent a publishable key. Send a secret key from your server. The type field is secret_key_required.

Media type application/json
object
error
required
object
type
required

A stable machine-readable code. Match on this.

string
message
required

A sentence for a person. Do not match on this.

string
param

The field that caused the refusal, if one field did.

string
dimension

The plan limit that refused the request. It is present only on a 402, and only for a secret key or an account key. See the errors guide.

string
used

The current count for that dimension. It is present only on a 402, and only for an account key. It is absent when the refusal has no count to report. Absent and zero are different answers.

integer format: int64
limit

The cap for that dimension. It is present only on a 402, and only for an account key. A cap of zero is a real value.

integer format: int64
Example generated
{
"error": {
"type": "example",
"message": "example",
"param": "example",
"dimension": "example",
"used": 1,
"limit": 1
}
}

A fault on our side. Do not retry the same request in a loop. The type field is internal_error.

Media type application/json
object
error
required
object
type
required

A stable machine-readable code. Match on this.

string
message
required

A sentence for a person. Do not match on this.

string
param

The field that caused the refusal, if one field did.

string
dimension

The plan limit that refused the request. It is present only on a 402, and only for a secret key or an account key. See the errors guide.

string
used

The current count for that dimension. It is present only on a 402, and only for an account key. It is absent when the refusal has no count to report. Absent and zero are different answers.

integer format: int64
limit

The cap for that dimension. It is present only on a 402, and only for an account key. A cap of zero is a real value.

integer format: int64
Example generated
{
"error": {
"type": "example",
"message": "example",
"param": "example",
"dimension": "example",
"used": 1,
"limit": 1
}
}