Mindbody Public API v6 — Class
Class — 16 operations. Lead operation: Mindbody To Find Class Descriptions Associated with **scheduled Classes**, Pass. Self-contained Naftiko capability covering one Mindbody business surface.
What You Can Do
MCP Tools
find-class-descriptions-associated-**scheduled
Mindbody To Find Class Descriptions Associated with **scheduled Classes**, Pass
get-scheduled-classes
Mindbody Get Scheduled Classes
get-class-schedules
Mindbody Get Class Schedules
returns-list-visits-that-contain
Mindbody Returns a List of Visits That Contain Information for a Specified
this-endpoint-will-provide-all
Mindbody This Endpoint Will Provide All the Data Related to Courses Depending
this-endpoint-retrieves-business-class
Mindbody This Endpoint Retrieves the Business Class Semesters
returns-list-waiting-list-entries
Mindbody Returns a List of Waiting List Entries for a Specified Class Schedule
this-endpoint-adds-class-schedule.
Mindbody This Endpoint Adds a Class Schedule. for a Single Day Schedule, the
this-endpoint-adds-client-class
Mindbody This Endpoint Adds a Client to a Class or to a Class Waiting List. to
this-endpoint-will-cancel-single
Mindbody This Endpoint Will Cancel a Single Class from Studio
remove-client-class
Mindbody Remove a Client from a Class
this-endpoint-can-be-utilized
Mindbody This Endpoint Can Be Utilized for Removing Multiple Clients from
this-endpoint-does-not-return
Mindbody This Endpoint Does Not Return a Response. if a Call to This Endpoint
substitute-class-teacher
Mindbody Substitute a Class Teacher
this-endpoint-updates-class-schedule
Mindbody This Endpoint Updates a Class Schedule
this-endpoint-updates-notes-class
Mindbody This Endpoint Updates the Notes of Class Instances Based on the
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: "Mindbody Public API v6 \u2014 Class"
description: "Class \u2014 16 operations. Lead operation: Mindbody To Find Class Descriptions Associated with **scheduled Classes**, Pass. Self-contained Naftiko capability covering one Mindbody business\
\ surface."
tags:
- Mindbody
- Mindbody Public API v6
- Class
created: '2026-05-28'
modified: '2026-05-28'
binds:
- namespace: env
keys:
MINDBODY_API_KEY: MINDBODY_API_KEY
capability:
consumes:
- type: http
namespace: public-api-v6-class
baseUri: https://api.mindbodyonline.com
description: "Mindbody Public API v6 \u2014 Class business capability. Self-contained, no shared references."
authentication:
type: apikey
key: API-Key
value: '{{env.MINDBODY_API_KEY}}'
placement: header
resources:
- name: class-classdescriptions
path: /class/classdescriptions
operations:
- name: getClassDescriptions
method: GET
description: Mindbody To Find Class Descriptions Associated with **scheduled Classes**, Pass
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: request.classDescriptionId
in: query
type: integer
required: false
description: The ID of the requested client.
- name: request.endClassDateTime
in: query
type: string
required: false
description: Filters the results to class descriptions for scheduled classes that happen before the given date and time.
- name: request.includeInactive
in: query
type: boolean
required: false
description: Includes inactive class descriptions, defaulting to true. When set to false, it filters out inactive class descriptions.
- name: request.limit
in: query
type: integer
required: false
description: Number of results to include, defaults to 100
- name: request.locationId
in: query
type: integer
required: false
description: Filters results to classes descriptions for schedule classes as the given location.
- name: request.offset
in: query
type: integer
required: false
description: Page offset, defaults to 0.
- name: request.programIds
in: query
type: array
required: false
description: A list of requested program IDs.
- name: request.staffId
in: query
type: integer
required: false
description: Filters results to class descriptions for scheduled classes taught by the given staff member.
- name: request.startClassDateTime
in: query
type: string
required: false
description: Filters the results to class descriptions for scheduled classes that happen on or after the given date and time.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-classes
path: /class/classes
operations:
- name: getClasses
method: GET
description: Mindbody Get Scheduled Classes
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: request.classDescriptionIds
in: query
type: array
required: false
description: The requested class description IDs.
- name: request.classIds
in: query
type: array
required: false
description: The requested class IDs.
- name: request.classScheduleIds
in: query
type: array
required: false
description: The requested classSchedule Ids.
- name: request.clientId
in: query
type: string
required: false
description: The client ID of the client who is viewing this class list. Based on identity, the client may be able to see additional information, such as membership specials.
- name: request.endDateTime
in: query
type: string
required: false
description: "The requested end date for filtering. NOTE: ClassDate does not take Class Time into consideration. <br />Default: **today\u2019s date**"
- name: request.hideCanceledClasses
in: query
type: boolean
required: false
description: 'When `true`, canceled classes are removed from the response.<br /> When `false`, canceled classes are included in the response.<br /> Default: **false**'
- name: request.lastModifiedDate
in: query
type: string
required: false
description: When included in the request, only records modified on or after the `LastModifiedDate` specified are included in the response.
- name: request.limit
in: query
type: integer
required: false
description: Number of results to include, defaults to 100
- name: request.locationIds
in: query
type: array
required: false
description: A list of location IDs on which to base the search.
- name: request.offset
in: query
type: integer
required: false
description: Page offset, defaults to 0.
- name: request.programIds
in: query
type: array
required: false
description: A list of program IDs on which to base the search.
- name: request.schedulingWindow
in: query
type: boolean
required: false
description: 'When `true`, classes outside scheduling window are removed from the response.<br /> When `false`, classes are included in the response, regardless of the scheduling window.<br />
Default: **false**'
- name: request.semesterIds
in: query
type: array
required: false
description: A list of semester IDs on which to base the search.
- name: request.sessionTypeIds
in: query
type: array
required: false
description: A list of session type IDs on which to base the search.
- name: request.staffIds
in: query
type: array
required: false
description: The requested IDs of the teaching staff members.
- name: request.startDateTime
in: query
type: string
required: false
description: "The requested start date for filtering. This also determines what you will see for the \u2018BookingWindow\u2019 StartDateTime in the response. For example, if you pass a StartDateTime\
\ that is on OR before the BookingWindow \u2018Open\u2019 days of the class, you will retrieve the actual \u2018StartDateTime\u2019 for the Booking"
- name: request.uniqueClientId
in: query
type: integer
required: false
description: 'The unique ID of the client who is viewing this class list. Based on identity, the client may be able to see additional information, such as membership specials. Note: you need to
provide the ''UniqueClientId'' OR the ''ClientId''. If both are provided, the ''UniqueClientId'' takes precedence.'
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-classschedules
path: /class/classschedules
operations:
- name: getClassSchedules
method: GET
description: Mindbody Get Class Schedules
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: request.classScheduleIds
in: query
type: array
required: false
description: 'The class schedule IDs. <br />Default: **all**'
- name: request.endDate
in: query
type: string
required: false
description: 'The end date of the range. Return any active enrollments that occur on or before this day. <br />Default: **StartDate**'
- name: request.limit
in: query
type: integer
required: false
description: Number of results to include, defaults to 100
- name: request.locationIds
in: query
type: array
required: false
description: 'The location IDs. <br />Default: **all**'
- name: request.offset
in: query
type: integer
required: false
description: Page offset, defaults to 0.
- name: request.programIds
in: query
type: array
required: false
description: 'The program IDs. <br />Default: **all**'
- name: request.sessionTypeIds
in: query
type: array
required: false
description: 'The session type IDs. <br />Default: **all**'
- name: request.staffIds
in: query
type: array
required: false
description: 'The staff IDs. <br />Default: **all**'
- name: request.startDate
in: query
type: string
required: false
description: "The start date of the range. Return any active enrollments that occur on or after this day. <br />Default: **today\u2019s date**"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-classvisits
path: /class/classvisits
operations:
- name: getClassVisits
method: GET
description: Mindbody Returns a List of Visits That Contain Information for a Specified
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: request.classID
in: query
type: integer
required: true
description: The class ID.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: request.lastModifiedDate
in: query
type: string
required: false
description: When included in the request, only records modified on or after the `LastModifiedDate` specified are included in the response.
- name: request.useSiteSettingsStaffName
in: query
type: boolean
required: false
description: When `true`, the staff DisplayName will be populated based on site-level settings. When `false` or omitted, the staff DisplayName will contain only the FirstName.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-courses
path: /class/courses
operations:
- name: getCourses
method: GET
description: Mindbody This Endpoint Will Provide All the Data Related to Courses Depending
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: getCoursesRequest.courseIDs
in: query
type: array
required: false
description: Return only courses that are available for the specified CourseIds.
- name: getCoursesRequest.endDate
in: query
type: string
required: false
description: The end date range. Any active courses that are on or before this day. <br />(optional) Defaults to StartDate.
- name: getCoursesRequest.limit
in: query
type: integer
required: false
description: Number of results to include, defaults to 100
- name: getCoursesRequest.locationIDs
in: query
type: array
required: false
description: Return only courses that are available for the specified LocationIds.
- name: getCoursesRequest.offset
in: query
type: integer
required: false
description: Page offset, defaults to 0.
- name: getCoursesRequest.programIDs
in: query
type: array
required: false
description: Return only courses that are available for the specified ProgramIds.
- name: getCoursesRequest.semesterIDs
in: query
type: array
required: false
description: Return only courses that are available for the specified SemesterIds.
- name: getCoursesRequest.staffIDs
in: query
type: array
required: false
description: Return only courses that are available for the specified StaffIds.
- name: getCoursesRequest.startDate
in: query
type: string
required: false
description: The start date range. Any active courses that are on or after this day. <br />(optional) Defaults to today.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-semesters
path: /class/semesters
operations:
- name: getSemesters
method: GET
description: Mindbody This Endpoint Retrieves the Business Class Semesters
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: request.active
in: query
type: boolean
required: false
description: 'When true, the response only contains semesters which are activated. When false, only deactivated semesters are returned. Default: **All semesters**'
- name: request.endDate
in: query
type: string
required: false
description: 'The end date for the range. All semesters that are on or before this day. Default: **StartDate**'
- name: request.limit
in: query
type: integer
required: false
description: Number of results to include, defaults to 100
- name: request.offset
in: query
type: integer
required: false
description: Page offset, defaults to 0.
- name: request.semesterIDs
in: query
type: array
required: false
description: The requested semester IDs.
- name: request.startDate
in: query
type: string
required: false
description: "The start date for the range. All semesters that are on or after this day. Default: **today\u2019s date**"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-waitlistentries
path: /class/waitlistentries
operations:
- name: getWaitlistEntries
method: GET
description: Mindbody Returns a List of Waiting List Entries for a Specified Class Schedule
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: request.classIds
in: query
type: array
required: false
description: 'The requested class IDs. If a class ID is present, the request automatically disregards any class schedule IDs in the request. <br /> Either `ClassScheduleIds`, `ClientIds`, `WaitlistEntryIds`,
or `ClassIds` is required; the others become optional.<br /> Default: **all ClassIds**'
- name: request.classScheduleIds
in: query
type: array
required: false
description: 'The requested class schedule IDs. If a class ID is present, the request automatically disregards any class schedule IDs in the request.<br /> Either `ClassScheduleIds`, `ClientIds`,
`WaitlistEntryIds`, or `ClassIds` is required; the others become optional.<br /> Default: **all ClassScheduleIds**'
- name: request.clientIds
in: query
type: array
required: false
description: 'The requested client IDs.<br /> Either `ClassScheduleIds`, `ClientIds`, `WaitlistEntryIds`, or `ClassIds` is required; the others become optional.<br /> Default: **all ClientIds**'
- name: request.hidePastEntries
in: query
type: boolean
required: false
description: 'When `true`, indicates that past waiting list entries are hidden from clients.<br /> When `false`, indicates that past entries are not hidden from clients.<br /> Default: **false**'
- name: request.limit
in: query
type: integer
required: false
description: Number of results to include, defaults to 100
- name: request.offset
in: query
type: integer
required: false
description: Page offset, defaults to 0.
- name: request.waitlistEntryIds
in: query
type: array
required: false
description: 'The requested waiting list entry IDs.<br /> Either `ClassScheduleIds`, `ClientIds`, `WaitlistEntryIds`, or `ClassIds` is required; the others become optional.<br /> Default: **all
WaitlistEntryIds**'
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-addclassschedule
path: /class/addclassschedule
operations:
- name: addClassSchedule
method: POST
description: Mindbody This Endpoint Adds a Class Schedule. for a Single Day Schedule, the
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: body
in: body
type: object
required: true
description: JSON request body.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-addclienttoclass
path: /class/addclienttoclass
operations:
- name: addClientToClass
method: POST
description: Mindbody This Endpoint Adds a Client to a Class or to a Class Waiting List. to
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: body
in: body
type: object
required: true
description: JSON request body.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-cancelsingleclass
path: /class/cancelsingleclass
operations:
- name: cancelSingleClass
method: POST
description: Mindbody This Endpoint Will Cancel a Single Class from Studio
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: body
in: body
type: object
required: true
description: JSON request body.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-removeclientfromclass
path: /class/removeclientfromclass
operations:
- name: removeClientFromClass
method: POST
description: Mindbody Remove a Client from a Class
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: body
in: body
type: object
required: true
description: JSON request body.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-removeclientsfromclasses
path: /class/removeclientsfromclasses
operations:
- name: removeClientsFromClasses
method: POST
description: Mindbody This Endpoint Can Be Utilized for Removing Multiple Clients from
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: body
in: body
type: object
required: true
description: JSON request body.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-removefromwaitlist
path: /class/removefromwaitlist
operations:
- name: removeFromWaitlist
method: POST
description: Mindbody This Endpoint Does Not Return a Response. if a Call to This Endpoint
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: request.waitlistEntryIds
in: query
type: array
required: true
description: A list of `WaitlistEntryIds` to remove from the waiting list.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-substituteclassteacher
path: /class/substituteclassteacher
operations:
- name: substituteClassTeacher
method: POST
description: Mindbody Substitute a Class Teacher
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: body
in: body
type: object
required: true
description: JSON request body.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-updateclassschedule
path: /class/updateclassschedule
operations:
- name: updateClassSchedule
method: POST
description: Mindbody This Endpoint Updates a Class Schedule
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: body
in: body
type: object
required: true
description: JSON request body.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: class-updateclassschedulenotes-class-schedule-id
path: /class/updateclassschedulenotes/{classScheduleId}
operations:
- name: updateClassScheduleNotes
method: PATCH
description: Mindbody This Endpoint Updates the Notes of Class Instances Based on the
inputParameters:
- name: version
in: path
type: string
required: true
description: version of the api.
- name: classScheduleId
in: path
type: integer
required: true
description: The request template parameter.
- name: siteId
in: header
type: string
required: true
description: ID of the site from which to pull data.
- name: authorization
in: header
type: string
required: false
description: A staff user authorization token.
- name: body
in: body
type: object
required: true
description: JSON request body.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
namespace: public-api-v6-class-rest
port: 8080
description: "REST adapter for Mindbody Public API v6 \u2014 Class. One Spectral-compliant resource per consumed operation, prefixed with /v1."
resources:
- path: /v1/class/classdescriptions
name: v1-class-classdescriptions
description: REST surface for /v1/class/classdescriptions.
operations:
- method: GET
name: getClassDescriptions
description: Mindbody To Find Class Descriptions Associated with **scheduled Classes**, Pass
call: public-api-v6-class.getClassDescriptions
with:
version: rest.version
siteId: rest.siteId
authorization: rest.authorization
request.classDescriptionId: rest.request.classDescriptionId
request.endClassDateTime: rest.request.endClassDateTime
request.includeInactive: rest.request.includeInactive
request.limit: rest.request.limit
request.locationId: rest.request.locationId
request.offset: rest.request.offset
request.programIds: rest.request.programIds
request.staffId: rest.request.staffId
request.startClassDateTime: rest.request.startClassDateTime
outputParameters:
- type: object
mapping: $.
- path: /v1/class/classes
name: v1-class-classes
description: REST surface for /v1/class/classes.
operations:
- method: GET
name: getClasses
description: Mindbody Get Scheduled Classes
call: public-api-v6-class.getClasses
with:
version: rest.version
siteId: rest.siteId
authorization: rest.authorization
request.classDescriptionIds: rest.request.classDescriptionIds
request.classIds: rest.request.classIds
request.classScheduleIds: rest.request.classScheduleIds
request.clientId: rest.request.clientId
request.endDateTime: rest.request.endDateTime
request.hideCanceledClasses: rest.request.hideCanceledClasses
request.lastModifiedDate: rest.request.lastModifiedDate
request.limit: rest.request.limit
request.locationIds: rest.request.locationIds
request.offset: rest.request.offset
request.programIds: rest.request.programIds
request.schedulingWindow: rest.request.schedulingWindow
request.semesterIds: rest.request.semesterIds
request.sessionTypeIds: rest.request.sessionTypeIds
request.staffIds: rest.request.staffIds
request.startDateTime: rest.request.startDateTime
request.uniqueClientId: rest.request.uniqueClientId
outputParameters:
- type: object
mapping: $.
- path: /v1/class/classschedules
name: v1-class-classschedules
description: REST surface for /v1/class/classschedules.
operations:
- method: GET
name: getClassSchedules
description: Mindbody Get Class Schedules
call: public-api-v6-class.getClassSchedules
with:
version: rest.version
siteId: rest.siteId
authorization: rest.authorization
request.classScheduleIds: rest.request.classScheduleIds
request.endDate: rest.request.endDate
request.limit: rest.request.limit
request.locationIds: rest.request.locationIds
request.offset: rest.request.offset
request.programIds: rest.request.programIds
request.sessionTypeIds: rest.request.sessionTypeIds
request.staffIds: rest.request.staffIds
request.startDate: rest.request.startDate
outputParameters:
- type: object
mapping: $.
- path: /v1/class/classvisits
name: v1-class-classvisits
description: REST surface for /v1/class/classvisits.
operations:
- metho
# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mindbody/refs/heads/main/capabilities/public-api-v6-class.yaml