# Mindbody — Pipedream Connect

> Wellness Business Management

- API slug: `mindbody` (use in MCP headers and tool keys)
- Auth: OAuth (Pipedream-managed)
- Categories: Business Management
- Website: https://www.mindbodyonline.com/
- This page (HTML): https://pipedream.com/apps/mindbody
- Tools: 12 actions · 0 triggers

## Connect via MCP (recommended)

- Endpoint: `https://remote.mcp.pipedream.net/v3`
- Headers: `Authorization: Bearer <token>` · `x-pd-project-id` · `x-pd-environment` · `x-pd-external-user-id` · `x-pd-app-slug: mindbody`

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "mindbody",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// e.g. run Book Appointment:
const result = await mcp.callTool({
  name: "mindbody-book-appointment",
  arguments: {
    clientId: "Client ID",
    locationId: 10,
  },
})
```

Docs: [MCP guide](https://pipedream.com/docs/connect/mcp/developers.md)

## API proxy

For a Mindbody endpoint with no pre-built tool, the proxy forwards your request with the connected user's credentials attached.

```bash
# The path segment is the target URL, URL-safe base64 encoded:
# https://api.mindbodyonline.com/public/v6/class/classes

curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkubWluZGJvZHlvbmxpbmUuY29tL3B1YmxpYy92Ni9jbGFzcy9jbGFzc2Vz?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
  -H "Authorization: Bearer {access_token}" \
  -H "x-pd-environment: production"
```

Docs: [API proxy guide](https://pipedream.com/docs/connect/api-proxy.md)

## SDK

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "mindbody-book-appointment",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    mindbody: { authProvisionId: "apn_xxxxxxx" },
    clientId: "Client ID",
    locationId: 10,
  },
})
```

Docs: [Managed auth guide](https://pipedream.com/docs/connect/managed-auth/quickstart.md) · [Tools guide](https://pipedream.com/docs/connect/components.md)

## Actions (12)

### `mindbody-book-appointment` — Book Appointment (Write)

Books a client into a one-on-one service appointment (personal training, massage, etc.). All five core parameters are required: clientId, locationId, sessionTypeId, startDateTime, and staffId. Use Search Clients to find the client ID, List Session Types to find sessionTypeId, and List Staff to find…

Full schema: https://pipedream.com/apps/mindbody/actions/book-appointment.md

### `mindbody-cancel-appointment` — Cancel Appointment (Write)

Cancels an existing appointment by setting its status to Cancelled. Requires the appointment ID — use Get Appointments to find the ID by client, date, or staff. See the documentation

Full schema: https://pipedream.com/apps/mindbody/actions/cancel-appointment.md

### `mindbody-get-appointments` — Get Appointments (Read-only)

Returns staff appointments, optionally filtered by date range, client, or staff member. Use clientId to show all appointments for a specific client — first use Search Clients to find their ID. Use staffId to filter by instructor. Date formats: YYYY-MM-DD (e.g., 2026-07-01). Without date filters…

Full schema: https://pipedream.com/apps/mindbody/actions/get-appointments.md

### `mindbody-get-classes` — Get Classes (Read-only)

Returns upcoming group class sessions at the studio, including class name, start/end time, instructor, location, and remaining capacity. Use startDateTime and endDateTime to filter by date range (ISO 8601 format, e.g., 2026-07-01T00:00:00). Use staffId to find classes taught by a specific…

Full schema: https://pipedream.com/apps/mindbody/actions/get-classes.md

### `mindbody-get-client-details` — Get Client Details (Read-only)

Returns the complete profile for a client (member), including contact info, active memberships, purchased services, account balance, and visit history. Requires the client's numeric ID — use Search Clients first to look up the ID by name or email. See the documentation

Full schema: https://pipedream.com/apps/mindbody/actions/get-client-details.md

### `mindbody-get-client-purchases` — Get Client Purchases (Read-only)

Returns the paginated list of purchases made by a specific Mindbody client, including amount/price fields. Sum the amounts across all pages to compute the client's lifetime spend. Requires the client's numeric ID - use Search Clients first to look up the ID by name or email. IMPORTANT: the API…

Full schema: https://pipedream.com/apps/mindbody/actions/get-client-purchases.md

### `mindbody-get-client-visits` — Get Client Visits (Read-only)

Returns the paginated list of visit records for a specific Mindbody client (member), each including its date/datetime (e.g. StartDateTime). Use this to derive retention metrics: visit count is the total record count across all pages and last visit date is the latest StartDateTime. Requires the…

Full schema: https://pipedream.com/apps/mindbody/actions/get-client-visits.md

### `mindbody-get-site-info` — Get Site Info (Read-only)

Returns identity and configuration details for the connected Mindbody site, including name, site ID, timezone, phone, and address. Use this as the identity anchor — call it first to discover the site name, ID, and timezone before querying other resources. Also provides location IDs needed by List…

Full schema: https://pipedream.com/apps/mindbody/actions/get-site-info.md

### `mindbody-list-session-types` — List Session Types (Read-only)

Returns all bookable session types (services) available at the studio, including their IDs, names, and program associations. Use this to discover the sessionTypeId values needed by Book Appointment. Optionally filter by programIds to narrow results to a specific program category. See the…

Full schema: https://pipedream.com/apps/mindbody/actions/list-session-types.md

### `mindbody-list-staff` — List Staff (Read-only)

Returns staff members at the studio, including their IDs, names, bio, and role assignments (e.g., ClassTeacher, AppointmentInstructor). Use this to discover staffId values needed by Book Appointment and Get Classes. Filter by filters to find staff with a specific role (e.g., AppointmentInstructor)…

Full schema: https://pipedream.com/apps/mindbody/actions/list-staff.md

### `mindbody-search-clients` — Search Clients (Read-only)

Searches for client (member) records by name, email address, or phone number. Returns client IDs, contact details, and membership status. Use this to find a client's ID before calling Get Client Details, Get Appointments, or Book Appointment. The searchText matches against first name, last name…

Full schema: https://pipedream.com/apps/mindbody/actions/search-clients.md

### `mindbody-upsert-client` — Upsert Client (Write)

Creates a new client or updates an existing client record. To create: omit clientId. firstName, lastName, and birthDate are required for new clients. To update: provide clientId — only the fields you specify will be updated. BirthDate format: ISO datetime string YYYY-MM-DDTHH:MM:SS (e.g…

Full schema: https://pipedream.com/apps/mindbody/actions/upsert-client.md

---

- All apps: https://pipedream.com/apps — index: https://pipedream.com/llms.txt
- Pipedream docs for agents: https://pipedream.com/docs/llms.txt
