Read Mindbody classes, schedules, clients, staff and sales; book clients and appointments.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Book an appointment for a client with a staff member at a location. Find a slot first with mindbody_list_bookable_items. No card is charged; apply_payment (Mindbody's default is true) only applies a pricing option already on the client's account. Pass test: true to validate only. Requires a staff user token. Mindbody: POST /appointment/addappointment.
The staff member delivering the appointment.
The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients).
The location id.
The session type id.
Start, ISO 8601 (e.g. 2026-10-01T14:00:00).
When true, Mindbody validates the request but commits nothing. Use it to dry-run a write.
General notes for the appointment.
Override the default duration, in minutes.
Send the site's automatic email.
Add to the appointment waiting list instead.
Resource (room/equipment) ids to attach.
Apply a pricing option already on the client's account (Mindbody default: true).
End, ISO 8601. Default: start + the default duration.
The client asked for this staff member specifically.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Book an appointment for a client with a staff member at a location. Find a slot first with mindbody_list_bookable_items. No card is charged; apply_payment (Mindbody's default is true) only applies a pricing option already on the client's account. Pass test: true to validate only. Requires a staff user token. Mindbody: POST /appointment/addappointment.
| Argument | Type | Description |
|---|---|---|
| test | boolean | When true, Mindbody validates the request but commits nothing. Use it to dry-run a write. |
| notes | string | General notes for the appointment. |
| duration | integer | Override the default duration, in minutes. |
| staff_id* | integer | The staff member delivering the appointment. |
| client_id* | string | The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients). |
| send_email | boolean | Send the site's automatic email. |
| is_waitlist | boolean | Add to the appointment waiting list instead. |
| location_id* | integer | The location id. |
| resource_ids | array | Resource (room/equipment) ids to attach. |
| apply_payment | boolean | Apply a pricing option already on the client's account (Mindbody default: true). |
| end_date_time | string | End, ISO 8601. Default: start + the default duration. |
| session_type_id* | integer | The session type id. |
| staff_requested | boolean | The client asked for this staff member specifically. |
| start_date_time* | string | Start, ISO 8601 (e.g. 2026-10-01T14:00:00). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"client_id",
"location_id",
"session_type_id",
"staff_id",
"start_date_time"
],
"properties": {
"test": {
"type": "boolean",
"description": "When true, Mindbody validates the request but commits nothing. Use it to dry-run a write."
},
"notes": {
"type": "string",
"description": "General notes for the appointment."
},
"duration": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Override the default duration, in minutes."
},
"staff_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The staff member delivering the appointment."
},
"client_id": {
"type": "string",
"description": "The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients)."
},
"send_email": {
"type": "boolean",
"description": "Send the site's automatic email."
},
"is_waitlist": {
"type": "boolean",
"description": "Add to the appointment waiting list instead."
},
"location_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The location id."
},
"resource_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Resource (room/equipment) ids to attach."
},
"apply_payment": {
"type": "boolean",
"description": "Apply a pricing option already on the client's account (Mindbody default: true)."
},
"end_date_time": {
"type": "string",
"description": "End, ISO 8601. Default: start + the default duration."
},
"session_type_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The session type id."
},
"staff_requested": {
"type": "boolean",
"description": "The client asked for this staff member specifically."
},
"start_date_time": {
"type": "string",
"description": "Start, ISO 8601 (e.g. 2026-10-01T14:00:00)."
}
}
}Create a new client record (first and last name required; the site may require more — Mindbody reports which). No card or billing data is accepted. Pass test: true to validate only. Mindbody: POST /client/addclient.
| Argument | Type | Description |
|---|---|---|
| city | string | City. |
| test | boolean | When true, Mindbody validates the request but commits nothing. Use it to dry-run a write. |
| string | Email address. | |
| state | string | State / region. |
| gender | string | Gender, as configured at the site (see the site's genders). |
| country | string | Country. |
| last_name* | string | Last name. |
| birth_date | string | Date of birth, ISO 8601 (e.g. 1990-04-12). |
| first_name* | string | First name. |
Book a client into a class (or onto its waiting list). Does not take payment: by default no pricing option is required; set require_payment to insist the client has a usable one on account. Undo from the Mindbody front desk. Pass test: true to validate only. Mindbody: POST /class/addclienttoclass.
| Argument | Type | Description |
|---|---|---|
| test | boolean | When true, Mindbody validates the request but commits nothing. Use it to dry-run a write. |
| class_id* | integer | The class id (from mindbody_list_classes). |
| waitlist | boolean | Add to the class waiting list instead of the class. |
| client_id* | string | The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients). |
| send_email | boolean | Send the site's booking confirmation email. |
| require_payment | boolean | Require an active, usable pricing option on the client's account. |
| client_service_id | integer | The id of the pricing option already on the client's account to use for this booking. |
Get one class with its visits — the roster of clients booked into it, with sign-in / late-cancel status. Mindbody: GET /class/classvisits.
| Argument | Type | Description |
|---|---|---|
| class_id* | integer | The class id (from mindbody_list_classes). |
| last_modified_date | string | Only visits modified on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"class_id"
],
"properties": {
"class_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The class id (from mindbody_list_classes)."
},
"last_modified_date": {
"type": "string",
"description": "Only visits modified on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
}
}
}Get the account balance for one or more clients (what they owe or hold in credit), optionally as of a date. Mindbody: GET /client/clientaccountbalances.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| class_id | integer | Balance relative to this class/event id. |
| client_ids* | array | The client ids to get balances for. |
| balance_date | string | Balance as of this date (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"client_ids"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"class_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Balance relative to this class/event id."
},
"client_ids": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "The client ids to get balances for."
},
"balance_date": {
"type": "string",
"description": "Balance as of this date (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
}
}
}Find appointment availability — which staff can deliver the given session types, where, and in which time windows. Use before mindbody_add_appointment. Mindbody: GET /appointment/bookableitems.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| end_date | string | End of the range (default start_date) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
| staff_ids | array | Only these staff ids (omit for all staff). |
| start_date | string | Start of the range (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
| location_ids | array | Only at these location ids. |
| appointment_id | integer | Exclude this existing appointment (useful when rescheduling). |
| session_type_ids* | array | Session type ids to find availability for (see mindbody_list_session_types). |
List recurring class schedules (the templates that generate class occurrences) — days, times, teacher, location and date span. Mindbody: GET /class/classschedules.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| end_date | string | Only schedules active on or before this day (default start_date) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
| staff_ids | array | Only taught by these staff ids. |
| start_date | string | Only schedules active on or after this day (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
| program_ids | array | Only in these program ids. |
| location_ids | array | Only at these location ids. |
| session_type_ids | array | Only these session type ids. |
List scheduled class occurrences in a date range — time, class description, teacher, location, capacity, booked/waitlist counts and cancellation status. Mindbody: GET /class/classes.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| class_ids | array | Only these class ids. |
| client_id | string | View the list as this client (may reveal client-specific pricing). |
| staff_ids | array | Only taught by these staff ids. |
| program_ids | array | Only in these program ids. |
| location_ids | array | Only at these location ids. |
| end_date_time | string | End of the range (default today; compares dates, not times) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
| start_date_time |
List a client's active memberships (auto-renewing pricing options) with remaining counts and expiry. Mindbody: GET /client/activeclientmemberships.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| client_id* | string | The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients). |
| location_id | integer | Only memberships usable at this location (not with cross_regional_lookup). |
| cross_regional_lookup | boolean | Search up to ten associated sites in the region. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"client_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"client_id": {
"type": "string",
"description": "The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients)."
},
"location_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Only memberships usable at this location (not with cross_regional_lookup)."
},
"cross_regional_lookup": {
"type": "boolean",
"description": "Search up to ten associated sites in the region."
}
}
}List a client's past and scheduled visits (class and appointment attendance) in a date range, optionally only unpaid ones. Mindbody: GET /client/clientvisits.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| order | string | Sort by date: desc = newest first. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| end_date | string | Only visits on or before this date (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
| client_id* | string | The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients). |
| start_date | string | Only visits on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
| unpaids_only | boolean | Only visits not yet paid for. |
| cross_regional_lookup | boolean | Include visits at every site in the region. |
Search or fetch client records by name/email text or by client ids (max 20 ids) — contact details, status, alerts, home location. Requires a staff user token. Mindbody: GET /client/clients.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| client_ids | array | Only these client ids (max 20). |
| is_prospect | boolean | true = only prospects; false = only non-prospects. |
| search_text | string | Match against first name, last name and email. |
| include_inactive | boolean | Include inactive clients (default false). |
| last_modified_date | string | Only clients modified on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"client_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"description": "Only these client ids (max 20)."
},
"is_prospect": {
"type": "boolean",
"description": "true = only prospects; false = only non-prospects."
},
"search_text": {
"type": "string",
"description": "Match against first name, last name and email."
},
"include_inactive": {
"type": "boolean",
"description": "Include inactive clients (default false)."
},
"last_modified_date": {
"type": "string",
"description": "Only clients modified on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
}
}
}List the business's locations (studios / branches) with address, phone and amenities. Location ids are needed to book appointments. Mindbody: GET /site/locations.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
}
}
}List completed sales at the site in a date/time range — purchased items, payments and client. Read only. Mindbody: GET /sale/sales.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| sale_id | integer | Only this sale id. |
| payment_method_id | integer | Only sales paid with this payment method id. |
| end_sale_date_time | string | Only sales before this date/time — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
| start_sale_date_time | string | Only sales after this date/time — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"sale_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Only this sale id."
},
"payment_method_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Only sales paid with this payment method id."
},
"end_sale_date_time": {
"type": "string",
"description": "Only sales before this date/time — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
},
"start_sale_date_time": {
"type": "string",
"description": "Only sales after this date/time — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
}
}
}List the pricing options (services — class packs, drop-ins, intro offers) for sale at the site, with price, online price, count and expiry. Read only. Mindbody: GET /sale/services.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| class_id | integer | Only pricing options usable for this class id. |
| staff_id | integer | Show this staff member's per-staff pricing, if the site uses it. |
| location_id | integer | Compute TaxRate/TaxIncluded for this location (does not filter). |
| program_ids | array | Only pricing options in these program ids. |
| sell_online | boolean | Only pricing options sold online. |
| service_ids | array | Only these pricing option ids. |
| session_type_ids |
List the session types (the bookable kinds of class or appointment, e.g. '60-min massage') used at the site. Session type ids drive appointment availability and booking. Mindbody: GET /site/sessiontypes.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| online_only | boolean | Only session types bookable online. |
| program_ids | array | Only session types in these program ids. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"online_only": {
"type": "boolean",
"description": "Only session types bookable online."
},
"program_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only session types in these program ids."
}
}
}List the Mindbody sites (businesses) your developer account can access, or details for specific site ids. A cheap way to confirm the API key works. Mindbody: GET /site/sites.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| site_ids | array | Only these site ids (returns more detail per site). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"site_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only these site ids (returns more detail per site)."
}
}
}List staff members (instructors, practitioners). Filter by role, or find who is available for a session type at a location and time (session_type_id + location_id + start_date_time together). Without a staff token only public fields return. Mindbody: GET /staff/staff.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| filters | array | Filters to apply. |
| staff_ids | array | Only these staff ids. |
| location_id | integer | Only staff available at this location (needs session_type_id and start_date_time). |
| session_type_id | integer | Only staff available for this session type (needs location_id and start_date_time). |
| start_date_time | string | Only staff available at this time (needs session_type_id and location_id) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
List booked appointments in a date range, by staff member, client or appointment id — the appointment book. Mindbody: GET /appointment/staffappointments.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (request.limit), 1-200. Mindbody defaults to 100. |
| offset | integer | Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults. |
| end_date | string | End of the range (default start_date) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
| client_id | string | Only this client's appointments. |
| staff_ids | array | Only these staff ids (omit for all staff). |
| start_date | string | Start of the range (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
| location_ids | array | Only at these location ids. |
| appointment_ids | array | Only these appointment ids. |
Reschedule or edit an appointment (start/end time, staff, session type, notes — the only fields Mindbody lets you change) and/or move it through its status: confirm, unconfirm, arrive, unarrive, complete. Cancel and late-cancel are deliberately not offered (a late cancel can charge the client). Pass test: true to validate only. Requires a staff user token. Mindbody: POST /appointment/updateappointment.
| Argument | Type | Description |
|---|---|---|
| test | boolean | When true, Mindbody validates the request but commits nothing. Use it to dry-run a write. |
| notes | string | Replace the appointment notes. |
| execute | string | A status action to apply. |
| staff_id | integer | Move to this staff member. |
| send_email | boolean | Send the site's automatic email. |
| end_date_time | string | New end, ISO 8601. |
| appointment_id* | integer | The appointment id (from mindbody_list_staff_appointments). |
| session_type_id | integer |
Update fields on an existing client record — only the fields you pass change. No card or billing data is accepted. cross_regional_update (Mindbody default: true) also updates the client's profiles at the region's other sites. Pass test: true to validate only. Mindbody: POST /client/updateclient.
| Argument | Type | Description |
|---|---|---|
| city | string | City. |
| test | boolean | When true, Mindbody validates the request but commits nothing. Use it to dry-run a write. |
| string | Email address. | |
| state | string | State / region. |
| gender | string | Gender, as configured at the site (see the site's genders). |
| country | string | Country. |
| client_id* | string | The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients). |
| last_name | string | Last name. |
| birth_date | string |
| home_phone |
| string |
| Home phone number. |
| work_phone | string | Work phone number. |
| is_prospect | boolean | Mark the client as a prospect (only if the site allows prospects). |
| middle_name | string | Middle name. |
| postal_code | string | Postal code. |
| referred_by | string | How the client was referred (one of the site's referral types). |
| mobile_phone | string | Mobile phone number. |
| address_line_1 | string | Street address, line 1. |
| address_line_2 | string | Street address, line 2. |
| send_account_emails | boolean | Opt in/out of account notification emails. |
| send_schedule_emails | boolean | Opt in/out of schedule notification emails. |
| send_promotional_emails | boolean | Opt in/out of promotional emails. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"first_name",
"last_name"
],
"properties": {
"city": {
"type": "string",
"description": "City."
},
"test": {
"type": "boolean",
"description": "When true, Mindbody validates the request but commits nothing. Use it to dry-run a write."
},
"email": {
"type": "string",
"description": "Email address."
},
"state": {
"type": "string",
"description": "State / region."
},
"gender": {
"type": "string",
"description": "Gender, as configured at the site (see the site's genders)."
},
"country": {
"type": "string",
"description": "Country."
},
"last_name": {
"type": "string",
"minLength": 1,
"description": "Last name."
},
"birth_date": {
"type": "string",
"description": "Date of birth, ISO 8601 (e.g. 1990-04-12)."
},
"first_name": {
"type": "string",
"minLength": 1,
"description": "First name."
},
"home_phone": {
"type": "string",
"description": "Home phone number."
},
"work_phone": {
"type": "string",
"description": "Work phone number."
},
"is_prospect": {
"type": "boolean",
"description": "Mark the client as a prospect (only if the site allows prospects)."
},
"middle_name": {
"type": "string",
"description": "Middle name."
},
"postal_code": {
"type": "string",
"description": "Postal code."
},
"referred_by": {
"type": "string",
"description": "How the client was referred (one of the site's referral types)."
},
"mobile_phone": {
"type": "string",
"description": "Mobile phone number."
},
"address_line_1": {
"type": "string",
"description": "Street address, line 1."
},
"address_line_2": {
"type": "string",
"description": "Street address, line 2."
},
"send_account_emails": {
"type": "boolean",
"description": "Opt in/out of account notification emails."
},
"send_schedule_emails": {
"type": "boolean",
"description": "Opt in/out of schedule notification emails."
},
"send_promotional_emails": {
"type": "boolean",
"description": "Opt in/out of promotional emails."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"client_id",
"class_id"
],
"properties": {
"test": {
"type": "boolean",
"description": "When true, Mindbody validates the request but commits nothing. Use it to dry-run a write."
},
"class_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The class id (from mindbody_list_classes)."
},
"waitlist": {
"type": "boolean",
"description": "Add to the class waiting list instead of the class."
},
"client_id": {
"type": "string",
"description": "The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients)."
},
"send_email": {
"type": "boolean",
"description": "Send the site's booking confirmation email."
},
"require_payment": {
"type": "boolean",
"description": "Require an active, usable pricing option on the client's account."
},
"client_service_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The id of the pricing option already on the client's account to use for this booking."
}
}
}| ignore_default_session_length | boolean | Also return availabilities that differ from the session type's default length. |
| include_resource_availability | boolean | Include resource (room/equipment) availability. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"session_type_ids"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"end_date": {
"type": "string",
"description": "End of the range (default start_date) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
},
"staff_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only these staff ids (omit for all staff)."
},
"start_date": {
"type": "string",
"description": "Start of the range (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
},
"location_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only at these location ids."
},
"appointment_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Exclude this existing appointment (useful when rescheduling)."
},
"session_type_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"minItems": 1,
"description": "Session type ids to find availability for (see mindbody_list_session_types)."
},
"ignore_default_session_length": {
"type": "boolean",
"description": "Also return availabilities that differ from the session type's default length."
},
"include_resource_availability": {
"type": "boolean",
"description": "Include resource (room/equipment) availability."
}
}
}| class_schedule_ids |
| array |
| Only these class schedule ids. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"end_date": {
"type": "string",
"description": "Only schedules active on or before this day (default start_date) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
},
"staff_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only taught by these staff ids."
},
"start_date": {
"type": "string",
"description": "Only schedules active on or after this day (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
},
"program_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only in these program ids."
},
"location_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only at these location ids."
},
"session_type_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only these session type ids."
},
"class_schedule_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only these class schedule ids."
}
}
}| string |
| Start of the range (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
| session_type_ids | array | Only these session type ids. |
| class_schedule_ids | array | Only classes from these class schedule ids. |
| last_modified_date | string | Only classes modified on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00. |
| class_description_ids | array | Only these class description ids. |
| hide_canceled_classes | boolean | Drop canceled classes from the response. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"class_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only these class ids."
},
"client_id": {
"type": "string",
"description": "View the list as this client (may reveal client-specific pricing)."
},
"staff_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only taught by these staff ids."
},
"program_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only in these program ids."
},
"location_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only at these location ids."
},
"end_date_time": {
"type": "string",
"description": "End of the range (default today; compares dates, not times) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
},
"start_date_time": {
"type": "string",
"description": "Start of the range (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
},
"session_type_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only these session type ids."
},
"class_schedule_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only classes from these class schedule ids."
},
"last_modified_date": {
"type": "string",
"description": "Only classes modified on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
},
"class_description_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only these class description ids."
},
"hide_canceled_classes": {
"type": "boolean",
"description": "Drop canceled classes from the response."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"client_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by date: desc = newest first."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"end_date": {
"type": "string",
"description": "Only visits on or before this date (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
},
"client_id": {
"type": "string",
"description": "The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients)."
},
"start_date": {
"type": "string",
"description": "Only visits on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
},
"unpaids_only": {
"type": "boolean",
"description": "Only visits not yet paid for."
},
"cross_regional_lookup": {
"type": "boolean",
"description": "Include visits at every site in the region."
}
}
}| array |
| Only pricing options for these session type ids. |
| class_schedule_id | integer | Only pricing options usable for this class schedule id. |
| include_discontinued | boolean | Include discontinued pricing options. |
| hide_related_programs | boolean | Omit pricing options of related programs. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"class_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Only pricing options usable for this class id."
},
"staff_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Show this staff member's per-staff pricing, if the site uses it."
},
"location_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Compute TaxRate/TaxIncluded for this location (does not filter)."
},
"program_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only pricing options in these program ids."
},
"sell_online": {
"type": "boolean",
"description": "Only pricing options sold online."
},
"service_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only these pricing option ids."
},
"session_type_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only pricing options for these session type ids."
},
"class_schedule_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Only pricing options usable for this class schedule id."
},
"include_discontinued": {
"type": "boolean",
"description": "Include discontinued pricing options."
},
"hide_related_programs": {
"type": "boolean",
"description": "Omit pricing options of related programs."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"filters": {
"type": "array",
"items": {
"enum": [
"StaffViewable",
"AppointmentInstructor",
"ClassInstructor",
"Male",
"Female"
],
"type": "string"
},
"description": "Filters to apply."
},
"staff_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only these staff ids."
},
"location_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Only staff available at this location (needs session_type_id and start_date_time)."
},
"session_type_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Only staff available for this session type (needs location_id and start_date_time)."
},
"start_date_time": {
"type": "string",
"description": "Only staff available at this time (needs session_type_id and location_id) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults."
},
"end_date": {
"type": "string",
"description": "End of the range (default start_date) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
},
"client_id": {
"type": "string",
"description": "Only this client's appointments."
},
"staff_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only these staff ids (omit for all staff)."
},
"start_date": {
"type": "string",
"description": "Start of the range (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00."
},
"location_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only at these location ids."
},
"appointment_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Only these appointment ids."
}
}
}| Change the session type. |
| start_date_time | string | New start, ISO 8601. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"appointment_id"
],
"properties": {
"test": {
"type": "boolean",
"description": "When true, Mindbody validates the request but commits nothing. Use it to dry-run a write."
},
"notes": {
"type": "string",
"description": "Replace the appointment notes."
},
"execute": {
"enum": [
"confirm",
"unconfirm",
"arrive",
"unarrive",
"complete"
],
"type": "string",
"description": "A status action to apply."
},
"staff_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Move to this staff member."
},
"send_email": {
"type": "boolean",
"description": "Send the site's automatic email."
},
"end_date_time": {
"type": "string",
"description": "New end, ISO 8601."
},
"appointment_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The appointment id (from mindbody_list_staff_appointments)."
},
"session_type_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Change the session type."
},
"start_date_time": {
"type": "string",
"description": "New start, ISO 8601."
}
}
}| Date of birth, ISO 8601 (e.g. 1990-04-12). |
| first_name | string | First name. |
| home_phone | string | Home phone number. |
| work_phone | string | Work phone number. |
| is_prospect | boolean | Mark the client as a prospect (only if the site allows prospects). |
| middle_name | string | Middle name. |
| postal_code | string | Postal code. |
| referred_by | string | How the client was referred (one of the site's referral types). |
| mobile_phone | string | Mobile phone number. |
| address_line_1 | string | Street address, line 1. |
| address_line_2 | string | Street address, line 2. |
| send_account_emails | boolean | Opt in/out of account notification emails. |
| send_schedule_emails | boolean | Opt in/out of schedule notification emails. |
| cross_regional_update | boolean | Propagate to the client's profiles at the region's other sites (Mindbody default: true). |
| send_promotional_emails | boolean | Opt in/out of promotional emails. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"client_id"
],
"properties": {
"city": {
"type": "string",
"description": "City."
},
"test": {
"type": "boolean",
"description": "When true, Mindbody validates the request but commits nothing. Use it to dry-run a write."
},
"email": {
"type": "string",
"description": "Email address."
},
"state": {
"type": "string",
"description": "State / region."
},
"gender": {
"type": "string",
"description": "Gender, as configured at the site (see the site's genders)."
},
"country": {
"type": "string",
"description": "Country."
},
"client_id": {
"type": "string",
"description": "The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients)."
},
"last_name": {
"type": "string",
"minLength": 1,
"description": "Last name."
},
"birth_date": {
"type": "string",
"description": "Date of birth, ISO 8601 (e.g. 1990-04-12)."
},
"first_name": {
"type": "string",
"minLength": 1,
"description": "First name."
},
"home_phone": {
"type": "string",
"description": "Home phone number."
},
"work_phone": {
"type": "string",
"description": "Work phone number."
},
"is_prospect": {
"type": "boolean",
"description": "Mark the client as a prospect (only if the site allows prospects)."
},
"middle_name": {
"type": "string",
"description": "Middle name."
},
"postal_code": {
"type": "string",
"description": "Postal code."
},
"referred_by": {
"type": "string",
"description": "How the client was referred (one of the site's referral types)."
},
"mobile_phone": {
"type": "string",
"description": "Mobile phone number."
},
"address_line_1": {
"type": "string",
"description": "Street address, line 1."
},
"address_line_2": {
"type": "string",
"description": "Street address, line 2."
},
"send_account_emails": {
"type": "boolean",
"description": "Opt in/out of account notification emails."
},
"send_schedule_emails": {
"type": "boolean",
"description": "Opt in/out of schedule notification emails."
},
"cross_regional_update": {
"type": "boolean",
"description": "Propagate to the client's profiles at the region's other sites (Mindbody default: true)."
},
"send_promotional_emails": {
"type": "boolean",
"description": "Opt in/out of promotional emails."
}
}
}