Class reads require classes:read. Class management requires classes:write.
List classes
Use startDate, endDate, and locale to filter and translate the response. The endpoint returns class schedule, price, capacity, gym, area, instructors, and status fields.
Get a class
The class must belong to the API key’s organization.
Create a class
Send one class occurrence. Recurrence creation remains in the 1Club dashboard.
Times must include Z or an explicit UTC offset. All referenced gyms, areas, class types, and instructors must belong to the authorized organization. An area must belong to the selected gym.
Write priceBeforeTax, not price. A class reads back with both: price
includes your organization’s tax and is what a member is charged, while
priceBeforeTax is the figure actually stored. Sending price back is
rejected with a 400 naming the right field - if it were accepted, reading a
class and posting it straight back would re-apply tax every time (20 becomes
24, then 28.80 at 20% exclusive tax). Read priceBeforeTax, send
priceBeforeTax, and a round trip changes nothing.
Update a class
Send only fields that should change:
Changing the area, instructors, or time updates the related schedule reservations. Conflicting reservations return 409 Conflict.
Delete a class
Delete one occurrence:
For a recurring class, add ?scope=all_future to delete this and later occurrences. The default is this_instance.
Deletion returns 409 Conflict when affected future classes have active customer bookings or waitlist entries. Cancel or move those records before retrying.