Skip to content

List bookings

GET
/bookings
curl --request GET \
--url 'https://app.whatsetter.com/api/v1/bookings?status=booked&limit=25' \
--header 'Authorization: Bearer <token>'

Calls booked by the AI in chat, most recent slot first. Requires scope bookings:read.

status
string
Allowed values: booked canceled rescheduled failed no_show

Exact match on the booking status.

campaign_id
string

Filter by campaign. Accepts the campaign’s campaign_id slug or its document id (both returned by GET /campaigns).

since
string format: date-time

Only bookings starting after this ISO-8601 date.

limit
integer
default: 25 >= 1 <= 100
cursor
string

Opaque cursor from the previous page’s pagination.next_cursor.

Page of bookings

Media typeapplication/json
object
data
Array<object>
object
id
string
status
string | null
Allowed values: booked canceled rescheduled failed no_show
lead_id

The lead’s WhatsApp id (33612345678@c.us), i.e. the whatsapp_id of the lead object — not the lead document id. Resolve it with GET /leads?phone= when you need the document.

string | null
campaign_id

The campaign slug.

string | null
provider

Calendar provider (cal.com, calendly, ghl…).

string | null
source

chat = booked by the AI in the conversation; static_link / webhook = reconciled from the calendar provider; manual = entered by a person.

string | null
Allowed values: chat static_link webhook manual
start_at
string | null format: date-time
end_at
string | null format: date-time
timezone
string | null
attendee
object
name
string | null
email
string | null
phone
string | null
cancel_url

⚠️ Capability link: anyone with it can cancel the call. Treat as sensitive.

string | null
reschedule_url

⚠️ Capability link: anyone with it can reschedule the call. Treat as sensitive.

string | null
canceled_at
string | null format: date-time
cancellation_reason
string | null
created_at
string format: date-time
pagination
object
has_more
boolean
next_cursor
string | null
Example
{
"data": [
{
"status": "booked",
"source": "chat"
}
]
}

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 (also an invalid or expired cursor)

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