openapi: 3.0.3
info:
title: Mindbody Public API v6
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
tags:
- name: Appointment
description: Appointment operations.
- name: Class
description: Class operations.
- name: Client
description: Client operations.
- name: Cross Site
description: Cross Site operations.
- name: Enrollment
description: Enrollment operations.
- name: Payroll
description: Payroll operations.
- name: Pick A Spot
description: Pick A Spot operations.
- name: Sale
description: Sale operations.
- name: Site
description: Site operations.
- name: Staff
description: Staff operations.
- name: User Token
description: User Token operations.
paths:
/public/v6/appointment/activesessiontimes:
get:
tags:
- Appointment
summary: Mindbody This is Not Appointment Availability but Rather the Active Business
description: This is not appointment availability but rather the active business hours for studios and which increments services can be booked at. See BookableItems for appointment availability.
operationId: getActiveSessionTimes
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.endTime
in: query
required: false
description: 'Filters results to times that end on or before this time on the current date. Any date provided is ignored.. <br />Default: **23:59:59**'
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.scheduleType
in: query
required: false
description: Filters on the provided the schedule type. Either `SessionTypeIds` or `ScheduleType` must be provided.
schema:
$ref: '#/components/schemas/RequestScheduleTypeEnum'
example: {}
- name: request.sessionTypeIds
in: query
required: false
description: Filters on the provided session type IDs. Either `SessionTypeIds` or `ScheduleType` must be provided.
schema:
type: array
items:
type: integer
format: int32
example:
- 1
- name: request.startTime
in: query
required: false
description: 'Filters results to times that start on or after this time on the current date. Any date provided is ignored. <br />Default: **00:00:00**'
schema:
type: string
format: date-time
example: '2026-05-28T14:30:00Z'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetActiveSessionTimesResponse'
examples:
Getactivesessiontimes200Example:
summary: Default getActiveSessionTimes 200 example
x-microcks-default: true
value:
PaginationResponse: {}
ActiveSessionTimes: &id043
- example-value
'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/appointment/addons:
get:
tags:
- Appointment
summary: Mindbody Get Active Appointment Add-ons
description: Get active appointment add-ons.
operationId: getAddOns
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.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.staffId
in: query
required: false
description: Filter to add-ons only performed by this staff member.
schema:
type: integer
format: int32
example: 123456
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetAddOnsResponse'
examples:
Getaddons200Example:
summary: Default getAddOns 200 example
x-microcks-default: true
value:
PaginationResponse: {}
AddOns: &id044
- {}
'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/appointment/appointmentoptions:
get:
tags:
- Appointment
summary: Mindbody This Endpoint Has No Query Parameters
description: This endpoint has no query parameters.
operationId: getAppointmentOptions
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
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetAppointmentOptionsResponse'
examples:
Getappointmentoptions200Example:
summary: Default getAppointmentOptions 200 example
x-microcks-default: true
value:
Options: &id046
- {}
'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/appointment/availabledates:
get:
tags:
- Appointment
summary: Mindbody Returns a List of Dates to Narrow Down Staff Availability When
description: Returns a list of dates to narrow down staff availability when booking. Dates are those which staff are scheduled to work and do not guarantee booking availabilities. After this
call is made, use GET BookableItems to retrieve availabilities for specific dates before booking.
operationId: getAvailableDates
parameters:
- name: version
in: path
required: true
description: version of the api.
schema:
type: string
example: example-value
- name: request.sessionTypeId
in: query
required: true
description: required requested session type ID.
schema:
type: integer
format: int32
example: 123456
- 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.endDate
in: query
required: false
description: 'The end date of the requested date range. <br />Default: **StartDate**'
schema:
type: string
format: date-time
example: '2026-05-28T14:30:00Z'
- name: request.locationId
in: query
required: false
description: optional requested location ID.
schema:
type: integer
format: int32
example: 123456
- name: request.staffId
in: query
required: false
description: optional requested staff ID.
schema:
type: integer
format: int32
example: 123456
- name: request.startDate
in: query
required: false
description: "The start date of the requested date range. If omitted, the default is used. <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/GetAvailableDatesResponse'
examples:
Getavailabledates200Example:
summary: Default getAvailableDates 200 example
x-microcks-default: true
value:
AvailableDates: &id047
- '2026-05-28T14:30:00Z'
'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/appointment/bookableitems:
get:
tags:
- Appointment
summary: Mindbody Returns a List of Availabilities with the Information Needed to Book
description: 'Returns a list of availabilities with the information needed to book appointments. Availabilities include information such as the location and its amenities, staff members, programs,
and session types. Recommended to use with GET AvailableDates to see what dates the staff is scheduled to work and narrow down the dates searched. Recommended to use with GET ActiveSessionTimes
to see which increments each business allows for booking appointments. Notes: - With a wider range of dates, this call may take longer to return results. - With a higher number of request.sessionTypeIds,
this call may take longer to return results.'
operationId: getBookableItems
parameters:
- name: version
in: path
required: true
description: version of the api.
schema:
type: string
example: example-value
- name: request.sessionTypeIds
in: query
required: true
description: A list of the requested session type IDs.
schema:
type: array
items:
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.appointmentId
in: query
required: false
description: If provided, filters out the appointment with this ID.
schema:
type: integer
format: int32
example: 123456
- name: request.endDate
in: query
required: false
description: 'The end date of the requested date range. <br />Default: **StartDate**'
schema:
type: string
format: date-time
example: '2026-05-28T14:30:00Z'
- name: request.ignoreDefaultSessionLength
in: query
required: false
description: When `true`, availabilities that are non-default return, for example, a 30-minute availability with a 60-minute default session length.<br /> When `false`, only availabilities
that have the default session length return.
schema:
type: boolean
example: true
- name: request.includeResourceAvailability
in: query
required: false
description: When `true`, resource availabilities for the session type are returned.<br /> When `false`, resource availabilities are not returned default.
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.locationIds
in: query
required: false
description: A list of the requested location IDs.
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.staffIds
in: query
required: false
description: A list of the requested staff IDs. Omit parameter to return all staff availabilities.
schema:
type: array
items:
type: integer
format: int32
example:
- 1
- name: request.startDate
in: query
required: false
description: "The start date of the requested date range. <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/GetBookableItemsResponse'
examples:
Getbookableitems200Example:
summary: Default getBookableItems 200 example
x-microcks-default: true
value:
PaginationResponse: {}
Availabilities: &id048
- {}
'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/appointment/scheduleitems:
get:
tags:
- Appointment
summary: Mindbody Returns a List of Schedule Items, Including Appointments,
description: Returns a list of schedule items, including appointments, availabilities, and unavailabilities. Unavailabilities are the times at which appointments cannot be booked, for example,
on holidays or after hours when the business is closed.
operationId: getScheduleItems
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.endDate
in: query
required: false
description: "The end date of the requested date range. <br />Default: **today’s date**"
schema:
type: string
format: date-time
example: '2026-05-28T14:30:00Z'
- name: request.ignorePrepFinishTimes
in: query
required: false
description: 'When `true`, appointment preparation and finish unavailabilities are not returned. <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.locationIds
in: query
required: false
description: A list of requested location IDs.
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.staffIds
in: query
required: false
description: A list of requested staff IDs.
schema:
type: array
items:
type: integer
format: int32
example:
- 1
- name: request.startDate
in: query
required: false
description: "The start date of the requested date range. <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/GetScheduleItemsResponse'
examples:
Getscheduleitems200Example:
summary: Default getScheduleItems 200 example
x-microcks-default: true
value:
PaginationResponse: {}
StaffMembers: &id094
- {}
'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/appointment/staffappointments:
get:
tags:
- Appointment
summary: Mindbody Returns a List of Appointments by Staff Member
description: Returns a list of appointments by staff member.
operationId: getStaffAppointments
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.appointmentIds
in: query
required: false
description: A list of the requested appointment IDs.
schema:
type: array
items:
type: integer
format: int32
example:
- 1
- name: request.clientId
in: query
required: false
description: The client ID to be returned.
schema:
type: string
example: example-value
- name: request.endDate
in: query
required: false
description: 'The end date of the requested date range. <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: A list of the requested location IDs.
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.staffIds
in: query
required: false
description: List of staff IDs to be returned. Omit parameter to return staff appointments for all staff.
schema:
type: array
items:
type: integer
format: int32
example:
- 1
- name: request.startDate
in: query
required: false
description: 'The start date of the requested date range. If omitted, the default is used. <br />Default: **today''s date**'
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/GetStaffAppointmentsResponse'
examples:
Getstaffappointments200Example:
summary: Default getStaffAppointments 200 example
x-microcks-default: true
value:
PaginationResponse: {}
Appointments: &id100
- {}
'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/appointment/unavailabilities:
get:
tags:
- Appointment
summary: Mindbody Returns a List of Unavailabilities. Unavailabilities Are the Times at
description: Returns a list of unavailabilities. Unavailabilities are the times at which appointments cannot be booked, for example, on holidays or after hours when the business is closed.
operationId: getUnavailabilities
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.endDate
in: query
required: false
description: "The end date of the requested date range. <br />Default: **today’s date**"
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.staffIds
in: query
required: false
description: A list of requested staff IDs.
schema:
type: array
items:
type: integer
format: int32
example:
- 1
- name: request.startDate
in: query
required: false
description: "The start date of the requested date range. <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/GetUnavailabilitiesResponse'
examples:
Getunavailabilities200Example:
summary: Default getUnavailabilities 200 example
x-microcks-default: true
value:
PaginationResponse: {}
Unavailabilities: &id106
- {}
'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/appointment/addappointment:
post:
tags:
- Appointment
summary: Mindbody A User Token is Required for This Endpoint. to Book an Appointment,
description: 'A user token is required for this endpoint. To book an appointment, you must use a location ID, staff ID, client ID, session type ID, and the StartDateTime of the appointment. You can
get most of this information using GET BookableItems. Note: Request deduplication is enabled for this endpoint. More information can be found in the [Request Deduplication Page](https://developers.mindbodyonline.com/ui/documentation/public-api
#/net-standard-library/mindbody-public-api-v6-0/request-deduplication). Use the `X-RequestDeduplication-Skip` header to bypass deduplication if necessary. This may be useful in scenarios where you
want to ensure a new appointment is created regardless of previous identical requests.'
operationId: addAppointment
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/AddAppointmentRequest'
examples:
AddappointmentRequestExample:
summary: Default addAppointment request example
x-microcks-default: true
value:
ClientId: example-value
LocationId: 123456
SessionTypeId: 123456
StaffId: 123456
StartDateTime: '2026-05-28T14:30:00Z'
ApplyPayment: true
Duration: 1
EndDateTime: '2026-05-28T14:30:00Z'
GenderPreference: example-value
Notes: Example note for Mindbody Public API.
ProviderId: example-value
ResourceIds: &id012
- 1
SendEmail: true
StaffRequested: true
Test: true
IsWaitlist: true
IsRequest: true
PartnerExternalId: example-value
AddAppointmentRequestId: 123456
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AddAppointmentResponse'
examples:
Addappointment200Example:
summary: Default addAppointment 200 example
x-microcks-default: true
value:
Appointment: {}
'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/appointment/addappointmentaddon:
post:
tags:
- Appointment
summary: Mindbody This Endpoint Books an Add-on on Top of an Existing, Regular
description: This endpoint books an add-on on top of an existing, regular appointment. To book an add-on, you must use an existing appointment ID and session type ID. You can get a session type
ID using `GET AppointmentAddOns`.
operationId: addAppointmentAddOn
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
# --- truncated at 32 KB (889 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mindbody/refs/heads/main/openapi/mindbody-public-api-v6-openapi-original.yml