Mindbody Client API

Client operations.

Documentation

Specifications

Code Examples

Other Resources

OpenAPI Specification

mindbody-client-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Mindbody Public API v6 Appointment Client API
  version: '6.0'
  description: REST API for Mindbody business management data including appointments, classes, clients, enrollments, sales, sites, staff, payroll, and cross-site operations. Authentication combines a Mindbody-issued API-Key header with a SiteId header and optional staff/user OAuth bearer tokens for write operations. Generated from the official Mindbody Public API Python SDK (apimatic v3).
  contact:
    name: Mindbody API Support
    url: https://support.mindbodyonline.com/s/contactapisupport
  license:
    name: Proprietary
  x-generated-from: Mindbody-API-SDKs python SDK
  x-last-validated: '2026-05-28'
servers:
- url: https://api.mindbodyonline.com
  description: Production
security:
- ApiKeyAuth: []
tags:
- name: Client
  description: Client operations.
paths:
  /public/v6/client/activeclientmemberships:
    get:
      tags:
      - Client
      summary: Mindbody Please Note That Client Memberships with Location Restrictions Can
      description: Please note that client memberships with location restrictions can only be used to pay for scheduled services at the site to which they belong. Memberships with location restrictions can not be used to pay for scheduled services at other sites within an organization.
      operationId: getActiveClientMemberships
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: request.clientId
        in: query
        required: true
        description: The ID of the client for whom memberships are returned.
        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.clientAssociatedSitesOffset
        in: query
        required: false
        description: Used to retrieve a client’s memberships from multiple sites within an organization when the client is associated with more than ten sites. To change which ten sites are searched, change this offset value. A value of 0 means that no sites are skipped and the first ten sites are returned. You can use the `CrossRegionalClientAssociations` value from `GET CrossRegionalClientAssociations` to determine how many sites the client is associated with. Note that you must always have `CrossRegionalLookup` s
        schema:
          type: integer
          format: int32
        example: 10
      - name: request.crossRegionalLookup
        in: query
        required: false
        description: Used to retrieve a client’s memberships from multiple sites within an organization. When included and set to `true`, it searches a maximum of ten sites with which this client is associated. When a client is associated with more than ten sites, use `ClientAssociatedSitesOffset` as many times as needed to search the additional sites with which the client is associated. You can use the `CrossRegionalClientAssociations` value from `GET CrossRegionalClientAssociations` to determine how many sites the
        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.locationId
        in: query
        required: false
        description: Filters results to memberships that can be used to pay for scheduled services at that location. This parameter can not be passed when `CrossRegionalLookup` is `true`.
        schema:
          type: integer
          format: int32
        example: 123456
      - name: request.offset
        in: query
        required: false
        description: Page offset, defaults to 0.
        schema:
          type: integer
          format: int32
        example: 1
      - name: request.uniqueClientId
        in: query
        required: false
        description: The Unique ID of the client for whom memberships are returned. Note that UniqueClientId takes precedence over ClientId if both are provided.
        schema:
          type: integer
          format: int32
        example: 123456
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetActiveClientMembershipsResponse'
              examples:
                Getactiveclientmemberships200Example:
                  summary: Default getActiveClientMemberships 200 example
                  x-microcks-default: true
                  value:
                    PaginationResponse: {}
                    ClientMemberships:
                    - {}
        '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/client/activeclientsmemberships:
    get:
      tags:
      - Client
      summary: Mindbody The Endpoint Returns a List of Memberships for Multiple Clients We
      description: The endpoint returns a list of memberships for multiple clients we pass in query parameter. Please note that clients memberships with location restrictions can only be used to pay for scheduled services at the site to which they belong. Memberships with location restrictions can not be used to pay for scheduled services at other sites within an organization.
      operationId: getActiveClientsMemberships
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: request.clientIds
        in: query
        required: true
        description: 'The ID of the client for whom memberships are returned. Maximum allowed : 200.'
        schema:
          type: array
          items:
            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.clientAssociatedSitesOffset
        in: query
        required: false
        description: Used to retrieve a client’s memberships from multiple sites within an organization when the client is associated with more than ten sites. To change which ten sites are searched, change this offset value. A value of 0 means that no sites are skipped and the first ten sites are returned. You can use the `CrossRegionalClientAssociations` value from `GET CrossRegionalClientAssociations` to determine how many sites the client is associated with. Note that you must always have `CrossRegionalLookup` s
        schema:
          type: integer
          format: int32
        example: 10
      - name: request.crossRegionalLookup
        in: query
        required: false
        description: Used to retrieve a client’s memberships from multiple sites within an organization. When included and set to `true`, it searches a maximum of ten sites with which this client is associated. When a client is associated with more than ten sites, use `ClientAssociatedSitesOffset` as many times as needed to search the additional sites with which the client is associated. You can use the `CrossRegionalClientAssociations` value from `GET CrossRegionalClientAssociations` to determine how many sites the
        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.locationId
        in: query
        required: false
        description: Filters results to memberships that can be used to pay for scheduled services at that location. This parameter can not be passed when `CrossRegionalLookup` is `true`.
        schema:
          type: integer
          format: int32
        example: 123456
      - name: request.offset
        in: query
        required: false
        description: Page offset, defaults to 0.
        schema:
          type: integer
          format: int32
        example: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetActiveClientsMembershipsResponse'
              examples:
                Getactiveclientsmemberships200Example:
                  summary: Default getActiveClientsMemberships 200 example
                  x-microcks-default: true
                  value:
                    PaginationResponse: {}
                    ClientMemberships:
                    - {}
        '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/client/clientaccountbalances:
    get:
      tags:
      - Client
      summary: Mindbody Get Account Balance Information for One or More Client(s)
      description: Get account balance information for one or more client(s).
      operationId: getClientAccountBalances
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: request.clientIds
        in: query
        required: true
        description: The list of clients IDs for which you want account balances.
        schema:
          type: array
          items:
            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.balanceDate
        in: query
        required: false
        description: 'The date you want a balance relative to. Default: **the current date**'
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      - name: request.classId
        in: query
        required: false
        description: The class ID of the event for which you want a balance.
        schema:
          type: integer
          format: int32
        example: 123456
      - 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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClientAccountBalancesResponse'
              examples:
                Getclientaccountbalances200Example:
                  summary: Default getClientAccountBalances 200 example
                  x-microcks-default: true
                  value:
                    PaginationResponse: {}
                    Clients:
                    - {}
        '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/client/clientcompleteinfo:
    get:
      tags:
      - Client
      summary: Mindbody This Endpoint Returns Complete Client Information Along with List of
      description: This endpoint returns complete client information along with list of purchased services, contract details, membership details and arrival programs for a specific client.
      operationId: getClientCompleteInfo
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: request.clientId
        in: query
        required: true
        description: Filters results to client with these ID.
        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: consumer-identity-token
        in: header
        required: false
        description: A consumers authorization token to replace the need of clientId in the request.
        schema:
          type: string
        example: example-value
      - name: request.clientAssociatedSitesOffset
        in: query
        required: false
        description: Used to retrieve a client’s pricing options from multiple sites within an organization when the client is associated with more than ten sites. To change which ten sites are searched, change this offset value. A value of 0 means that no sites are skipped and the first ten sites are returned. You can use the `CrossRegionalClientAssociations` value from `GET CrossRegionalClientAssociations` to determine how many sites the client is associated with. Note that you must always have `CrossRegionalLooku
        schema:
          type: integer
          format: int32
        example: 10
      - name: request.crossRegionalLookup
        in: query
        required: false
        description: Used to retrieve a clients pricing options from multiple sites within an organization.When included and set to `true`, it searches a maximum of ten sites with which this client is associated.When a client is associated with more than ten sites, use `ClientAssociatedSitesOffset` as many times as needed to search the additional sites with which the client is associated. You can use the `CrossRegionalClientAssociations` value from `GET CrossRegionalClientAssociations` to determine how many sites th
        schema:
          type: boolean
        example: true
      - name: request.endDate
        in: query
        required: false
        description: 'Filters results to pricing options that are purchased on or before this date. Default: **today’s date**.'
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      - name: request.excludeInactiveSites
        in: query
        required: false
        description: 'When this flag is set to `true`, will exclude inactive sites from the response Default: **false**'
        schema:
          type: boolean
        example: true
      - name: request.requiredClientData
        in: query
        required: false
        description: Used to retrieve list of purchased services, contract details, membership details and arrival programs for a specific client. Default `ClientServices`, `ClientContracts`, `ClientMemberships` and `ClientArrivals` will be returned when `RequiredClientDatais` not set. When `RequiredClientData` is set to `Contracts` then only `ClientContracts` will be returned in the response. When `RequiredClientData` is set to Services then only `ClientServices` will be returned in the response. When `RequiredClie
        schema:
          type: array
          items:
            type: string
        example:
        - example-value
      - name: request.showActiveOnly
        in: query
        required: false
        description: 'When `true`, includes active services only. Set this field to `true` when trying to determine if a client has a service that can pay for a class or appointment. Default: **false**'
        schema:
          type: boolean
        example: true
      - name: request.startDate
        in: query
        required: false
        description: 'Filters results to pricing options that are purchased on or after this date. Default: **today’s date**.'
        schema:
          type: string
          format: date-time
        example: '2026-05-28T14:30:00Z'
      - name: request.uniqueClientId
        in: query
        required: false
        description: The unique ID of the client who is viewing this class list.
        schema:
          type: integer
          format: int32
        example: 123456
      - name: request.useActivateDate
        in: query
        required: false
        description: 'When this flag is set to `true`, the date filtering will use activate date to filter the pricing options. When this flag is set to `false`, the date filtering will use purchase date to filter the pricing options. Default: **false**'
        schema:
          type: boolean
        example: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClientCompleteInfoResponse'
              examples:
                Getclientcompleteinfo200Example:
                  summary: Default getClientCompleteInfo 200 example
                  x-microcks-default: true
                  value:
                    Client: {}
                    ClientServices:
                    - {}
                    ClientContracts:
                    - {}
                    ClientMemberships:
                    - {}
                    ClientArrivals:
                    - {}
        '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/client/clientcontracts:
    get:
      tags:
      - Client
      summary: Mindbody Get Contracts That a Client Has Purchased
      description: Get contracts that a client has purchased.
      operationId: getClientContracts
      parameters:
      - name: version
        in: path
        required: true
        description: version of the api.
        schema:
          type: string
        example: example-value
      - name: request.clientId
        in: query
        required: true
        description: The ID of the client (RssId).
        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.clientAssociatedSitesOffset
        in: query
        required: false
        description: 'Determines how many sites are skipped over when retrieving a client’s cross regional contracts. Used when a client ID is linked to more than ten sites in an organization. Only a maximum of ten site databases are queried when this call is made and `CrossRegionalLookup` is set to `true`. To change which sites are queried, change this offset value. Default: **0**'
        schema:
          type: integer
          format: int32
        example: 10
      - name: request.crossRegionalLookup
        in: query
        required: false
        description: When `true`, indicates that the requesting client’s cross regional contracts are returned, if any.<br /> When `false`, indicates that cross regional contracts are not returned.
        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.offset
        in: query
        required: false
        description: Page offset, defaults to 0.
        schema:
          type: integer
          format: int32
        example: 1
      - name: request.uniqueClientId
        in: query
        required: false
        description: The unique ID of the requested client.
        schema:
          type: integer
          format: int32
        example: 123456
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClientContractsResponse'
              examples:
                Getclientcontracts200Example:
                  summary: Default getClientContracts 200 example
                  x-microcks-default: true
                  value:
                    PaginationResponse: {}
                    Contracts:
                    - {}
        '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/client/clientdirectdebitinfo:
    get:
      tags:
      - Client
      summary: Mindbody This Endpoint Returns Direct Debit Info Stored on a Client's Account
      description: This endpoint returns direct debit info stored on a client's account. This endpoint requires staff user credentials. A null response from this endpoint indicates that the client has no usable direct debit information on their account.Use the POST AddClientDirectDebitInfo endpoint to add direct debit information to a client’s account.
      operationId: getDirectDebitInfo
      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: clientId
        in: query
        required: false
        description: The ID of the client.
        schema:
          type: string
        example: example-value
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectDebitInfo'
              examples:
                Getdirectdebitinfo200Example:
                  summary: Default getDirectDebitInfo 200 example
                  x-microcks-default: true
                  value:
                    NameOnAccount: example-value
                    RoutingNumber: example-value
                    AccountNumber: example-value
                    AccountType: 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: []
    delete:
      tags:
      - Client
      summary: Mindbody This Endpoint Deletes Direct Debit Info from a Client’s Account. This
      description: This endpoint deletes direct debit info from a client’s account. This endpoint requires staff user credentials.
      operationId: deleteDirectDebitInfo
      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: clientId
        in: query
        required: false
        description: The ID of the client.
        schema:
          type: string
        example: example-value
      responses:
        '200':
          description: OK
        '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/client/clientduplicates:
    get:
      tags:
      - Client
      summary: Mindbody This Endpoint Gets Client Records That Would Be Considered Duplicates
      description: This endpoint gets client records that would be considered duplicates based on case-insensitive matching of the client's first name, last name, and email. For there to be results, all three parameters must match a client record. This endpoint requires staff user credentials. An empty `ClientDuplicates` object in the response from this endpoint indicates that there were no client records found that match the first name, last name, and email fields passed in. If one client record is returned, it is not a duplicate itself, but no other client record can be created or updated that would match this client's first name, last name, and email combination. If more than one client record is returned, these clients are duplicates of each other.We recommend discussing with the business how they would like to resolve duplicate records in the event the response contains more than one client record.Businesses can use the Merge Duplicate Clients tool in the Core Business Mode software to resolve the duplicate client records.
      operationId: getClientDuplicates
      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.email
        in: query
        required: false
        description: The client email to match on when searching for duplicates.
        schema:
          type: string
        example: kinlane@example.com
      - name: request.firstName
        in: query
        required: false
        description: The client first name to match on when searching for duplicates.
        schema:
          type: string
        example: example-value
      - name: request.lastName
        in: query
        required: false
        description: The client last name to match on when searching for duplicates.
        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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClientDuplicatesResponse'
              examples:
                Getclientduplicates200Example:
                  summary: Default getClientDuplicates 200 example
                  x-microcks-default: true
                  value:
                    PaginationResponse: {}
                    ClientDuplicates:
                    - {}
        '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/client/clientformulanotes:
    get:
      tags:
      - Client
      summary: 'Mindbody ***QueryParams***: Enables to Retrieve Cross Regional Formula Notes'
      description: '***QueryParams***: Enables to retrieve cross regional formula notes for a client, or for a specific appointment. The two parameters are optional, however at least one must be provided. This endpoint supports pagination.'
      operationId: getClientFormulaNotes
      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.appointmentId
        in: query
        required: false
        description: The appointment ID of an appointment in the studio specified in the header of the request.
        schema:
          type: integer
          format: int32
        example: 123456
      - name: request.clientId
        in: query
        required: false
        description: The client ID of the client whose formula notes are being requested.
        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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClientFormulaNotesResponse'
              examples:
    

# --- truncated at 32 KB (310 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mindbody/refs/heads/main/openapi/mindbody-client-api-openapi.yml