API reference · Bookings
Bookings and waitlist
/bookingsList bookings
Lists bookings filtered by class, member, or status.
- Required scope
bookings:read- Success
200- Response
Page<BookingObject>
Parameters
class_idqueryuuidReturn bookings for one class.
member_idqueryuuidReturn bookings for one member.
statusquerystringFilter by booking status.
cursorqueryuuidOpaque cursor returned by the previous page. Pass it back unchanged.
limitqueryintegerNumber of records to return. Defaults to 50; maximum 200.
Example request
curl -X GET "https://api.getclassflow.com/partner/v1/bookings" \
-H "X-ClassFlow-Key: $CLASSFLOW_API_KEY"Example response
{
"object": "list",
"data": [{
"id": "bf4a8333-cce8-4d1c-922d-7585317af831",
"object": "booking",
"class_id": "70bf3848-d688-40cf-9692-6283c6652bb3",
"member_id": "5fef0f5c-2165-48e0-a730-9c066eb37f9a",
"status": "confirmed",
"booking_source": "partner_api",
"created_at": "2026-08-02T20:51:00Z"
}],
"has_more": false,
"next_cursor": null
}/bookingsCreate a booking
Runs the canonical booking flow, including capacity, eligibility, spot, and waitlist rules.
- Required scope
bookings:write- Success
201- Response
BookingObject
Parameters
Idempotency-KeyheaderrequiredstringUnique key for this write. Results are replayable for 24 hours.
Request body
Send a JSON object matching PartnerBookingCreate.
{
"class_id": "70bf3848-d688-40cf-9692-6283c6652bb3",
"member_id": "5fef0f5c-2165-48e0-a730-9c066eb37f9a",
"join_waitlist": true
}Example request
curl -X POST "https://api.getclassflow.com/partner/v1/bookings" \
-H "X-ClassFlow-Key: $CLASSFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: booking-$(uuidgen)" \
--data '{
"class_id": "70bf3848-d688-40cf-9692-6283c6652bb3",
"member_id": "5fef0f5c-2165-48e0-a730-9c066eb37f9a",
"join_waitlist": true
}'Example response
{
"id": "bf4a8333-cce8-4d1c-922d-7585317af831",
"object": "booking",
"class_id": "70bf3848-d688-40cf-9692-6283c6652bb3",
"member_id": "5fef0f5c-2165-48e0-a730-9c066eb37f9a",
"status": "confirmed",
"booking_source": "partner_api",
"created_at": "2026-08-02T20:51:00Z"
}/bookings/{booking_id}Retrieve a booking
Returns one booking when its class is in a permitted location.
- Required scope
bookings:read- Success
200- Response
BookingObject
Parameters
booking_idpathrequireduuidThe stable ClassFlow identifier for the booking.
Example request
curl -X GET "https://api.getclassflow.com/partner/v1/bookings/YOUR_BOOKING_ID" \
-H "X-ClassFlow-Key: $CLASSFLOW_API_KEY"Example response
{
"id": "bf4a8333-cce8-4d1c-922d-7585317af831",
"object": "booking",
"class_id": "70bf3848-d688-40cf-9692-6283c6652bb3",
"member_id": "5fef0f5c-2165-48e0-a730-9c066eb37f9a",
"status": "confirmed",
"booking_source": "partner_api",
"created_at": "2026-08-02T20:51:00Z"
}/bookings/{booking_id}Cancel a booking
Cancels a booking through the canonical cancellation policy and side-effect flow.
- Required scope
bookings:write- Success
200- Response
BookingObject
Parameters
booking_idpathrequireduuidThe stable ClassFlow identifier for the booking.
reasonquerystringOptional cancellation reason, up to 500 characters.
Idempotency-KeyheaderrequiredstringUnique key for this write. Results are replayable for 24 hours.
Example request
curl -X DELETE "https://api.getclassflow.com/partner/v1/bookings/YOUR_BOOKING_ID" \
-H "X-ClassFlow-Key: $CLASSFLOW_API_KEY" \
-H "Idempotency-Key: booking-$(uuidgen)"Example response
{
"id": "bf4a8333-cce8-4d1c-922d-7585317af831",
"object": "booking",
"class_id": "70bf3848-d688-40cf-9692-6283c6652bb3",
"member_id": "5fef0f5c-2165-48e0-a730-9c066eb37f9a",
"status": "confirmed",
"booking_source": "partner_api",
"created_at": "2026-08-02T20:51:00Z"
}/waitlistList waitlist entries
Lists waitlist entries filtered by class, member, or status.
- Required scope
bookings:read- Success
200- Response
Page<WaitlistObject>
Parameters
class_idqueryuuidReturn entries for one class.
member_idqueryuuidReturn entries for one member.
statusquerystringFilter by waitlist status.
cursorqueryuuidOpaque cursor returned by the previous page. Pass it back unchanged.
limitqueryintegerNumber of records to return. Defaults to 50; maximum 200.
Example request
curl -X GET "https://api.getclassflow.com/partner/v1/waitlist" \
-H "X-ClassFlow-Key: $CLASSFLOW_API_KEY"Example response
{
"object": "list",
"data": [{
"id": "3417c872-0469-4059-994a-26b3e53eed03",
"object": "waitlist",
"class_id": "70bf3848-d688-40cf-9692-6283c6652bb3",
"member_id": "5fef0f5c-2165-48e0-a730-9c066eb37f9a",
"position": 2,
"status": "waiting",
"converted_to_booking": false
}],
"has_more": false,
"next_cursor": null
}/waitlist/{waitlist_id}Retrieve a waitlist entry
Returns position, status, and booking-conversion state for one entry.
- Required scope
bookings:read- Success
200- Response
WaitlistObject
Parameters
waitlist_idpathrequireduuidThe stable ClassFlow identifier for the waitlist entry.
Example request
curl -X GET "https://api.getclassflow.com/partner/v1/waitlist/YOUR_WAITLIST_ID" \
-H "X-ClassFlow-Key: $CLASSFLOW_API_KEY"Example response
{
"id": "3417c872-0469-4059-994a-26b3e53eed03",
"object": "waitlist",
"class_id": "70bf3848-d688-40cf-9692-6283c6652bb3",
"member_id": "5fef0f5c-2165-48e0-a730-9c066eb37f9a",
"position": 2,
"status": "waiting",
"converted_to_booking": false
}Object schema
BookingObject
iduuidStable booking identifier.
class_iduuidBooked class session.
member_iduuidBooked member.
statusstringConfirmed, cancelled, or other canonical booking state.
class_spot_iduuid | nullSelected spot when the class requires spot selection.
waitlist_positioninteger | nullPosition when the request joins the waitlist.