Booking Pro API
API ReferenceAvailability

List open slots

Returns bookable start times for a service at a location on a given date (or date range). Honors the location's business hours, staff schedules, existing bookings, classes, rooms, and booking rules, exactly like the public booking page. Each slot is sized for the staff member who would do it (their own duration, waiting period and cleanup time for the service). Without `technician_id`: at a location where every appointment needs a staff member, this is "any available": a time is listed when ANY staff member who performs the service is free, and the slot's `technician_id` is the staff member `POST /bookings` assigns when you book that start without naming one (the first free one in the location's booking priority order). At most 7 days per request in this mode. At a location that books appointments onto rooms, the slots come from the rooms and `technician_id` is null. Every `start` returned here is accepted by `POST /bookings` (unless someone books it first, which returns `409`). When the requested days have no open time, `next_available` is the first open slot after them (searched up to 60 days ahead, 28 in any-available mode), so you can offer the earliest time without a second call. It is also set to the first slot when there are slots. Pass `limit` to return only the earliest slots (for example `limit=20` for a text conversation).

View on GitHub
Connect your AI:ClaudeChatGPT
GET
/availability

Authorization

ApiKeyAuth
AuthorizationBearer <token>

Send your API key as a bearer token: Authorization: Bearer bp_sk_live_.... Mint and revoke keys in your dashboard under Settings -> Developers.

In: header

Query Parameters

location_id*string
Formatuuid
service_id*string
Formatuuid
date*string

Start date (YYYY-MM-DD), interpreted in the location's timezone.

Formatdate
days?integer

Number of days from date to include (1-31). Defaults to 1.

Range1 <= value <= 31
Default1
technician_id?string

Restrict to a specific staff member. Must be someone who performs the service at the location (otherwise 404 technician_not_found).

Formatuuid
limit?integer

Return at most this many slots, earliest first (1-500). Omit for every slot in the range.

Range1 <= value <= 500

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/availability?location_id=497f6eca-6276-4993-bfeb-53cbbbba6f08&service_id=497f6eca-6276-4993-bfeb-53cbbbba6f08&date=2019-08-24"
{  "location_id": "46910cc3-ab41-4b80-b4a7-94dab9f1b795",  "service_id": "641e839f-864e-4cce-98f9-40f6cbb3e9e0",  "timezone": "string",  "slots": [    {      "start": "2019-08-24T14:15:22Z",      "end": "2019-08-24T14:15:22Z",      "technician_id": "557e6e8c-3c29-4825-b73f-0884ad39f2d9",      "technician_name": "string"    }  ],  "next_available": {    "start": "2019-08-24T14:15:22Z",    "end": "2019-08-24T14:15:22Z",    "technician_id": "557e6e8c-3c29-4825-b73f-0884ad39f2d9",    "technician_name": "string"  }}