List bookings
Returns bookings whose start time falls in the requested window, ordered by start time. Each bound is an ISO date-time, or a bare YYYY-MM-DD read as midnight UTC. When from/to are omitted the window defaults to the next 7 days, and passing one derives the other.
A single request may span at most 93 days. To cover a longer range, walk it in consecutive windows of 93 days or less, paging each window with limit/offset against the total it reports. Ordering is stable (startTime, then id), so paging is well defined for a window that is not being written to; bookings created or cancelled mid-walk can still shift rows across page boundaries.
Bookings from every channel are returned, each tagged with source. That is deliberate: a caller reconciling its own writes has to be able to see member- and staff-created bookings to know whether a slot was already taken. Whether the writes (cancel, add/remove participant) reach those bookings too depends on the credential: an API key may only mutate the bookings it created (source: api), while a staff member acting through an authorized 1club assistant may mutate any of the organization’s.
A class booking carries the occurrence it attends as classId. Every attendee of a class holds their own booking row against the same classId, and classes rows are per-occurrence, so that is what tells two groups running in the same hour apart - filter by it, or read the roster from the class side with GET /v1/platform/classes//bookings.
Authorizations
Organization-scoped bearer credential: a customer API key (1club_sk_live_...) or an MCP OAuth access token.
Query Parameters
Inclusive lower bound on booking start time, as an ISO date-time or YYYY-MM-DD. Defaults to to - 7d, or now.
Exclusive upper bound on booking start time, as an ISO date-time or YYYY-MM-DD. Defaults to from + 7d.
Only bookings at this club
Only bookings on this area
Only the attendees of this class occurrence. Equivalent to GET /v1/platform/classes/{id}/bookings, which additionally resolves each attendee's name and check-in.
Only bookings for this event
Only bookings led by this instructor
Only bookings for this contact
Only bookings with this status (e.g. confirmed, pending, cancelled)
Embed each booking's customer as customer, identical to what GET /v1/platform/contacts/{id} returns - one request instead of a contact lookup per booking. Requires the contacts:read scope in addition to bookings:read, and is refused with 403 without it.
customer Maximum number of bookings to return
1 <= x <= 100Number of bookings to skip
x >= 0