Mindbody Class API

Class operations.

Documentation

Specifications

Code Examples

Other Resources

OpenAPI Specification

mindbody-class-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Mindbody Public API v6 Appointment Class API
  version: '6.0'
  description: REST API for Mindbody business management data including appointments, classes, clients, enrollments, sales, sites, staff, payroll, and cross-site operations. Authentication combines a Mindbody-issued API-Key header with a SiteId header and optional staff/user OAuth bearer tokens for write operations. Generated from the official Mindbody Public API Python SDK (apimatic v3).
  contact:
    name: Mindbody API Support
    url: https://support.mindbodyonline.com/s/contactapisupport
  license:
    name: Proprietary
  x-generated-from: Mindbody-API-SDKs python SDK
  x-last-validated: '2026-05-28'
servers:
- url: https://api.mindbodyonline.com
  description: Production
security:
- ApiKeyAuth: []
tags:
- name: Class
  description: Class operations.
paths:
  /public/v6/class/classdescriptions:
    get:
      tags:
      - Class
      summary: Mindbody To Find Class Descriptions Associated with **scheduled Classes**, Pass
      description: To find class descriptions associated with **scheduled classes**, pass `StaffId`, `StartClassDateTime`, `EndClassDateTime`, or `LocationId` in the request.
      operationId: getClassDescriptions
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: siteId
        in: header
        required: true
        description: ID of the site from which to pull data.
        schema:
          type: string
        example: example-value
      - name: authorization
        in: header
        required: false
        description: A staff user authorization token.
        schema:
          type: string
        example: example-value
      - name: request.classDescriptionId
        in: query
        required: false
        description: The ID of the requested client.
        schema:
          type: integer
          format: int32
        example: 123456
      - name: request.endClassDateTime
        in: query
        required: false
        description: Filters the results to class descriptions for scheduled classes that happen before the given date and time.
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      - name: request.includeInactive
        in: query
        required: false
        description: Includes inactive class descriptions, defaulting to true. When set to false, it filters out inactive class descriptions.
        schema:
          type: boolean
        example: true
      - name: request.limit
        in: query
        required: false
        description: Number of results to include, defaults to 100
        schema:
          type: integer
          format: int32
        example: 1
      - name: request.locationId
        in: query
        required: false
        description: Filters results to classes descriptions for schedule classes as the given location.
        schema:
          type: integer
          format: int32
        example: 123456
      - name: request.offset
        in: query
        required: false
        description: Page offset, defaults to 0.
        schema:
          type: integer
          format: int32
        example: 1
      - name: request.programIds
        in: query
        required: false
        description: A list of requested program IDs.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.staffId
        in: query
        required: false
        description: Filters results to class descriptions for scheduled classes taught by the given staff member.
        schema:
          type: integer
          format: int32
        example: 123456
      - name: request.startClassDateTime
        in: query
        required: false
        description: Filters the results to class descriptions for scheduled classes that happen on or after the given date and time.
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClassDescriptionsResponse'
              examples:
                Getclassdescriptions200Example:
                  summary: Default getClassDescriptions 200 example
                  x-microcks-default: true
                  value:
                    PaginationResponse: {}
                    ClassDescriptions:
                    - {}
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      security:
      - ApiKeyAuth: []
  /public/v6/class/classes:
    get:
      tags:
      - Class
      summary: Mindbody Get Scheduled Classes
      description: Get scheduled classes.
      operationId: getClasses
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: siteId
        in: header
        required: true
        description: ID of the site from which to pull data.
        schema:
          type: string
        example: example-value
      - name: authorization
        in: header
        required: false
        description: A staff user authorization token.
        schema:
          type: string
        example: example-value
      - name: request.classDescriptionIds
        in: query
        required: false
        description: The requested class description IDs.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.classIds
        in: query
        required: false
        description: The requested class IDs.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.classScheduleIds
        in: query
        required: false
        description: The requested classSchedule Ids.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.clientId
        in: query
        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.
        schema:
          type: string
        example: example-value
      - name: request.endDateTime
        in: query
        required: false
        description: 'The requested end date for filtering. NOTE: ClassDate does not take Class Time into consideration. <br />Default: **today’s date**'
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      - name: request.hideCanceledClasses
        in: query
        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**'
        schema:
          type: boolean
        example: true
      - name: request.lastModifiedDate
        in: query
        required: false
        description: When included in the request, only records modified on or after the `LastModifiedDate` specified are included in the response.
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      - name: request.limit
        in: query
        required: false
        description: Number of results to include, defaults to 100
        schema:
          type: integer
          format: int32
        example: 1
      - name: request.locationIds
        in: query
        required: false
        description: A list of location IDs on which to base the search.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.offset
        in: query
        required: false
        description: Page offset, defaults to 0.
        schema:
          type: integer
          format: int32
        example: 1
      - name: request.programIds
        in: query
        required: false
        description: A list of program IDs on which to base the search.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.schedulingWindow
        in: query
        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**'
        schema:
          type: boolean
        example: true
      - name: request.semesterIds
        in: query
        required: false
        description: A list of semester IDs on which to base the search.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.sessionTypeIds
        in: query
        required: false
        description: A list of session type IDs on which to base the search.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.staffIds
        in: query
        required: false
        description: The requested IDs of the teaching staff members.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.startDateTime
        in: query
        required: false
        description: 'The requested start date for filtering. This also determines what you will see for the ‘BookingWindow’ StartDateTime in the response. For example, if you pass a StartDateTime that is on OR before the BookingWindow ‘Open’ days of the class, you will retrieve the actual ‘StartDateTime’ for the Booking Window. If you pass a StartDateTime that is after the BookingWindow ‘date’, then you will receive results based on that start date. NOTE: ClassDate does not take Class Time into consideration.'
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      - name: request.uniqueClientId
        in: query
        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.'
        schema:
          type: integer
          format: int32
        example: 123456
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClassesResponse'
              examples:
                Getclasses200Example:
                  summary: Default getClasses 200 example
                  x-microcks-default: true
                  value:
                    PaginationResponse: {}
                    Classes:
                    - {}
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      security:
      - ApiKeyAuth: []
  /public/v6/class/classschedules:
    get:
      tags:
      - Class
      summary: Mindbody Get Class Schedules
      description: Get class schedules.
      operationId: getClassSchedules
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: siteId
        in: header
        required: true
        description: ID of the site from which to pull data.
        schema:
          type: string
        example: example-value
      - name: authorization
        in: header
        required: false
        description: A staff user authorization token.
        schema:
          type: string
        example: example-value
      - name: request.classScheduleIds
        in: query
        required: false
        description: 'The class schedule IDs. <br />Default: **all**'
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.endDate
        in: query
        required: false
        description: 'The end date of the range. Return any active enrollments that occur on or before this day. <br />Default: **StartDate**'
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      - name: request.limit
        in: query
        required: false
        description: Number of results to include, defaults to 100
        schema:
          type: integer
          format: int32
        example: 1
      - name: request.locationIds
        in: query
        required: false
        description: 'The location IDs. <br />Default: **all**'
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.offset
        in: query
        required: false
        description: Page offset, defaults to 0.
        schema:
          type: integer
          format: int32
        example: 1
      - name: request.programIds
        in: query
        required: false
        description: 'The program IDs. <br />Default: **all**'
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.sessionTypeIds
        in: query
        required: false
        description: 'The session type IDs. <br />Default: **all**'
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.staffIds
        in: query
        required: false
        description: 'The staff IDs. <br />Default: **all**'
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.startDate
        in: query
        required: false
        description: 'The start date of the range. Return any active enrollments that occur on or after this day. <br />Default: **today’s date**'
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClassSchedulesResponse'
              examples:
                Getclassschedules200Example:
                  summary: Default getClassSchedules 200 example
                  x-microcks-default: true
                  value:
                    PaginationResponse: {}
                    ClassSchedules:
                    - {}
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      security:
      - ApiKeyAuth: []
  /public/v6/class/classvisits:
    get:
      tags:
      - Class
      summary: Mindbody Returns a List of Visits That Contain Information for a Specified
      description: Returns a list of visits that contain information for a specified class. On success, this request returns the class object in the response with a list of visits.
      operationId: getClassVisits
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: request.classID
        in: query
        required: true
        description: The class ID.
        schema:
          type: integer
          format: int32
        example: 1
      - name: siteId
        in: header
        required: true
        description: ID of the site from which to pull data.
        schema:
          type: string
        example: example-value
      - name: authorization
        in: header
        required: false
        description: A staff user authorization token.
        schema:
          type: string
        example: example-value
      - name: request.lastModifiedDate
        in: query
        required: false
        description: When included in the request, only records modified on or after the `LastModifiedDate` specified are included in the response.
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      - name: request.useSiteSettingsStaffName
        in: query
        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.
        schema:
          type: boolean
        example: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClassVisitsResponse'
              examples:
                Getclassvisits200Example:
                  summary: Default getClassVisits 200 example
                  x-microcks-default: true
                  value:
                    Class: {}
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      security:
      - ApiKeyAuth: []
  /public/v6/class/courses:
    get:
      tags:
      - Class
      summary: Mindbody This Endpoint Will Provide All the Data Related to Courses Depending
      description: 'This endpoint will provide all the data related to courses depending on the access level.<br /> Note: The Authorization is an optional header.If Authorization header is not passed, the response will be masked else full response will be provided.'
      operationId: getCourses
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: siteId
        in: header
        required: true
        description: ID of the site from which to pull data.
        schema:
          type: string
        example: example-value
      - name: authorization
        in: header
        required: false
        description: A staff user authorization token.
        schema:
          type: string
        example: example-value
      - name: getCoursesRequest.courseIDs
        in: query
        required: false
        description: Return only courses that are available for the specified CourseIds.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: getCoursesRequest.endDate
        in: query
        required: false
        description: The end date range. Any active courses that are on or before this day. <br />(optional) Defaults to StartDate.
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      - name: getCoursesRequest.limit
        in: query
        required: false
        description: Number of results to include, defaults to 100
        schema:
          type: integer
          format: int32
        example: 1
      - name: getCoursesRequest.locationIDs
        in: query
        required: false
        description: Return only courses that are available for the specified LocationIds.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: getCoursesRequest.offset
        in: query
        required: false
        description: Page offset, defaults to 0.
        schema:
          type: integer
          format: int32
        example: 1
      - name: getCoursesRequest.programIDs
        in: query
        required: false
        description: Return only courses that are available for the specified ProgramIds.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: getCoursesRequest.semesterIDs
        in: query
        required: false
        description: Return only courses that are available for the specified SemesterIds.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: getCoursesRequest.staffIDs
        in: query
        required: false
        description: Return only courses that are available for the specified StaffIds.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: getCoursesRequest.startDate
        in: query
        required: false
        description: The start date range. Any active courses that are on or after this day. <br />(optional) Defaults to today.
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCoursesReponse'
              examples:
                Getcourses200Example:
                  summary: Default getCourses 200 example
                  x-microcks-default: true
                  value:
                    PaginationResponse: {}
                    Courses:
                    - {}
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      security:
      - ApiKeyAuth: []
  /public/v6/class/semesters:
    get:
      tags:
      - Class
      summary: Mindbody This Endpoint Retrieves the Business Class Semesters
      description: This endpoint retrieves the business class semesters.
      operationId: getSemesters
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: siteId
        in: header
        required: true
        description: ID of the site from which to pull data.
        schema:
          type: string
        example: example-value
      - name: authorization
        in: header
        required: false
        description: A staff user authorization token.
        schema:
          type: string
        example: example-value
      - name: request.active
        in: query
        required: false
        description: 'When true, the response only contains semesters which are activated. When false, only deactivated semesters are returned. Default: **All semesters**'
        schema:
          type: boolean
        example: true
      - name: request.endDate
        in: query
        required: false
        description: 'The end date for the range. All semesters that are on or before this day. Default: **StartDate**'
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      - name: request.limit
        in: query
        required: false
        description: Number of results to include, defaults to 100
        schema:
          type: integer
          format: int32
        example: 1
      - name: request.offset
        in: query
        required: false
        description: Page offset, defaults to 0.
        schema:
          type: integer
          format: int32
        example: 1
      - name: request.semesterIDs
        in: query
        required: false
        description: The requested semester IDs.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.startDate
        in: query
        required: false
        description: 'The start date for the range. All semesters that are on or after this day. Default: **today’s date**'
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSemestersResponse'
              examples:
                Getsemesters200Example:
                  summary: Default getSemesters 200 example
                  x-microcks-default: true
                  value:
                    PaginationResponse: {}
                    Semesters:
                    - {}
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      security:
      - ApiKeyAuth: []
  /public/v6/class/waitlistentries:
    get:
      tags:
      - Class
      summary: Mindbody Returns a List of Waiting List Entries for a Specified Class Schedule
      description: Returns a list of waiting list entries for a specified class schedule or class. The request requires staff credentials and either a class schedule ID or class ID.
      operationId: getWaitlistEntries
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: siteId
        in: header
        required: true
        description: ID of the site from which to pull data.
        schema:
          type: string
        example: example-value
      - name: authorization
        in: header
        required: false
        description: A staff user authorization token.
        schema:
          type: string
        example: example-value
      - name: request.classIds
        in: query
        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**'
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.classScheduleIds
        in: query
        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**'
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.clientIds
        in: query
        required: false
        description: 'The requested client IDs.<br /> Either `ClassScheduleIds`, `ClientIds`, `WaitlistEntryIds`, or `ClassIds` is required; the others become optional.<br /> Default: **all ClientIds**'
        schema:
          type: array
          items:
            type: string
        example:
        - example-value
      - name: request.hidePastEntries
        in: query
        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**'
        schema:
          type: boolean
        example: true
      - name: request.limit
        in: query
        required: false
        description: Number of results to include, defaults to 100
        schema:
          type: integer
          format: int32
        example: 1
      - name: request.offset
        in: query
        required: false
        description: Page offset, defaults to 0.
        schema:
          type: integer
          format: int32
        example: 1
      - name: request.waitlistEntryIds
        in: query
        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**'
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWaitlistEntriesResponse'
              examples:
                Getwaitlistentries200Example:
                  summary: Default getWaitlistEntries 200 example
                  x-microcks-default: true
                  value:
                    PaginationResponse: {}
                    WaitlistEntries:
                    - {}
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      security:
      - ApiKeyAuth: []
  /public/v6/class/addclassschedule:
    post:
      tags:
      - Class
      summary: Mindbody This Endpoint Adds a Class Schedule. for a Single Day Schedule, the
      description: This endpoint adds a class schedule. For a single day schedule, the EndDate parameter can be omitted.
      operationId: addClassSchedule
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: siteId
        in: header
        required: true
        description: ID of the site from which to pull data.
        schema:
          type: string
        example: example-value
      - name: authorization
        in: header
        required: false
        description: A staff user authorization token.
        schema:
          type: string
        example: example-value
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddClassEnrollmentScheduleRequest'
            examples:
              AddclassscheduleRequestExample:
                summary: Default addClassSchedule request example
                x-microcks-default: true
                value:
                  ClassDescriptionId: 123456
                  LocationId: 123456
                  StartDate: '2026-05-28T14:30:00Z'
                  EndDate: '2026-05-28T14:30:00Z'
                  StartTime: '202

# --- truncated at 32 KB (164 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mindbody/refs/heads/main/openapi/mindbody-class-api-openapi.yml