Retrieve a product
The same object `GET /products` returns, from the first of the key's locations whose store sells it (or the `location_id` you pass). A product that list hides (store off, offline, deleted, not stocked at the location) is a `404`.
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
uuidQuery Parameters
Restrict to a single location. Must be one the key can access.
uuidResponse Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/products/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "location_id": "46910cc3-ab41-4b80-b4a7-94dab9f1b795", "name": "string", "description": "string", "price_cents": 0, "currency": "string", "images": [ "http://example.com" ], "brand": "string", "sku": "string", "category_ids": [ "1f6df996-f8f0-4483-ba5d-fd35f7dee4e8" ], "stock": "in_stock", "quantity_available": 0}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).
Retrieve a service
The same object `GET /services` returns. A service that list hides (deleted, inactive, not offered at its location, or closed to online booking) is a `404`.