List classes
Returns the organization’s class occurrences, ordered by start time. One row is one occurrence - a weekly class materializes a row per session, linked by recurrenceId and occurrenceIndex - so a row’s id is what a booking’s classId points at.
The window is open by default: with neither bound the whole schedule is in scope, past included, because this endpoint serves operators reconciling what happened rather than members shopping for a slot. startDate keeps occurrences still running at or after it, endDate keeps occurrences starting before it (exclusive), and each accepts an ISO date-time or a bare YYYY-MM-DD read as midnight UTC. Overlap, not containment, so a long or multi-day class shows up on every day it covers.
Page with limit/offset against the total the response reports. Ordering is stable (startTime, then id).
Every class the organization owns is in scope - member-only and private occurrences included, and those at a deactivated club - because the key holder is the operator, not a visitor. locale resolves name and description; the full translations blob is returned either way.
Authorizations
Organization-scoped bearer credential: a customer API key (1club_sk_live_...) or an MCP OAuth access token.
Query Parameters
Keep occurrences ending after this instant. ISO date-time or YYYY-MM-DD. Omit for no lower bound.
Keep occurrences starting before this instant (exclusive). ISO date-time or YYYY-MM-DD. Omit for no upper bound.
Only classes at this club
Only classes of this class type
Only classes this instructor is assigned to teach
Only classes with this status. A cancelled occurrence keeps its bookings.
active, cancelled Only classes for this sport
Case-insensitive match on the class name
Locale for translated fields (e.g. "en", "es")
Maximum number of classes to return
1 <= x <= 100Number of classes to skip
x >= 0