Mindbody Enrollment API

Enrollment operations.

Documentation

Specifications

Code Examples

Other Resources

OpenAPI Specification

mindbody-enrollment-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Mindbody Public API v6 Appointment Enrollment 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: Enrollment
  description: Enrollment operations.
paths:
  /public/v6/enrollment/enrollments:
    get:
      tags:
      - Enrollment
      summary: Mindbody Returns a List of Enrollments. an Enrollment is a Service, Such as a
      description: 'Returns a list of enrollments. An enrollment is a service, such as a workshop or an event, that a staff member offers to multiple students, who commit to coming to all or most of the scheduled sessions. Enrollments typically run for a limited time only. When a user token is not passed with the request or the passed user token has insufficient viewing permissions, only the following staff data is returned in the response: * FirstName * LastName * Id * Bio * DisplayName * ImageUrl'
      operationId: getEnrollments
      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: A list of the requested class schedule IDs. If omitted, all class schedule IDs return.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.endDate
        in: query
        required: false
        description: 'The end of the date range. The response returns 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: List of the IDs for the requested locations. If omitted, all location IDs return.
        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: List of the IDs for the requested programs. If omitted, all program IDs return.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.sessionTypeIds
        in: query
        required: false
        description: List of the IDs for the requested session types. If omitted, all session types IDs return.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.staffIds
        in: query
        required: false
        description: List of the IDs for the requested staff IDs. If omitted, all staff IDs return.
        schema:
          type: array
          items:
            type: integer
            format: int32
        example:
        - 1
      - name: request.startDate
        in: query
        required: false
        description: 'The start of the date range. The response returns 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/GetEnrollmentsResponse'
              examples:
                Getenrollments200Example:
                  summary: Default getEnrollments 200 example
                  x-microcks-default: true
                  value:
                    PaginationResponse: {}
                    Enrollments:
                    - {}
        '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/enrollment/addclienttoenrollment:
    post:
      tags:
      - Enrollment
      summary: Mindbody Book a Client Into an Enrollment
      description: Book a client into an enrollment.
      operationId: addClientToEnrollment
      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/AddClientToEnrollmentRequest'
            examples:
              AddclienttoenrollmentRequestExample:
                summary: Default addClientToEnrollment request example
                x-microcks-default: true
                value:
                  ClientId: example-value
                  ClassScheduleId: 123456
                  EnrollDateForward: '2026-05-28T14:30:00Z'
                  EnrollOpen:
                  - '2026-05-28T14:30:00Z'
                  Test: true
                  SendEmail: true
                  Waitlist: true
                  WaitlistEntryId: 123456
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassSchedule'
              examples:
                Addclienttoenrollment200Example:
                  summary: Default addClientToEnrollment 200 example
                  x-microcks-default: true
                  value:
                    Classes:
                    - {}
                    Clients:
                    - {}
                    Course: {}
                    SemesterId: 123456
                    IsAvailable: true
                    Id: 123456
                    ClassDescription: {}
                    DaySunday: true
                    DayMonday: true
                    DayTuesday: true
                    DayWednesday: true
                    DayThursday: true
                    DayFriday: true
                    DaySaturday: true
                    AllowOpenEnrollment: true
                    AllowDateForwardEnrollment: true
                    StartTime: '2026-05-28T14:30:00Z'
                    EndTime: '2026-05-28T14:30:00Z'
                    StartDate: '2026-05-28T14:30:00Z'
                    EndDate: '2026-05-28T14:30:00Z'
                    Staff: {}
                    Location: {}
                    FrequencyType: {}
                    FrequencyInterval: 1
        '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/enrollment/addenrollmentschedule:
    post:
      tags:
      - Enrollment
      summary: Mindbody This Endpoint Adds a Enrollment Schedule. You Can Require Clients to
      description: This endpoint adds a enrollment schedule. You can require clients to sign up for the entire enrollment schedule or allow them to pick specific sessions using the AllowOpenEnrollment parameter.
      operationId: addEnrollmentSchedule
      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:
              AddenrollmentscheduleRequestExample:
                summary: Default addEnrollmentSchedule request example
                x-microcks-default: true
                value:
                  ClassDescriptionId: 123456
                  LocationId: 123456
                  StartDate: '2026-05-28T14:30:00Z'
                  EndDate: '2026-05-28T14:30:00Z'
                  StartTime: '2026-05-28T14:30:00Z'
                  EndTime: '2026-05-28T14:30:00Z'
                  DaySunday: true
                  DayMonday: true
                  DayTuesday: true
                  DayWednesday: true
                  DayThursday: true
                  DayFriday: true
                  DaySaturday: true
                  StaffId: 123456
                  StaffPayRate: 1
                  ResourceId: 123456
                  MaxCapacity: 1
                  WebCapacity: 1
                  WaitlistCapacity: 1
                  BookingStatus: Active
                  AllowOpenEnrollment: true
                  AllowDateForwardEnrollment: true
                  PricingOptionsProductIds:
                  - 1
                  ShowToPublic: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrittenClassSchedulesInfo'
              examples:
                Addenrollmentschedule200Example:
                  summary: Default addEnrollmentSchedule 200 example
                  x-microcks-default: true
                  value:
                    ClassId: 123456
                    ClassInstanceIds:
                    - 1
        '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/enrollment/updateenrollmentschedule:
    post:
      tags:
      - Enrollment
      summary: Mindbody This Endpoint Update a Enrollment Schedule
      description: This endpoint update a enrollment schedule.
      operationId: updateEnrollmentSchedule
      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/UpdateClassEnrollmentScheduleRequest'
            examples:
              UpdateenrollmentscheduleRequestExample:
                summary: Default updateEnrollmentSchedule request example
                x-microcks-default: true
                value:
                  ClassId: 123456
                  ClassDescriptionId: 123456
                  LocationId: 123456
                  StartDate: '2026-05-28T14:30:00Z'
                  EndDate: '2026-05-28T14:30:00Z'
                  StartTime: '2026-05-28T14:30:00Z'
                  EndTime: '2026-05-28T14:30:00Z'
                  DaySunday: true
                  DayMonday: true
                  DayTuesday: true
                  DayWednesday: true
                  DayThursday: true
                  DayFriday: true
                  DaySaturday: true
                  StaffId: 123456
                  StaffPayRate: 1
                  ResourceId: 123456
                  MaxCapacity: 1
                  WebCapacity: 1
                  WaitlistCapacity: 1
                  BookingStatus: Active
                  AllowOpenEnrollment: true
                  AllowDateForwardEnrollment: true
                  RetainScheduleChanges: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrittenClassSchedulesInfo'
              examples:
                Updateenrollmentschedule200Example:
                  summary: Default updateEnrollmentSchedule 200 example
                  x-microcks-default: true
                  value:
                    ClassId: 123456
                    ClassInstanceIds:
                    - 1
        '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: []
