Skip to content

Endpoints

Bookings & availability

Appointments, free slots and the service catalog. Writes follow the same availability rules as the in-app Calendar.

Paths are relative to the base URL. Each card lists the permission the call needs and every parameter, with its type and limits.

GET
/bookings

List bookings, newest first.

Permission: calendar
Paginated

Query parameters

  • fromoptionalstring (ISO 8601 date-time with offset)

    Bookings that start at or after this time.

  • tooptionalstring (ISO 8601 date-time with offset)

    Bookings that start at or before this time.

  • statusoptionalstring

    Comma-separated list of statuses.

    Allowed values:pendingconfirmedcompletedno_showcancelledpending_completion

  • contact_idoptionalinteger

    Bookings of this contact.

  • serviceoptionalstring

    Service name (case-insensitive).

  • service_idoptionalinteger

    Bookings linked to this service.

GET
/bookings/:id

Retrieve a booking.

Permission: calendar

Path parameters

  • idrequiredinteger

    Booking ID.

POST
/bookings

Book an appointment for a contact.

Permission: calendar

JSON body

  • contact_idrequiredinteger

    The customer. Name and phone come from the contact unless you override them.

  • date_timerequiredstring (ISO 8601 date-time with offset)

    Start time.

  • duration_minutesoptionalinteger

    5–1,440. Defaults to the service duration, else 60.

  • service_idoptionalinteger

    A service from GET /services.

  • service_typeoptionalstring

    Service name, up to 200 characters. Defaults to the service title.

  • locationoptionalstring

    Up to 300 characters.

  • location_idoptionalinteger

    A business location.

  • notesoptionalstring

    Up to 5,000 characters. Added to the booking notes.

  • statusoptionalenum

    Default "pending".

    Allowed values:pendingconfirmedcompletedno_show

  • conversation_idoptionalinteger

    Link the booking to a conversation.

  • customer_nameoptionalstring

    Override the contact name, 1–200 characters.

  • customer_phoneoptionalstring

    Override the contact phone, 3–50 characters.

  • slot_tokenoptionalstring

    The slot_token of a slot from GET /availability/slots.

  • override_availabilityoptionalboolean

    Skip the availability check, like a manual entry in the Calendar.

  • Answers 201 with the booking.
PATCH
/bookings/:id

Change booking details. A new date_time reschedules it.

Permission: calendar

Path parameters

  • idrequiredinteger

    Booking ID.

JSON body

  • date_timeoptionalstring (ISO 8601 date-time with offset)

    New start time.

  • duration_minutesoptionalinteger

    5–1,440.

  • service_idoptionalinteger | null

    A service from GET /services.

  • service_typeoptionalstring | null

    Up to 200 characters.

  • locationoptionalstring

    Up to 300 characters.

  • location_idoptionalinteger

    A business location.

  • notesoptionalstring

    Up to 5,000 characters. Added as a new note.

  • statusoptionalenum

    New status.

    Allowed values:pendingconfirmedcompletedno_showcancelled

  • customer_nameoptionalstring

    1–200 characters.

  • customer_phoneoptionalstring

    3–50 characters.

  • slot_tokenoptionalstring

    The slot_token of the new slot.

  • override_availabilityoptionalboolean

    Skip the availability check.

  • Send at least one field besides slot_token, override_availability and location_id.
POST
/bookings/:id/cancel

Cancel a booking. Cancelling an already cancelled booking returns it unchanged.

Permission: calendar

Path parameters

  • idrequiredinteger

    Booking ID.

JSON body

  • reasonoptionalstring

    Up to 1,000 characters, saved as a booking note.

PUT
/bookings/:id/status

Set the booking status.

Permission: calendar

Path parameters

  • idrequiredinteger

    Booking ID.

JSON body

  • statusrequiredenum

    New status.

    Allowed values:confirmedcompletedno_showpending

GET
/availability/slots

List bookable slots on one day. Each slot has start, end and slot_token.

Permission: calendar

Query parameters

  • daterequiredstring (YYYY-MM-DD)

    The day to check.

  • service_idoptionalinteger

    Use this service's duration and rules.

  • durationoptionalinteger

    Slot length in minutes, 5–1,440.

  • location_idoptionalinteger

    A business location.

  • granularityoptionalinteger

    Minutes between slot starts, 5–120.

  • exclude_booking_idoptionalinteger

    Ignore this booking (when rescheduling it).

GET
/services

List business services (name, duration, price, category).

Any team member
Paginated
GET
/services/:id

Retrieve a service.

Any team member

Path parameters

  • idrequiredinteger

    Service ID.