openapi: 3.0.3 info: title: Mindbody Webhooks API version: '1.0' description: Subscription and delivery platform that pushes near real-time event notifications for sites, locations, appointments, classes, clients, sales, and staff. Partners create and manage subscriptions over a REST control plane, and Mindbody pushes JSON events to the registered webhook URL with HMAC-SHA256 signature verification. Authentication uses an API-Key header issued via the Mindbody webhooks developer portal. 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://push-api.mindbodyonline.com description: Production tags: - name: Metrics description: Metrics operations. - name: Subscriptions description: Subscriptions operations. paths: /api/v1/metrics: get: tags: - Metrics summary: Mindbody This Endpoint Gets Metrics for All the Subscriptions Associated with description: This endpoint gets metrics for all the subscriptions associated with your Public API developer account. operationId: getMetrics parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetMetricsResponse' examples: Getmetrics200Example: summary: Default getMetrics 200 example x-microcks-default: true value: items: &id003 - {} '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: [] /api/v1/subscriptions: get: tags: - Subscriptions summary: Mindbody This Endpoint Searches for Subscriptions Associated with Your description: 'This endpoint searches for subscriptions associated with your developer portal account: You can retrieve a specific subscription by calling GET(by ID).' operationId: getSubscriptions parameters: [] responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PushApiResultGetSubscriptionsResponse' examples: Getsubscriptions200Example: summary: Default getSubscriptions 200 example x-microcks-default: true value: errorInformation: &id007 - {} isSuccess: true 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: [] post: tags: - Subscriptions summary: Mindbody This Endpoint Creates a Pending Subscription That is Linked to Your description: This endpoint creates a pending subscription that is linked to your developer portal account. After you have created a subscription, you can activate it using the PATCH Subscription endpoint. operationId: createSubscription parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateSubscriptionRequest' examples: CreatesubscriptionRequestExample: summary: Default createSubscription request example x-microcks-default: true value: eventIds: &id002 - example-value eventSchemaVersion: 1.0 referenceId: example-value webhookUrl: https://example.mindbodyonline.com/resource/abc123 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PushApiResultCreateSubscriptionResponse' examples: Createsubscription200Example: summary: Default createSubscription 200 example x-microcks-default: true value: errorInformation: &id005 - {} isSuccess: true 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: [] /api/v1/subscriptions/{subscriptionId}: delete: tags: - Subscriptions summary: Mindbody This Endpoint Deactivates a Subscription Associated with the Passed ID description: This endpoint deactivates a subscription associated with the passed ID. operationId: deleteSubscription parameters: - name: subscriptionId in: path required: true description: The subscription ID (a GUID) that you are deactivating. schema: type: string example: example-value responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PushApiResultDeactivateSubscriptionResponse' examples: Deletesubscription200Example: summary: Default deleteSubscription 200 example x-microcks-default: true value: errorInformation: &id006 - {} isSuccess: true 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: [] get: tags: - Subscriptions summary: Mindbody This Endpoint Finds and Returns the Single Subscription Associated description: This endpoint finds and returns the single subscription associated with the passed ID. operationId: getSubscription parameters: - name: subscriptionId in: path required: true description: Returns the single location identified by this ID (a GUID). schema: type: string example: example-value responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PushApiResultSubscription' examples: Getsubscription200Example: summary: Default getSubscription 200 example x-microcks-default: true value: errorInformation: &id001 - {} isSuccess: true 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: [] patch: tags: - Subscriptions summary: Mindbody This Endpoint Can Activate a New Subscription or Reactivate an description: "This endpoint can activate a new subscription or reactivate an inactive subscription that is associated with your developer portal account, by updating the status. You can also update your subscription’s eventIds, eventSchemaVersion, referenceId, and webhookUrl." operationId: patchSubscription parameters: - name: subscriptionId in: path required: true description: "The subscription’s ID (a GUID)." schema: type: string example: example-value requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchSubscriptionRequest' examples: PatchsubscriptionRequestExample: summary: Default patchSubscription request example x-microcks-default: true value: eventIds: &id004 - example-value eventSchemaVersion: 1.0 referenceId: example-value status: example-value webhookUrl: https://example.mindbodyonline.com/resource/abc123 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PushApiResultSubscription' examples: Patchsubscription200Example: summary: Default patchSubscription 200 example x-microcks-default: true value: errorInformation: *id001 isSuccess: true 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: [] components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: API-Key description: Mindbody-issued API key (server-to-server). Required on every request. schemas: CreateSubscriptionRequest: type: object description: Implementation of the 'CreateSubscriptionRequest' model. Request used to add a webhook subscription for the requesting developer properties: eventIds: type: array items: type: string description: The events you want to be sent to the specified `webhookUrl`. example: *id002 eventSchemaVersion: type: number format: double description: The event schema version for this subscription. `1` is currently the only accepted value. example: 1.0 referenceId: type: string description: An arbitrary field that you can set to a value of your choice. Mindbody stores and returns this value for the subscription you are creating. Most commonly, this field stores a GUID that you can use in your application. example: example-value webhookUrl: type: string description: The URL that Mindbody posts the event notifications to. Webhook URL Requirements lists considerations and requirements for this URL. example: https://example.mindbodyonline.com/resource/abc123 CreateSubscriptionResponse: type: object description: Implementation of the 'CreateSubscriptionResponse' model. The created subscription properties: eventIds: type: array items: type: string description: The events that are to be sent to this subscription's `webhookUrl`. example: - example-value eventSchemaVersion: type: number format: double description: The event schema version associated with the subscription. Currently, this is always `1`. example: 1.0 messageSignatureKey: type: string description: The subscription security key that you can use to verify an event payload's authenticity. It is important that you store this value because this is the only endpoint that returns it See X-Mindbody Signature Header for more details. example: example-value referenceId: type: string description: An arbitrary ID that can be specified in the POST Subscription request body, and is saved for the requesting developer's use. example: example-value status: type: string description: "The subscription's current status. *Possible Values:* 1. `PendingActivation` - The subscription is created but not receiving event notifications. To start receiving event notifications, set the subscription’s status to `Active` using the PATCH Subscription endpoint. 2. `Active` - The subscription is active and can receive event notifications. 3. `DeactivatedByUser` - You deactivated the subscription. 4. `DeactivatedByAdmin` - Mindbody deactivated your subscription. 5. `DeactivatedTooManyFailedMe" example: example-value statusChangeDate: type: string format: date-time description: The UTC date and time when the subscription's status was last updated. example: '2026-05-28T14:30:00Z' statusChangeMessage: type: string description: A message generated by Mindbody that explains why a subscription's status changed. example: example-value statusChangeUser: type: string description: The first name of the developer or Mindbody staff member who changed the subscription's status. example: example-value subscriptionCreationDateTime: type: string format: date-time description: The UTC date and time when the subscription was created. example: '2026-05-28T14:30:00Z' subscriptionId: type: string description: The subscription's ID (a GUID). example: example-value webhookUrl: type: string description: The webhook to which the listed `eventIds` are sent. example: https://example.mindbodyonline.com/resource/abc123 DeactivateSubscriptionResponse: type: object description: Implementation of the 'DeactivateSubscriptionResponse' model. Returned after a subscription is deactivated properties: deactivationDateTime: type: string format: date-time description: The UTC date and time when the deactivation took place. example: '2026-05-28T14:30:00Z' message: type: string description: A message about the deactivation request. Unless an error occurs, this message always `"Subscription deactivated successfully."`. example: example-value referenceId: type: string description: The subscription's reference ID, assigned when the subscription was created. example: example-value subscriptionId: type: string description: The subscription ID (a GUID). example: example-value GetMetricsResponse: type: object description: Implementation of the 'GetMetricsResponse' model. A wrapper for returning subscription metrics to API users properties: items: type: array items: $ref: '#/components/schemas/Metric' description: Contains the metrics for the passed subscription example: *id003 GetSubscriptionsResponse: type: object description: Implementation of the 'GetSubscriptionsResponse' model. A wrapper for a get subscriptions request properties: items: type: array items: $ref: '#/components/schemas/Subscription' description: A list of subscriptions example: - {} Metric: type: object description: Implementation of the 'Metric' model. Metrics for subscription properties: creationDateTime: type: string format: date-time description: The UTC date and time when the subscription was created. example: '2026-05-28T14:30:00Z' messagesAttempted: type: integer format: int32 description: The number of event notifications Mindbody attempted to deliver to the subscription `webhookUrl`, including retries. example: 1 messagesDelivered: type: integer format: int32 description: The number of event notifications Mindbody successfully delivered to the subscription `webhookUrl`. example: 1 messagesFailed: type: integer format: int32 description: The number of event notifications that Mindbody stopped trying to send after 3 hours. example: 1 messagesUndelivered: type: integer format: int32 description: The number of event notifications where MINDBODY received a failure response from the subscription `webhookUrl`. example: 1 status: type: string description: "The subscription's current status. **Possible Values**:
`PendingActivation` - The subscription is created but not receiving event notifications.To start receiving event notifications, set the subscription’s status to Active using the PATCH Subscription endpoint.
`Active` - The subscription is active and can receive event notifications.
`DeactivatedByUser` - You deactivated the subscription.
`DeactivatedByAdmin` - Mindbody deactivated your subscription.
`DeactivatedT" example: example-value statusChangeDate: type: string format: date-time description: The UTC date and time when the subscription `status` was last updated. example: '2026-05-28T14:30:00Z' subscriptionId: type: string description: The subscription's ID (a GUID). example: example-value PatchSubscriptionRequest: type: object description: Implementation of the 'PatchSubscriptionRequest' model. A request to patch update a subscription properties: eventIds: type: array items: type: string description: A list of event IDs that you want to update or subscribe to. example: *id004 eventSchemaVersion: type: number format: double description: The event schema version associated with the subscription. Currently, this is always `1`. example: 1.0 referenceId: type: string description: An arbitrary field that you can set to a value of your choice. Mindbody stores and returns this value for the subscription you are activating. Most commonly, this field stores a GUID that you can use in your application. example: example-value status: type: string description: "The subscription’s current status, as of the last update." example: example-value webhookUrl: type: string description: The URL registered as the target of the webhook deliveries. Mindbody posts the event notifications to this URL. Webhook URL Requirements lists considerations and requirements for this URL. example: https://example.mindbodyonline.com/resource/abc123 PushApiError: type: object description: Implementation of the 'PushApiError' model. An error returned by the push API for application errors properties: errorCode: type: integer format: int32 description: A unique ID for the returned error code example: 1 errorMessage: type: string description: A message indicating what went wrong example: example-value errorType: type: string description: A category/type associated with the error example: example-value PushApiResultCreateSubscriptionResponse: type: object description: Implementation of the 'PushApiResult[CreateSubscriptionResponse]' model. A result returned for every request to the push API properties: errorInformation: type: array items: $ref: '#/components/schemas/PushApiError' description: The model property of type List[PushApiError]. example: *id005 isSuccess: type: boolean description: The model property of type bool. example: true value: $ref: '#/components/schemas/CreateSubscriptionResponse' description: The created subscription PushApiResultDeactivateSubscriptionResponse: type: object description: Implementation of the 'PushApiResult[DeactivateSubscriptionResponse]' model. A result returned for every request to the push API properties: errorInformation: type: array items: $ref: '#/components/schemas/PushApiError' description: The model property of type List[PushApiError]. example: *id006 isSuccess: type: boolean description: The model property of type bool. example: true value: $ref: '#/components/schemas/DeactivateSubscriptionResponse' description: Returned after a subscription is deactivated PushApiResultGetSubscriptionsResponse: type: object description: Implementation of the 'PushApiResult[GetSubscriptionsResponse]' model. A result returned for every request to the push API properties: errorInformation: type: array items: $ref: '#/components/schemas/PushApiError' description: The model property of type List[PushApiError]. example: *id007 isSuccess: type: boolean description: The model property of type bool. example: true value: $ref: '#/components/schemas/GetSubscriptionsResponse' description: A wrapper for a get subscriptions request PushApiResultSubscription: type: object description: Implementation of the 'PushApiResult[Subscription]' model. A result returned for every request to the push API properties: errorInformation: type: array items: $ref: '#/components/schemas/PushApiError' description: The model property of type List[PushApiError]. example: *id001 isSuccess: type: boolean description: The model property of type bool. example: true value: $ref: '#/components/schemas/Subscription' description: A webhook subscription Subscription: type: object description: Implementation of the 'Subscription' model. A webhook subscription properties: eventIds: type: array items: type: string description: The events that are to be sent to this subscription's `webhookUrl`. example: - example-value eventSchemaVersion: type: number format: double description: The event schema version associated with the subscription. Currently, this is always `1`. example: 1.0 referenceId: type: string description: An arbitrary ID that can be specified in the POST Subscription request body, and is saved for the requesting developer's use. example: example-value status: type: string description: "The subscription's current status. *Possible Values:* 1. `PendingActivation` - The subscription is created but not receiving event notifications. To start receiving event notifications, set the subscription’s status to `Active` using the PATCH Subscription endpoint. 2. `Active` - The subscription is active and can receive event notifications. 3. `DeactivatedByUser` - You deactivated the subscription. 4. `DeactivatedByAdmin` - Mindbody deactivated your subscription. 5. `DeactivatedTooManyFailedMe" example: example-value statusChangeDate: type: string format: date-time description: The UTC date and time when the subscription's status was last updated. example: '2026-05-28T14:30:00Z' statusChangeMessage: type: string description: A message generated by Mindbody that explains why a subscription's status changed. example: example-value statusChangeUser: type: string description: The first name of the developer or Mindbody staff member who changed the subscription's status. example: example-value subscriptionCreationDateTime: type: string format: date-time description: The UTC date and time when the subscription was created. example: '2026-05-28T14:30:00Z' subscriptionId: type: string description: The subscription's ID (a GUID). example: example-value webhookUrl: type: string description: The webhook to which the listed `eventIds` are sent. example: https://example.mindbodyonline.com/resource/abc123 security: - ApiKeyAuth: []