Data model and terminology (V1)¶
V1 retires on January 15, 2027
Use Data model and terminology with V2 for new work. See the migration guide when you move an integration.
This page explains the names V1 uses for resources, fields and IDs, and how they relate to the names in the Back Office. It is complete for V1: you do not need the V2 pages to read it. It also applies to webhook registrations created before the V2 release, which keep V1 payloads. MCP tools use V2 names.
What V1 exposes¶
All V1 resources are under /api/v1/management/. Read the table by resource.
| Resource | Endpoint | What you can do |
|---|---|---|
| Class | /classes/ |
List and retrieve |
| Appointment | /appointments/ |
List and retrieve |
| Booking | /bookings/ |
List, retrieve, create, cancel and set attendance |
| Client | /clients/ |
List, retrieve, create, archive, tag and untag |
| Client note | /client-notes/ |
List, retrieve and create |
| Tag and tag group | /tags/, /tag-groups/ |
List, retrieve and create |
| Pass | /passes/ |
List and retrieve |
| Client pass | /client-passes/ |
List, retrieve, enable and disable |
| Subscription | /subscriptions/ |
List and retrieve |
| Client subscription | /client-subscriptions/ |
List and retrieve |
| Teacher | /teachers/ |
List and retrieve |
| Venue | /venues/ |
List, retrieve and create |
| Webhook registration | /webhook-registrations/ |
List, retrieve, create and update |
V1 has no endpoints for services, appointment services, appointment slots, levels, discount codes, gift cards, products, invoices, teacher pay rates or communications.
Company and venue¶
A company is the business whose data you access through the Public API or MCP. A venue is a physical place belonging to a company. Use the company identifier for company scope and the venue identifier when selecting a physical place.
venue is the resource name in /venues/ and the Back Office. Older surfaces call the same
place an establishment. Do not confuse it with a Back Office location, which is a group of
venues billed as one entity.
On bookings, V1 names the venue field location_id. On classes and appointments it is
venue_id. Both hold a venue ID.
Client¶
client is the V1 resource name (/clients/). In the Back Office, "client" is the umbrella
term for leads, customers and members.
- The
member-createandmember-updatewebhook events keep the historical name, but theirdataobject is a client anddata.idis the client ID. - A client's registration data, such as the reference number, is in the
membershipobject. consumer,customeranduserdescribe the platform-wide account in older surfaces. They are not client IDs and must not be used to call/clients/{id}/.
Class, appointment and session¶
Read the table by term. It shows what each term is and where it appears in V1.
| Term | What it is | Where it appears |
|---|---|---|
class |
A group fitness session with a fixed schedule and capacity. | /classes/ endpoint |
appointment |
A private 1-on-1 session booked by one client with one teacher. | /appointments/ endpoint |
offer |
The historical event name for a class. | Webhook events offer-create and offer-update, whose data is a class |
session |
A deprecated name for a class ID. | Booking input session_id and session_ids, and output session_id and session_start_at |
V1 has no separate session resource. A booking's class_id and its deprecated session_id
alias hold the same ID. Use either with GET /api/v1/management/classes/{class_id}/. Prefer
class_id and class_start_at, because the session aliases are deprecated.
Services¶
On a class or an appointment, service_id is the ID of the offering the session is based on. V1
has no /services/ or /appointment-services/ endpoint, so you cannot look a service up
from the ID.
- On classes,
service_idis an internal scheduling record ID. Legacy classes without a linked service returnnull. Theservice_idfilter on/classes/uses the same ID. - On appointments,
service_ididentifies the private service andslot_ididentifies its duration and credit option. Theservice_idfilter on/appointments/uses the same ID. - On bookings, the
meta_activity_idsfilter selects by service and theactivity_idsfilter by activity. Onlymeta_activity_idshas a V2 equivalent,service_ids.
Never reuse these IDs in V2: a V1 service_id on a class selects an unrelated service there.
Teacher¶
V1 exposes the company-scoped instructor record at /teachers/ under the term teacher.
| Term | What it is | Where it appears |
|---|---|---|
teacher |
An instructor associated with a specific studio. | /teachers/ endpoint, and teacher_id on classes |
associated_coach |
The same record, using the historical event name. | Webhook events associated_coach-create, -update and -delete |
coach |
The platform-level instructor account shared across studios. | Legacy Back Office surfaces, and teacher_id on appointments and bookings |
The meaning of teacher_id depends on the resource. Read the table by field.
| Field | What the ID identifies | How to resolve it |
|---|---|---|
Class teacher_id and filter |
The effective teacher: the substitute when one is assigned, otherwise the main teacher. is_teacher_substitute tells you which. |
A teacher ID from /teachers/ |
Appointment teacher_id and filter |
A platform-wide coach, or null when none is assigned |
Not a /teachers/ ID. Do not look it up there |
Booking teacher_id, substitute_teacher_id and the teacher_ids filter |
Platform-wide coaches. Both can be null on legacy bookings |
Not a /teachers/ ID. Do not look it up there |
Teacher IDs from /teachers/ are company-specific: the same person has a different ID in each
company.
For associated_coach-create and associated_coach-update, data is a teacher and data.id
is the company-specific teacher ID.
Passes and subscriptions¶
V1 names a pass without saying which kind of session it grants. Read the table by product.
| Product | Product owned by a client |
|---|---|
pass |
client_pass |
subscription |
client_subscription |
- A
passis a pass product that grants credits. Aclient_passis a pass owned by a client: it holds the remaining credits, andpass_idpoints to its pass. - A
subscriptionis a subscription product. Aclient_subscriptionis a subscription owned by a client, andsubscription_idpoints to its subscription. The Back Office calls a subscription a membership. - A subscription's
benefit_typeispass,appointment_passorpack, andbenefit_ididentifies the benefit. V1 has no endpoint to read an appointment pass or a pack.
V2 splits pass and client_pass into class pass and appointment pass resources. Do not use
the V1 names for V2 resources.
Legacy route names¶
These names belong to the V1 routes outside /api/v1/management/, removed on November 30, 2026.
They appear in old integrations and in the legacy Back Office webhooks, and they are not event
families in the current webhook catalogue. Read the table by legacy route to find its
replacement in each version.
| Legacy route | Replacement in V1 | Replacement in V2 |
|---|---|---|
/api/v1/bookings/ |
/api/v1/management/bookings/ |
/api/v2/management/bookings/ |
/api/v1/members/ |
/api/v1/management/clients/ |
/api/v2/management/clients/ |
/api/v1/contracts/ |
/api/v1/management/subscriptions/ |
/api/v2/management/subscriptions/ |
/api/v1/billing_plans/ |
/api/v1/management/client-subscriptions/ |
/api/v2/management/client-subscriptions/ |
/api/v1/payment_packs/ |
/api/v1/management/client-passes/ |
/api/v2/management/client-class-passes/ |
/api/v1/consumer_payment_packs/ |
/api/v1/management/client-passes/ |
/api/v2/management/client-class-passes/ |
Find the ID you need¶
Use IDs returned by the V1 resource you are referencing. Do not substitute platform account IDs.
| Required value | Where to obtain it |
|---|---|
class_id, class_ids (or deprecated session_id, session_ids) |
/api/v1/management/classes/ |
client_id |
/api/v1/management/clients/ |
client_pass_id |
/api/v1/management/client-passes/?client_ids=123 |
pass_id |
/api/v1/management/passes/ |
Class teacher_id |
/api/v1/management/teachers/ |
Appointment or booking teacher_id |
Not available. V1 has no coach endpoint |
venue_id |
/api/v1/management/venues/ |
service_id, appointment slot_id |
Not available. V1 has no endpoint for them |
tag_id |
/api/v1/management/tags/ |
Related V1 pages¶
- Pagination and filtering (V1) covers sortable fields, the default time window and filter names.
- Webhook event payloads lists the V1 event names and
their
datamodels.