Get a booking
Returns the current state of a booking (including payment status) by its 1club id - any of the organization’s bookings, whichever channel created it. Nothing here is absent from the list endpoint, which has always returned every source.
Authorizations
Organization-scoped bearer credential: a customer API key (1club_sk_live_...) or an MCP OAuth access token.
Path Parameters
1club booking id
Query Parameters
Embed the booking's customer as customer, identical to what GET /v1/platform/contacts/{id} returns. Requires the contacts:read scope in addition to bookings:read, and is refused with 403 without it.
customer Response
Booking state
A booking created through the platform API. Recorded with a booking transaction so it counts for revenue, marked paid (settled against the External / API payment method) or unpaid (outstanding) per the caller. Refunds and collection stay with the caller.
1club booking id
Stable unguessable identifier. Prefer this over bookingId when storing a reference.
Booking status (e.g. confirmed, cancelled)
Area id
The class occurrence this booking attends, when it is a class booking. Every attendee holds their own booking row against the same classId, and classes rows are per-occurrence - so this is what tells two classes running in the same hour apart. Join it against GET /v1/platform/classes, or read the roster with GET /v1/platform/classes/{id}/bookings.
The event this booking attends, when it is an event booking
Instructor leading the session, when one is attached
Contact the booking is for
The booking's customer, identical to what GET /v1/platform/contacts/{id} returns. Present only when the request passes include=customer, which additionally requires the contacts:read scope; null when the booking has no contact. Use it to import a window of bookings without a contact lookup per row.