Mindbody · Schema

Service

Implementation of the 'Service' model.

FitnessWellnessBeautySchedulingBookingPoint-of-SaleStudiosSalonsSpasWebhook

Properties

Name Type Description
Price number The cost of the pricing option when sold at a physical location.
OnlinePrice number The cost of the pricing option when sold online.
TaxIncluded number The amount of tax included in the price, if inclusive pricing is enabled.
ProgramId integer The ID of the program that this pricing option applies to.
TaxRate number The tax rate applied to the pricing option. This field is populated only when you include a `LocationID` in the request.
ProductId integer The unique ID of this pricing option. This is the `PurchasedItems[].Id` returned from GET Sales.
Id string The barcode ID of the pricing option. This is the `PurchasedItems[].BarcodeId` returned from GET Sales.
Name string The name of the pricing option.
Count integer The initial count of usages available for the pricing option.
SellOnline boolean When true, filters to the pricing options that can be sold online. Default: *false*
SaleInContractOnly boolean When `true`, indicates that the pricing option is allowed to be purchased in a contract or package. When `false`, indicates that the pricing option is not allowed to be purchased in a contract or pack
Type string The type of the pricing option, either Drop-in, Series, or Unlimited.
ExpirationType string The date the pricing option begins its activation, either the date of sale or the date the client first used it for a visit.
ExpirationUnit string The unit, either days or months, of `ExpirationLength`, indicating how long the pricing option is active for.
ExpirationLength integer The number of days or months that the pricing option is active for.
RevenueCategory string The revenue category of the pricing option.
MembershipId integer The ID that this pricing option grants membership to.
SellAtLocationIds array The location IDs where this pricing option is sold.
UseAtLocationIds array The location IDs where this pricing option may be used.
Priority string The priority of the pricing option, either High, Medium, or Low.
IsIntroOffer boolean Indicates if this pricing option is an introductory offer.
IntroOfferType string When `IsIntroOffer` is true, this indicates if this introductory offer may be purchased by new clients or new and existing clients.
IsThirdPartyDiscountPricing boolean Indicates whether this pricing option is sold at discounted rates by third-party services, such as ClassPass.
Program string The name of the service category the pricing option belongs to.
Discontinued boolean If the pricing option has been marked discontinued.
RestrictToMembershipIds array Restricted to members of these membership ids.
ApplyMemberDiscountsOfMembershipIds array Discounts applied of these membership ids.
View JSON Schema on GitHub

JSON Schema

public-api-v6-service-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/mindbody/refs/heads/main/json-schema/public-api-v6-service-schema.json",
  "title": "Service",
  "description": "Implementation of the 'Service' model.",
  "type": "object",
  "properties": {
    "Price": {
      "type": "number",
      "format": "double",
      "description": "The cost of the pricing option when sold at a physical location.",
      "example": 49.99
    },
    "OnlinePrice": {
      "type": "number",
      "format": "double",
      "description": "The cost of the pricing option when sold online.",
      "example": 49.99
    },
    "TaxIncluded": {
      "type": "number",
      "format": "double",
      "description": "The amount of tax included in the price, if inclusive pricing is enabled.",
      "example": 1.0
    },
    "ProgramId": {
      "type": "integer",
      "format": "int32",
      "description": "The ID of the program that this pricing option applies to.",
      "example": 123456
    },
    "TaxRate": {
      "type": "number",
      "format": "double",
      "description": "The tax rate applied to the pricing option. This field is populated only when you include a `LocationID` in the request.",
      "example": 1.0
    },
    "ProductId": {
      "type": "integer",
      "format": "int32",
      "description": "The unique ID of this pricing option. This is the `PurchasedItems[].Id` returned from GET Sales.",
      "example": 123456
    },
    "Id": {
      "type": "string",
      "description": "The barcode ID of the pricing option. This is the `PurchasedItems[].BarcodeId` returned from GET Sales.",
      "example": "example-value"
    },
    "Name": {
      "type": "string",
      "description": "The name of the pricing option.",
      "example": "Sunset Yoga Studio"
    },
    "Count": {
      "type": "integer",
      "format": "int32",
      "description": "The initial count of usages available for the pricing option.",
      "example": 10
    },
    "SellOnline": {
      "type": "boolean",
      "description": "When true, filters to the pricing options that can be sold online. Default: *false*",
      "example": true
    },
    "SaleInContractOnly": {
      "type": "boolean",
      "description": "When `true`, indicates that the pricing option is allowed to be purchased in a contract or package. When `false`, indicates that the pricing option is not allowed to be purchased in a contract or package.",
      "example": true
    },
    "Type": {
      "type": "string",
      "description": "The type of the pricing option, either Drop-in, Series, or Unlimited.",
      "example": "example-value"
    },
    "ExpirationType": {
      "type": "string",
      "description": "The date the pricing option begins its activation, either the date of sale or the date the client first used it for a visit.",
      "example": "example-value"
    },
    "ExpirationUnit": {
      "type": "string",
      "description": "The unit, either days or months, of `ExpirationLength`, indicating how long the pricing option is active for.",
      "example": "example-value"
    },
    "ExpirationLength": {
      "type": "integer",
      "format": "int32",
      "description": "The number of days or months that the pricing option is active for.",
      "example": 1
    },
    "RevenueCategory": {
      "type": "string",
      "description": "The revenue category of the pricing option.",
      "example": "example-value"
    },
    "MembershipId": {
      "type": "integer",
      "format": "int32",
      "description": "The ID that this pricing option grants membership to.",
      "example": 123456
    },
    "SellAtLocationIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int32"
      },
      "description": "The location IDs where this pricing option is sold.",
      "example": [
        1
      ]
    },
    "UseAtLocationIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int32"
      },
      "description": "The location IDs where this pricing option may be used.",
      "example": [
        1
      ]
    },
    "Priority": {
      "type": "string",
      "description": "The priority of the pricing option, either High, Medium, or Low.",
      "example": "example-value"
    },
    "IsIntroOffer": {
      "type": "boolean",
      "description": "Indicates if this pricing option is an introductory offer.",
      "example": true
    },
    "IntroOfferType": {
      "type": "string",
      "description": "When `IsIntroOffer` is true, this indicates if this introductory offer may be purchased by new clients or new and existing clients.",
      "example": "example-value"
    },
    "IsThirdPartyDiscountPricing": {
      "type": "boolean",
      "description": "Indicates whether this pricing option is sold at discounted rates by third-party services, such as ClassPass.",
      "example": true
    },
    "Program": {
      "type": "string",
      "description": "The name of the service category the pricing option belongs to.",
      "example": "example-value"
    },
    "Discontinued": {
      "type": "boolean",
      "description": "If the pricing option has been marked discontinued.",
      "example": true
    },
    "RestrictToMembershipIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int32"
      },
      "description": "Restricted to members of these membership ids.",
      "example": [
        1
      ]
    },
    "ApplyMemberDiscountsOfMembershipIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int32"
      },
      "description": "Discounts applied of these membership ids.",
      "example": [
        1
      ]
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/public-api-v6-service"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.