mindbody
Read Mindbody classes, schedules, clients, staff and sales; book clients and appointments.
我该使用它吗
质量与安全性
发现(3)
- LOW在 mindbody_list_staff_appointments 中
- LOW在 mindbody_list_client_memberships 中
- LOW在 mindbody_get_client_account_balances 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"mindbody": {
"url": "https://mindbody.usefulapi.io/mcp"
}
}
}远程端点
https://mindbody.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(20)
🟢mindbody_list_sites(site_ids, limit, offset)
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.
输入模式
{
"type": "object",
"properties": {
"site_ids": {
"description": "Only these site ids (returns more detail per site).",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_list_locations(limit, offset)
List the business's locations (studios / branches) with address, phone and amenities. Location ids are needed to book appointments. Mindbody: GET /site/locations.
输入模式
{
"type": "object",
"properties": {
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_list_session_types(program_ids, online_only, limit, offset)
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.
输入模式
{
"type": "object",
"properties": {
"program_ids": {
"description": "Only session types in these program ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"online_only": {
"description": "Only session types bookable online.",
"type": "boolean"
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_list_classes(start_date_time, end_date_time, class_ids, class_schedule_ids, class_description_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.
输入模式
{
"type": "object",
"properties": {
"start_date_time": {
"description": "Start of the range (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"end_date_time": {
"description": "End of the range (default today; compares dates, not times) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"class_ids": {
"description": "Only these class ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"class_schedule_ids": {
"description": "Only classes from these class schedule ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"class_description_ids": {
"description": "Only these class description ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"location_ids": {
"description": "Only at these location ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"program_ids": {
"description": "Only in these program ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"session_type_ids": {
"description": "Only these session type ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"staff_ids": {
"description": "Only taught by these staff ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"client_id": {
"description": "View the list as this client (may reveal client-specific pricing).",
"type": "string"
},
"hide_canceled_classes": {
"description": "Drop canceled classes from the response.",
"type": "boolean"
},
"last_modified_date": {
"description": "Only classes modified on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_list_class_schedules(start_date, end_date, class_schedule_ids, location_ids, program_ids, ...)
List recurring class schedules (the templates that generate class occurrences) — days, times, teacher, location and date span. Mindbody: GET /class/classschedules.
输入模式
{
"type": "object",
"properties": {
"start_date": {
"description": "Only schedules active on or after this day (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"end_date": {
"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.",
"type": "string"
},
"class_schedule_ids": {
"description": "Only these class schedule ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"location_ids": {
"description": "Only at these location ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"program_ids": {
"description": "Only in these program ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"session_type_ids": {
"description": "Only these session type ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"staff_ids": {
"description": "Only taught by these staff ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_get_class_visits(class_id, last_modified_date)
Get one class with its visits — the roster of clients booked into it, with sign-in / late-cancel status. Mindbody: GET /class/classvisits.
输入模式
{
"type": "object",
"properties": {
"class_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "The class id (from mindbody_list_classes)."
},
"last_modified_date": {
"description": "Only visits modified on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
}
},
"required": [
"class_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_list_bookable_items(session_type_ids, start_date, end_date, location_ids, staff_ids, ...)
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.
输入模式
{
"type": "object",
"properties": {
"session_type_ids": {
"minItems": 1,
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"description": "Session type ids to find availability for (see mindbody_list_session_types)."
},
"start_date": {
"description": "Start of the range (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"end_date": {
"description": "End of the range (default start_date) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"location_ids": {
"description": "Only at these location ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"staff_ids": {
"description": "Only these staff ids (omit for all staff).",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"appointment_id": {
"description": "Exclude this existing appointment (useful when rescheduling).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"ignore_default_session_length": {
"description": "Also return availabilities that differ from the session type's default length.",
"type": "boolean"
},
"include_resource_availability": {
"description": "Include resource (room/equipment) availability.",
"type": "boolean"
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"session_type_ids"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_list_staff_appointments(start_date, end_date, staff_ids, client_id, appointment_ids, ...)
List booked appointments in a date range, by staff member, client or appointment id — the appointment book. Mindbody: GET /appointment/staffappointments.
输入模式
{
"type": "object",
"properties": {
"start_date": {
"description": "Start of the range (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"end_date": {
"description": "End of the range (default start_date) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"staff_ids": {
"description": "Only these staff ids (omit for all staff).",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"client_id": {
"description": "Only this client's appointments.",
"type": "string"
},
"appointment_ids": {
"description": "Only these appointment ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"location_ids": {
"description": "Only at these location ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_list_clients(search_text, client_ids, include_inactive, is_prospect, last_modified_date, ...)
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.
输入模式
{
"type": "object",
"properties": {
"search_text": {
"description": "Match against first name, last name and email.",
"type": "string"
},
"client_ids": {
"description": "Only these client ids (max 20).",
"maxItems": 20,
"type": "array",
"items": {
"type": "string"
}
},
"include_inactive": {
"description": "Include inactive clients (default false).",
"type": "boolean"
},
"is_prospect": {
"description": "true = only prospects; false = only non-prospects.",
"type": "boolean"
},
"last_modified_date": {
"description": "Only clients modified on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_list_client_visits(client_id, start_date, end_date, unpaids_only, order, ...)
List a client's past and scheduled visits (class and appointment attendance) in a date range, optionally only unpaid ones. Mindbody: GET /client/clientvisits.
输入模式
{
"type": "object",
"properties": {
"client_id": {
"type": "string",
"description": "The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients)."
},
"start_date": {
"description": "Only visits on or after this date — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"end_date": {
"description": "Only visits on or before this date (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"unpaids_only": {
"description": "Only visits not yet paid for.",
"type": "boolean"
},
"order": {
"description": "Sort by date: desc = newest first.",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"cross_regional_lookup": {
"description": "Include visits at every site in the region.",
"type": "boolean"
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"client_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_list_client_memberships(client_id, location_id, cross_regional_lookup, limit, offset)
List a client's active memberships (auto-renewing pricing options) with remaining counts and expiry. Mindbody: GET /client/activeclientmemberships.
输入模式
{
"type": "object",
"properties": {
"client_id": {
"type": "string",
"description": "The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients)."
},
"location_id": {
"description": "Only memberships usable at this location (not with cross_regional_lookup).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"cross_regional_lookup": {
"description": "Search up to ten associated sites in the region.",
"type": "boolean"
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"client_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_get_client_account_balances(client_ids, balance_date, class_id, limit, offset)
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.
输入模式
{
"type": "object",
"properties": {
"client_ids": {
"minItems": 1,
"type": "array",
"items": {
"type": "string"
},
"description": "The client ids to get balances for."
},
"balance_date": {
"description": "Balance as of this date (default today) — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"class_id": {
"description": "Balance relative to this class/event id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"client_ids"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_list_staff(staff_ids, filters, session_type_id, location_id, start_date_time, ...)
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.
输入模式
{
"type": "object",
"properties": {
"staff_ids": {
"description": "Only these staff ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"filters": {
"description": "Filters to apply.",
"type": "array",
"items": {
"type": "string",
"enum": [
"StaffViewable",
"AppointmentInstructor",
"ClassInstructor",
"Male",
"Female"
]
}
},
"session_type_id": {
"description": "Only staff available for this session type (needs location_id and start_date_time).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"location_id": {
"description": "Only staff available at this location (needs session_type_id and start_date_time).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"start_date_time": {
"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": "string"
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_list_services(service_ids, program_ids, session_type_ids, class_id, class_schedule_id, ...)
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.
输入模式
{
"type": "object",
"properties": {
"service_ids": {
"description": "Only these pricing option ids.",
"type": "array",
"items": {
"type": "string"
}
},
"program_ids": {
"description": "Only pricing options in these program ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"session_type_ids": {
"description": "Only pricing options for these session type ids.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"class_id": {
"description": "Only pricing options usable for this class id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"class_schedule_id": {
"description": "Only pricing options usable for this class schedule id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"location_id": {
"description": "Compute TaxRate/TaxIncluded for this location (does not filter).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"staff_id": {
"description": "Show this staff member's per-staff pricing, if the site uses it.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"sell_online": {
"description": "Only pricing options sold online.",
"type": "boolean"
},
"include_discontinued": {
"description": "Include discontinued pricing options.",
"type": "boolean"
},
"hide_related_programs": {
"description": "Omit pricing options of related programs.",
"type": "boolean"
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢mindbody_list_sales(start_sale_date_time, end_sale_date_time, sale_id, payment_method_id, limit, ...)
List completed sales at the site in a date/time range — purchased items, payments and client. Read only. Mindbody: GET /sale/sales.
输入模式
{
"type": "object",
"properties": {
"start_sale_date_time": {
"description": "Only sales after this date/time — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"end_sale_date_time": {
"description": "Only sales before this date/time — ISO 8601, e.g. 2026-10-01 or 2026-10-01T09:00:00.",
"type": "string"
},
"sale_id": {
"description": "Only this sale id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"payment_method_id": {
"description": "Only sales paid with this payment method id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"limit": {
"description": "Page size (request.limit), 1-200. Mindbody defaults to 100.",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset (request.offset). Mindbody defaults to 0. See PaginationResponse.TotalResults.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴mindbody_add_client_to_class(client_id, class_id, waitlist, require_payment, client_service_id, ...)
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.
输入模式
{
"type": "object",
"properties": {
"client_id": {
"type": "string",
"description": "The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients)."
},
"class_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "The class id (from mindbody_list_classes)."
},
"waitlist": {
"description": "Add to the class waiting list instead of the class.",
"type": "boolean"
},
"require_payment": {
"description": "Require an active, usable pricing option on the client's account.",
"type": "boolean"
},
"client_service_id": {
"description": "The id of the pricing option already on the client's account to use for this booking.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"send_email": {
"description": "Send the site's booking confirmation email.",
"type": "boolean"
},
"test": {
"description": "When true, Mindbody validates the request but commits nothing. Use it to dry-run a write.",
"type": "boolean"
}
},
"required": [
"client_id",
"class_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴mindbody_add_appointment(client_id, location_id, session_type_id, staff_id, start_date_time, ...)
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.
输入模式
{
"type": "object",
"properties": {
"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",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "The location id."
},
"session_type_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "The session type id."
},
"staff_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "The staff member delivering the appointment."
},
"start_date_time": {
"type": "string",
"description": "Start, ISO 8601 (e.g. 2026-10-01T14:00:00)."
},
"end_date_time": {
"description": "End, ISO 8601. Default: start + the default duration.",
"type": "string"
},
"duration": {
"description": "Override the default duration, in minutes.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"notes": {
"description": "General notes for the appointment.",
"type": "string"
},
"staff_requested": {
"description": "The client asked for this staff member specifically.",
"type": "boolean"
},
"resource_ids": {
"description": "Resource (room/equipment) ids to attach.",
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"apply_payment": {
"description": "Apply a pricing option already on the client's account (Mindbody default: true).",
"type": "boolean"
},
"is_waitlist": {
"description": "Add to the appointment waiting list instead.",
"type": "boolean"
},
"send_email": {
"description": "Send the site's automatic email.",
"type": "boolean"
},
"test": {
"description": "When true, Mindbody validates the request but commits nothing. Use it to dry-run a write.",
"type": "boolean"
}
},
"required": [
"client_id",
"location_id",
"session_type_id",
"staff_id",
"start_date_time"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴mindbody_update_appointment(appointment_id, execute, start_date_time, end_date_time, staff_id, ...)
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.
输入模式
{
"type": "object",
"properties": {
"appointment_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "The appointment id (from mindbody_list_staff_appointments)."
},
"execute": {
"description": "A status action to apply.",
"type": "string",
"enum": [
"confirm",
"unconfirm",
"arrive",
"unarrive",
"complete"
]
},
"start_date_time": {
"description": "New start, ISO 8601.",
"type": "string"
},
"end_date_time": {
"description": "New end, ISO 8601.",
"type": "string"
},
"staff_id": {
"description": "Move to this staff member.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"session_type_id": {
"description": "Change the session type.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"notes": {
"description": "Replace the appointment notes.",
"type": "string"
},
"send_email": {
"description": "Send the site's automatic email.",
"type": "boolean"
},
"test": {
"description": "When true, Mindbody validates the request but commits nothing. Use it to dry-run a write.",
"type": "boolean"
}
},
"required": [
"appointment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴mindbody_add_client(first_name, last_name, middle_name, email, mobile_phone, ...)
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.
输入模式
{
"type": "object",
"properties": {
"first_name": {
"type": "string",
"minLength": 1,
"description": "First name."
},
"last_name": {
"type": "string",
"minLength": 1,
"description": "Last name."
},
"middle_name": {
"description": "Middle name.",
"type": "string"
},
"email": {
"description": "Email address.",
"type": "string"
},
"mobile_phone": {
"description": "Mobile phone number.",
"type": "string"
},
"home_phone": {
"description": "Home phone number.",
"type": "string"
},
"work_phone": {
"description": "Work phone number.",
"type": "string"
},
"birth_date": {
"description": "Date of birth, ISO 8601 (e.g. 1990-04-12).",
"type": "string"
},
"gender": {
"description": "Gender, as configured at the site (see the site's genders).",
"type": "string"
},
"address_line_1": {
"description": "Street address, line 1.",
"type": "string"
},
"address_line_2": {
"description": "Street address, line 2.",
"type": "string"
},
"city": {
"description": "City.",
"type": "string"
},
"state": {
"description": "State / region.",
"type": "string"
},
"postal_code": {
"description": "Postal code.",
"type": "string"
},
"country": {
"description": "Country.",
"type": "string"
},
"referred_by": {
"description": "How the client was referred (one of the site's referral types).",
"type": "string"
},
"is_prospect": {
"description": "Mark the client as a prospect (only if the site allows prospects).",
"type": "boolean"
},
"send_account_emails": {
"description": "Opt in/out of account notification emails.",
"type": "boolean"
},
"send_schedule_emails": {
"description": "Opt in/out of schedule notification emails.",
"type": "boolean"
},
"send_promotional_emails": {
"description": "Opt in/out of promotional emails.",
"type": "boolean"
},
"test": {
"description": "When true, Mindbody validates the request but commits nothing. Use it to dry-run a write.",
"type": "boolean"
}
},
"required": [
"first_name",
"last_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴mindbody_update_client(client_id, first_name, last_name, middle_name, email, ...)
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.
输入模式
{
"type": "object",
"properties": {
"client_id": {
"type": "string",
"description": "The client's ID (RSSID — a string, as configured by the business; see mindbody_list_clients)."
},
"first_name": {
"description": "First name.",
"type": "string",
"minLength": 1
},
"last_name": {
"description": "Last name.",
"type": "string",
"minLength": 1
},
"middle_name": {
"description": "Middle name.",
"type": "string"
},
"email": {
"description": "Email address.",
"type": "string"
},
"mobile_phone": {
"description": "Mobile phone number.",
"type": "string"
},
"home_phone": {
"description": "Home phone number.",
"type": "string"
},
"work_phone": {
"description": "Work phone number.",
"type": "string"
},
"birth_date": {
"description": "Date of birth, ISO 8601 (e.g. 1990-04-12).",
"type": "string"
},
"gender": {
"description": "Gender, as configured at the site (see the site's genders).",
"type": "string"
},
"address_line_1": {
"description": "Street address, line 1.",
"type": "string"
},
"address_line_2": {
"description": "Street address, line 2.",
"type": "string"
},
"city": {
"description": "City.",
"type": "string"
},
"state": {
"description": "State / region.",
"type": "string"
},
"postal_code": {
"description": "Postal code.",
"type": "string"
},
"country": {
"description": "Country.",
"type": "string"
},
"referred_by": {
"description": "How the client was referred (one of the site's referral types).",
"type": "string"
},
"is_prospect": {
"description": "Mark the client as a prospect (only if the site allows prospects).",
"type": "boolean"
},
"send_account_emails": {
"description": "Opt in/out of account notification emails.",
"type": "boolean"
},
"send_schedule_emails": {
"description": "Opt in/out of schedule notification emails.",
"type": "boolean"
},
"send_promotional_emails": {
"description": "Opt in/out of promotional emails.",
"type": "boolean"
},
"cross_regional_update": {
"description": "Propagate to the client's profiles at the region's other sites (Mindbody default: true).",
"type": "boolean"
},
"test": {
"description": "When true, Mindbody validates the request but commits nothing. Use it to dry-run a write.",
"type": "boolean"
}
},
"required": [
"client_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据