Retrieve a booking
Authorization
ApiKeyAuth 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
Path Parameters
uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/bookings/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "location_id": "46910cc3-ab41-4b80-b4a7-94dab9f1b795", "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598", "service_id": "641e839f-864e-4cce-98f9-40f6cbb3e9e0", "technician_id": "557e6e8c-3c29-4825-b73f-0884ad39f2d9", "start": "2019-08-24T14:15:22Z", "end": "2019-08-24T14:15:22Z", "status": "booked", "status_name": "string", "staff_busy": [ { "start": "2019-08-24T14:15:22Z", "end": "2019-08-24T14:15:22Z" } ], "source": "string", "created_at": "2019-08-24T14:15:22Z", "slug": "string"}Create a booking
Books an appointment. The start is re-checked exactly the way the public booking page re-checks it: the staff member's working hours, the location's hours, existing bookings, classes, rooms, and the location's booking rules (same day, how far ahead, minimum notice). The visit is sized for the staff member doing it (their own duration, waiting period and cleanup time for the service). A taken or closed time returns `409 slot_unavailable`; a broken booking rule returns `422 booking_rule_violation`. Without `technician_id`, at a location where every appointment needs a staff member, the first free staff member who performs the service (in the location's booking priority order) is assigned: the same person `GET /availability` named for that slot. At a location that books onto rooms, the appointment is booked onto a room with no staff member (the service must have a room there, else `422 service_not_bookable`).
List bookings
Lists bookings, newest first by default. To find a client's appointments from what you know about them, pass `phone` and/or `email`: the client is matched the same way booking matches a contact (any stored phone format), and the response adds `contact_found` and `matched_contacts` (more than one person can share a phone). Each matched contact carries `client_status`: `returning` when they have a past visit (an appointment completed, checked in or passed), otherwise `new`. For a "what are my upcoming appointments" lookup use `from` = now, `order=asc` and `exclude_cancelled=true`.