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