components:
  schemas:
    StatusEnum:
      type: string
      description: StatusEnum enumeration.
      enum:
      - None
      - Requested
      - Booked
      - Completed
      - Confirmed
      - Arrived
      - NoShow
      - Cancelled
      - LateCancelled
    BookingWindow:
      type: object
      description: Implementation of the 'BookingWindow' model. The booking window for registration
      properties:
        StartDateTime:
          type: string
          format: date-time
          description: Date and time that the booking window opens; that is, the first day of sales.
          example: '2026-05-28T14:30:00Z'
        EndDateTime:
          type: string
          format: date-time
          description: Date and time that the booking window closes; that is, the last day of sales.
          example: '2026-05-28T14:30:00Z'
        DailyStartTime:
          type: string
          format: date-time
          description: The time that the booking window opens; that is, the time that the store opens.
          example: '2026-05-28T14:30:00Z'
        DailyEndTime:
          type: string
          format: date-time
          description: The time that the booking window closes; that is, the time that the store closes.
          example: '2026-05-28T14:30:00Z'
    Availability:
      type: object
      description: Implementation of the 'Availability' model. A staff availability entry
      properties:
        Id:
          type: integer
          format: int32
          description: The ID of the availability.
          example: 123456
        Staff:
          $ref: '#/components/schemas/Staff'
          description: Contains information about staff members.
        SessionType:
          $ref: '#/components/schemas/SessionType'
          description: Contains information about the types of sessions.
        Programs:
          type: array
          items:
            $ref: '#/components/schemas/Program'
          description: Contains information about the programs.
          example:
          - {}
        StartDateTime:
          type: string
          format: date-time
          description: The date and time the availability starts in the site local time zone.
          example: '2026-05-28T14:30:00Z'
        EndDateTime:
          type: string
          format: date-time
          description: The date and time the availability ends in the site local time zone.
          example: '2026-05-28T14:30:00Z'
        BookableEndDateTime:
          type: string
          format: date-time
          description: The time of day that the last appointment can start in the site local time zone.
          example: '2026-05-28T14:30:00Z'
        Location:
          $ref: '#/components/schemas/Location'
          description: Contains information about the location.
        PrepTime:
          type: integer
          format: int32
          description: Prep time in minutes
          example: 1
        FinishTime:
          type: integer
          format: int32
          description: Finish time in minutes
          example: 1
        IsMasked:
          type: boolean
          description: When `true`, indicates that the staff member's name for availabilty is masked. When `false`, indicates that the staff member's name for availabilty is not masked.
          example: true
        ShowPublic:
          type: boolean
          description: When `true`, indicates that the schedule is shown to the clients. When `false`, indicates that the schedule is hidden from the clients.
          example: true
        ResourceAvailabilities:
          type: array
          items:
            $ref: '#/components/schemas/ResourceAvailability'
          description: Contains information about resources availability for the specified session type.
          example:
          - {}
    ScheduleTypeEnum:
      type: string
      description: ScheduleTypeEnum enumeration.
      enum:
      - All
      - Class
      - Enrollment
      - Appointment
      - Resource
      - Media
      - Arrival
    Client:
      type: object
      description: Implementation of the 'Client' model. The Client.
      properties:
        AppointmentGenderPreference:
          $ref: '#/components/schemas/AppointmentGenderPreference1Enum'
          description: The gender of staff member with whom the client prefers to book appointments.
        BirthDate:
          type: string
          format: date-time
          description: The client’s date of birth.
          example: '2026-05-28T14:30:00Z'
        Country:
          type: string
          description: The client’s country.
          example: US
        CreationDate:
          type: string
          format: date-time
          description: The date the client’s profile was created and added to the business, either by the client from the online store, or by a staff member. This value always returns in the format `yyyy-mm-ddThh:mm:ss:ms`.
          example: '2026-05-28T14:30:00Z'
        CustomClientFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomClientFieldValue'
          description: Contains information about the custom fields used for clients in the business.
          example:
          - {}
        ClientCreditCard:
          $ref: '#/components/schemas/ClientCreditCard'
          description: Contains information about the client’s credit card.
        ClientIndexes:
          type: array
          items:
            $ref: '#/components/schemas/AssignedClientIndex'
          description: Contains the IDs of the client’s assigned ClientIndexes and ClientIndexValues. If an index is already assigned to the client, it is overwritten with the passed index value. You cannot currently remove client indexes using the Public API. Only the indexes passed in the request are returned in the response.
          example:
          - {}
        ClientRelationships:
          type: array
          items:
            $ref: '#/components/schemas/ClientRelationship'
          description: Contains information about the relationship between two clients. This parameter does not include all of the relationships assigned to the client, only the ones passed in the request.
          example:
          - {}
        FirstAppointmentDate:
          type: string
          format: date-time
          description: The date of the client’s first booked appointment at the business.
          example: '2026-05-28T14:30:00Z'
        FirstClassDate:
          type: string
          format: date-time
          description: The date of the clients first booked class at the business.
          example: '2026-05-28T14:30:00Z'
        FirstName:
          type: string
          description: The client’s first name.
          example: Alex
        Id:
          type: string
          description: The client’s ID, as configured by the business owner. This is the client’s barcode ID if the business owner assigns barcodes to clients. This ID is used throughout the Public API for client-related Public API calls. When used in a POST `UpdateClient` request, the `Id` is used to identify the client for the update.
          example: example-value
        IsCompany:
          type: boolean
          description: When `true`, indicates that the client should be marked as a company at the business.<br /> When `false`, indicates the client is an individual and does not represent a company.
          example: true
        IsProspect:
          type: boolean
          description: This value is set only if the business owner allows individuals to be prospects.<br /> When `true`, indicates that the client should be marked as a prospect for the business.<br /> When `false`, indicates that the client should not be marked as a prospect for the business.
          example: true
        LastName:
          type: string
          description: The client’s last name.
          example: Lane
        Liability:
          $ref: '#/components/schemas/Liability'
          description: Contains the client’s liability agreement information for the business.
        LiabilityRelease:
          type: boolean
          description: 'Passing `true` sets the client’s liability information as follows: * `IsReleased` is set to `true`. * `AgreementDate` is set to the time zone of the business when the call was processed. * `ReleasedBy` is set to `null` if the call is made by the client, `0` if the call was made by the business owner, or to a specific staff member’s ID if a staff member made the call. Passing `false` sets the client’s liability information as follows: * `IsReleased` is set to `false`. * `AgreementDate` is set to '
          example: true
        MembershipIcon:
          type: integer
          format: int32
          description: The ID of the [membership icon](https://support.mindbodyonline.com/s/article/203259703-Member ship-Setup-screen?language=en_US) displayed next to the client’s name, if the client has a membership on their account.
          example: 1
        MobileProvider:
          type: integer
          format: int32
          description: The client’s mobile provider.
          example: 1
        Notes:
          type: string
          description: Any notes entered on the client’s account by staff members. This value should never be shown to clients unless the business owner has a specific reason for showing them.
          example: Example note for Mindbody Public API.
        State:
          type: string
          description: The client’s state.
          example: CA
        UniqueId:
          type: integer
          format: int32
          description: The client’s system-generated ID at the business. This value cannot be changed by business owners and is always unique across all clients at the business. This ID is not widely used in the Public API, but can be used by your application to uniquely identify clients.
          example: 123456
        LastModifiedDateTime:
          type: string
          format: date-time
          description: The UTC date and time when the client’s information was last modified.
          example: '2026-05-28T14:30:00Z'
        RedAlert:
          type: string
          description: Contains any red alert information entered by the business owner for the client.
          example: example-value
        YellowAlert:
          type: string
          description: Contains any yellow alert information entered by the business owner for the client.
          example: example-value
        MiddleName:
          type: string
          description: The client’s middle name.
          example: example-value
        ProspectStage:
          $ref: '#/components/schemas/ProspectStage'
          description: Contains information about the client [prospect stage](https://support.mindbodyonline.com/s/article/206176457-Prosp ect-Stages?language=en_US).
        Email:
          type: string
          description: The client’s email address.
          example: kinlane@example.com
        MobilePhone:
          type: string
          description: The client’s mobile phone number.
          example: '+15551234567'
        HomePhone:
          type: string
          description: The client’s home phone number.
          example: '+15551234567'
        WorkPhone:
          type: string
          description: The client’s work phone number.
          example: '+15551234567'
        AccountBalance:
          type: number
          format: double
          description: The client’s current [account balance](https://mindbody-online-support.force.com/support/s/articl e/203262013-Adding-account-payments-video-tutorial?language=en_US).
          example: 49.99
        AddressLine1:
          type: string
          description: The first line of the client’s street address.
          example: 123 Market St
        AddressLine2:
          type: string
          description: The second line of the client’s street address, if needed.
          example: 123 Market St
        City:
          type: string
          description: The client’s city.
          example: San Francisco
        PostalCode:
          type: string
          description: The client’s postal code.
          example: '94110'
        WorkExtension:
          type: string
          description: The client’s work phone extension number.
          example: example-value
        ReferredBy:
          type: string
          description: Specifies how the client was referred to the business. You can get a list of possible strings using the `GetClientReferralTypes` endpoint.
          example: example-value
        PhotoUrl:
          type: string
          description: The URL of the client’s photo for the client profile.
          example: https://example.mindbodyonline.com/resource/abc123
        EmergencyContactInfoName:
          type: string
          description: The name of the client’s emergency contact.
          example: example-value
        EmergencyContactInfoEmail:
          type: string
          description: The email address of the client’s emergency contact.
          example: kinlane@example.com
        EmergencyContactInfoPhone:
          type: string
          description: The phone number of the client’s emergency contact.
          example: '+15551234567'
        EmergencyContactInfoRelationship:
          type: string
          description: The client’s relationship with the emergency contact.
          example: example-value
        Gender:
          type: string
          description: The gender of the client.
          example: example-value
        LastFormulaNotes:
          type: string
          description: The last [formula note](https://support.mindbodyonline.com/s/article/203259903-Appoin tments-Formula-notes?language=en_US) entered for the client.
          example: Example note for Mindbody Public API.
        Active:
          type: boolean
          description: When `true`, indicates that the client’s profile is marked as active on the site.<br /> When `false`, the client’s profile is inactive. Defaults to `true` based on the assumption that if a client is currently inactive OR is to be marked inactive, this property will explicitly be mapped/set to `false`.
          example: true
        SalesReps:
          type: array
          items:
            $ref: '#/components/schemas/SalesRep'
          description: A list of sales representatives.
          example:
          - {}
        Status:
          type: string
          description: 'The status of the client in the business. Possible values are: * Declined * Non-Member * Active * Expired * Suspended * Terminated'
          example: Active
        Action:
          $ref: '#/components/schemas/Action1Enum'
          description: The action taken.
        SendAccountEmails:
          type: boolean
          description: 'When `true`, indicates that the client has opted to receive general account notifications by email. This property is editable. <br />Default: **false**'
          example: true
        SendAccountTexts:
          type: boolean
          description: When `true`, indicates that the client has opted to receive general account notifications by text message. This parameter cannot be updated by developers. If included in a request, it is ignored.
          example: true
        SendPromotionalEmails:
          type: boolean
          description: 'When `true`, indicates that the client has opted to receive promotional notifications by email. This property is editable. <br />Default: **false**'
          example: true
        SendPromotionalTexts:
          type: boolean
          description: When `true`, indicates that the client has opted to receive promotional notifications by text message. This parameter cannot be updated by developers. If included in a request, it is ignored.
          example: true
        SendScheduleEmails:
          type: boolean
          description: 'When `true`, indicates that the client has opted to receive schedule notifications by email. This property is editable. <br />Default: **false**'
          example: true
        SendScheduleTexts:
          type: boolean
          description: When `true`, indicates that the client has opted to receive schedule notifications by text message. This parameter cannot be updated by developers. If included in a request, it is ignored.
          example: true
        HomeLocation:
          $ref: '#/components/schemas/Location'
          description: Information about the Home Location for this client
        LockerNumber:
          type: string
          description: The clients locker number.
          example: example-value
        ClientType:
          $ref: '#/components/schemas/ClientType'
          description: The client's assigned client type. Returns null if the client has no client type assigned. For more information, see [Client Types](https://support.mindbodyonline.com/s/article/203259193-Clien t-Types).
    SalesRep:
      type: object
      description: Implementation of the 'SalesRep' model.
      properties:
        FirstName:
          type: string
          description: The first name of the sales representative.
          example: Alex
        Id:
          type: integer


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