Toast Menus API

The Toast Menus API provides complete menu data retrieval including items, modifiers, prices, and availability. Enables POS-synchronized menu display for online ordering and third-party menu management integrations.

OpenAPI Specification

toast-menus-openapi.yaml Raw ↑
swagger: '2.0'
info:
  version: 2.4.1
  title: Menus API
  description: |
    Returns information about a restaurant's menus.

    _Important:_ Ordering integrations should use menus API V3. Other integration types should continue to use menus API V2 until further notice. See <a href="https://doc.toasttab.com/doc/devguide/apiComparingMenusAPIV2AndV3.html">Comparing menus API V2 and V3</a> for more information.
  contact:
    name: Toast developer support
schemes:
- https
host: toast-api-server
basePath: /menus/v2
consumes:
- application/json
produces:
- application/json
securityDefinitions:
  oauth2:
    description: |
      Access to Toast APIs, specific endpoints, 
      and specific API endpoint operations is 
      controlled by the scopes that are associated 
      with your API account. 

      A full reference for Toast API scopes and 
      their capabilities can be found in the
      [_Toast Developer Guide_](https://doc.toasttab.com/doc/devguide/apiScopes.html).
    type: oauth2
    tokenUrl: https://toast-api-server/authentication/v1/authentication/login
    flow: application
    scopes:
      menus:read: |
        Allows reading from menus API V2.
definitions:
  Metadata:
    type: object
    description: |
      Information about the last date and time that this restaurant's menu data was updated.
    properties:
      restaurantGuid:
        description: |
          A unique identifier for this restaurant, assigned by the Toast POS system.
        type: string
        format: uuid
      lastUpdated:
        description: |
          The most recent date and time that this menu's data was published. Use this value to determine if you need to refresh your menu data. The `lastUpdated` value uses the absolute timestamp format describe in the <a href="https://doc.toasttab.com/doc/devguide/api_dates_and_timestamps.html">Dates and timestamps</a> section of the Toast Developer Guide.
        type: string
  Restaurant:
    type: object
    description: |
      Information about the restaurant whose menu data has been retrieved.
    properties:
      restaurantGuid:
        description: |
          A unique identifier for this restaurant, assigned by the Toast POS system.
        type: string
        format: uuid
      lastUpdated:
        description: |
          The most recent date and time that this menu's data was published. Use this value to determine if you need to refresh your menu data. The `lastUpdated` value uses the absolute timestamp format describe in the <a href="https://doc.toasttab.com/doc/devguide/api_dates_and_timestamps.html">Dates and timestamps</a> section of the Toast Developer Guide.
        type: string
      restaurantTimeZone:
        description: |
          The name of the restaurant's time zone in the IANA time zone database https://www.iana.org/time-zones. For example, "America/New_York".
        type: string
      menus:
        type: array
        description: |
          An array of `Menu` objects that represent the published menus used by this restaurant.
        items:
          $ref: '#/definitions/Menu'

      modifierGroupReferences:
        description: |
          A map of `ModifierGroup` objects that define the modifier groups used by this restaurant. Each `ModifierGroup` object is presented as a key/value pair. A pair's key matches the `referenceId` of the object contained in the pair's value, as shown below:
          ```
            "modifierGroupReferences": {
              ...
              "3": {
                "referenceId": 3,
                "name": "Toppings",
                "guid": "58b79986-f88f-411d-ba18-14b1e2441e9d",
                  ...
                },
                ...
                "modifierOptionReferences": [
                  10,
                  11
                ],
                ...
              },
              ...
            },
          ```

          Other menu entities refer to modifier groups using their `referenceId`. Having a key that matches the `referenceId` allows you to locate the correct modifier group in the `modifierGroupReferences` map. For more information on the `referenceId` value, see the <a href="https://doc.toasttab.com/doc/devguide/apiUnderstandingGuidsEntityIdentifiersAndMultilocationIds_V2.html">Understanding GUIDs, referenceIds, and multilocationIds</a> section of the Toast Developer Guide.
        properties:
          identifier:
            type: integer
        additionalProperties:
          $ref: '#/definitions/ModifierGroup'

      modifierOptionReferences:
        description: |
          A map of `ModifierOption` objects that define the modifier options used by this restaurant. Each `ModifierOption` object is presented as a key/value pair. A pair's key matches the `referenceId` of the object contained in the pair's value, as shown below:
          ```
          "modifierOptionReferences": {
            ...
            "10": {
              "referenceId": 10,
              "name": "Mushrooms",
              "guid": "fa24fee9-76c4-40ba-ae3c-7dfccafdd8d3",
              ...
            },
            "11": {
              "referenceId": 11,
              "name": "Onions",
              "guid": "afee6be7-8280-4c69-a170-9fdf4c76bf7b",
              ...
            },
            ...
          }
          ```

          Other menu entities refer to modifier options using their `referenceId`. Having a key that matches the `referenceId` allows you to locate the correct modifier option in the `modifierOptionReferences` map. For more information on the `referenceId` value, see the <a href="https://doc.toasttab.com/doc/devguide/apiUnderstandingGuidsEntityIdentifiersAndMultilocationIds_V2.html">Understanding GUIDs, referenceIds, and multilocationIds</a> section of the Toast Developer Guide.
        properties:
          identifier:
            type: integer
        additionalProperties:
          $ref: '#/definitions/ModifierOption'

      preModifierGroupReferences:
        description: |
          A map of `PreModifierGroup` objects that define the premodifier groups used by this restaurant. Each `PreModifierGroup` object is presented as a key/value pair. A pair's key matches the `referenceId` of the object contained in the pair's value, as shown below:
          ```
          "preModifierGroupReferences": {
            "22": {
              "referenceId": 22,
              "guid": "07a1a94d-6f7b-46d5-a916-a07fa16bb8e8",
              "name": "PreModGroup",
              "preModifiers": [
                {
                  "guid": "ad45e697-9356-468e-b7b4-1b23f4d4b8a5",
                  "name": "EXTRA",
                  "fixedPrice": 1.0,
                  "multiplicationFactor": null,
                  "displayMode": "PREFIX"
                },
                {
                  "guid": "483dd4cf-acea-4373-ae76-5f7efd0d529d",
                  "name": "NO",
                  "fixedPrice": 0.0,
                  "multiplicationFactor": null,
                  "displayMode": "PREFIX"
                }
              ]
            },
          },            
          ```

          Other menu entities refer to premodifier groups using their `referenceId`. Having a key that matches the `referenceId` allows you to locate the correct premodifier group in the `preModifierGroupReferences` map. For more information on the `referenceId` value, see the <a href="https://doc.toasttab.com/doc/devguide/apiUnderstandingGuidsEntityIdentifiersAndMultilocationIds_V2.html">Understanding GUIDs, referenceIds, and multilocationIds</a> section of the Toast Developer Guide.          
        properties:
          identifier:
            type: integer
        additionalProperties:
          $ref: '#/definitions/PreModifierGroup'

  Menu:
    type: object
    description: |
      Information about a menu configured for this restaurant.
    properties:
      name:
        description: |
          A descriptive name for this menu, for example, "Food" or "Drinks".
        type: string
      guid:
        description: |
          A unique identifier for this menu, assigned by the Toast POS system.
        type: string
      multiLocationId:
        $ref: '#/definitions/MultiLocationId'
      masterId:
        $ref: '#/definitions/MasterId'
      description:
        description: |
          An optional short description for this menu.
        type: string
      posName:
        $ref: '#/definitions/PosName'
      posButtonColorLight:
        $ref: '#/definitions/PosButtonColorLight'
      posButtonColorDark:
        $ref: '#/definitions/PosButtonColorDark'
      highResImage:
        type: string
        description: |
          The URL to a high resolution image that has been uploaded for this menu. The image file must be in JPG, PNG, or SVG format. The `highResImage` value is only available if the Toast Kiosk module has been enabled for this restaurant. This value is null if no high resolution image has been specified.
        x-nullable: true
      image:
        $ref: '#/definitions/Image'
      visibility:
        $ref: '#/definitions/Visibility'
      availability:
        type: object
        description: |
          An `Availability` object with information about the days and times this menu is available. If the menu is available 24 hours per day, 7 days per week, this `Availability` object contains a single value, `alwaysAvailable`, that is set to TRUE. If the menu is not available 24 hours per day, 7 days per week, the `alwaysAvailable` value is set to FALSE and the object will also contain a `schedule` value that provides detailed information about the specific days and times this menu is available.

          **_Important_**
          The orders API does not validate against the availability settings of a menu, meaning it is possible to submit an order for an item on a menu when it is not currently available. For this reason, it is particularly important that you check a menu’s `availability` value before placing an order from it.
        items:
          $ref: '#/definitions/Availability'
      menuGroups:
        type: array
        description: |
          An array of the `MenuGroup` objects contained in this menu.
        minItems: 0
        items:
          $ref: '#/definitions/MenuGroup'
  MenuGroup:
    type: object
    description: |
      Information about a menu group configured for this restaurant, including an array of menu items contained in the group.
    properties:
      name:
        description: |
          A descriptive name for this menu group, for example, "Appetizers" or "Sandwiches".
        type: string
      guid:
        description: |
          A unique identifier for this menu group, assigned by the Toast POS system.
        type: string
      multiLocationId:
        $ref: '#/definitions/MultiLocationId'
      masterId:
        $ref: '#/definitions/MasterId'
      description:
        description: |
          An optional short description of this menu group.
        type: string
      posName:
        $ref: '#/definitions/PosName'
      posButtonColorLight:
        $ref: '#/definitions/PosButtonColorLight'
      posButtonColorDark:
        $ref: '#/definitions/PosButtonColorDark'
      image:
        $ref: '#/definitions/Image'
      visibility:
        $ref: '#/definitions/Visibility'
      itemTags:
        type: array
        description: |
          An array of `ItemTag` objects that are assigned to this menu group. Item tags are used to assign identifying characteristics, for example, vegetarian, gluten-free, or alcohol.
        items:
          $ref: '#/definitions/ItemTag'
      menuGroups:
        type: array
        description: |
          An array of the `MenuGroup` objects that are children of this menu group. The array is empty if the menu group has no child menu groups.
        minItems: 0
        items:
          $ref: '#/definitions/MenuGroup'
      menuItems:
        type: array
        description: |
          An array of the `MenuItem` objects contained in this menu group.
        minItems: 0
        items:
          $ref: '#/definitions/MenuItem'
  MenuItem:
    type: object
    description: |
      Information about a menu item configured for this restaurant.
    properties:
      name:
        description: |
          A descriptive name for this menu item, for example, "Caesar Salad" or "Turkey Sandwich".

          To avoid menu ingestion failures, if the `name` value is an empty string or `null`, the menus API updates it to the string `Missing name` in the returned menus data.

          Note that, while this solution allows menu ingestion to proceed without failure, it does allow a menu item with the name `Missing name` to appear in a restaurant’s menu, creating potential confusion for guests and employees. Also, the menus API only updates the returned data. It does not update the menu item in the Toast database, meaning the name will still be blank when looking at the menu item in Toast Web.

          To fix the issue in Toast Web, the restaurant must identify the parent menu entity for the menu item or modifier, view its details page in Toast Web, and then locate and fix the item with the blank name.
        type: string
      kitchenName:
        type: string
        description: |
          The name of the menu item as it appears on kitchen tickets. The `kitchenName` can include both numbers and letters. This value contains an empty string if a kitchen name has not been configured for the menu item.
      guid:
        description: |
          A unique identifier for this menu item, assigned by the Toast POS system.
        type: string
      multiLocationId:
        $ref: '#/definitions/MultiLocationId'
      masterId:
        $ref: '#/definitions/MasterId'
      description:
        description: |
          An optional short description of this menu item.
        type: string
      posName:
        $ref: '#/definitions/PosName'
      posButtonColorLight:
        $ref: '#/definitions/PosButtonColorLight'
      posButtonColorDark:
        $ref: '#/definitions/PosButtonColorDark'
      image:
        $ref: '#/definitions/Image'
      visibility:
        $ref: '#/definitions/Visibility'
      price:
        type: number
        format: double
        description: |
          The price of this menu item.

          In Toast Web, menu items may have prices assigned to them individually, or they may inherit them from a parent menu group. The `price` value reflects the menu item's fully resolved pricing configuration in the following ways:

            * For base prices, the `price` value is populated with the specified base price.
            
            * For menu-specific prices, the `price` value is resolved based on the current menu. For example, consider a menu item that is included in both Lunch and Dinner menus and is priced at $10 for the Lunch menu and $12 for the Dinner menu. In the fully resolved JSON returned by the menus API, this menu item would appear twice, once as a child of the Lunch menu with a `price` value of $10, and again as a child of the Dinner menu with a `price` value of $12.
            
            If this same menu item is added to a Breakfast menu but a menu-specific price is not defined for the Breakfast menu, then the `price` value for the instance of the menu item that appears in the Breakfast menu JSON is populated with the base price from the menu-specific price configuration. Menu-specific price configurations include a base price that functions as a default price when a menu-specific price cannot be resolved.

            * For location-specific prices, the `price` value is resolved based on the current location. For example, consider a menu item that costs $15 in the Boston location and $20 in the New York location. When you retrieve menu data for the Boston location, this menu item's `price` value is $15. When you retrieve menu data for the New York location, the menu item's `price` value is $20.
            
            * For time-specific prices, the `price` value is populated with the base price that is specified as part of the time-specific price configuration. This base price functions as a default price for the menu item during times of the day when a time-specific price has not been defined. For example, consider a menu item that costs $8 from noon to 2pm and $10 during the rest of the day. The `price` value for this item would be $10. You must use the `pricingStrategy` and `pricingRules` values for this menu item to calculate the price of the item during time periods for which a time-specific price has been defined.
            
            * For size prices, the `price` value is null. You must use this menu item's `pricingStrategy` and `pricingRules` values to calculate the price of the item for different sizes.
            
            * For open prices, the `price` value is null.

            
            If the menu item is priced using a price level, the `price` value reflects the pricing strategy used for that price level, using the same logic described above. For example, consider a price level that applies a size price to the menu items it is assigned to. In this scenario, the `price` value is null and you must use the menu item's `pricingStrategy` and `pricingRules` values to calculate the price of the item for different sizes.

            For more information on menu item pricing and pricing strategies, see the <a href="https://doc.toasttab.com/doc/platformguide/adminToastPosPricingFeatures.html">Menu Pricing</a> section in the Toast Platform Guide.
        x-nullable: true
      pricingStrategy:
        type: string
        enum:
        - BASE_PRICE
        - MENU_SPECIFIC_PRICE
        - TIME_SPECIFIC_PRICE
        - SIZE_PRICE
        - OPEN_PRICE
        description: |
          A string that represents the pricing strategy used for this menu item.

          You use the `pricingStrategy` value, in conjunction with the `pricingRules` value, to calculate the price for a menu item that uses the Time Specific Price or Size Price pricing strategy.

          In Toast Web, menu items may have pricing strategies assigned to them individually, or they may inherit them from a parent menu group. The `pricingStrategy` value indicates the menu item's fully resolved pricing strategy. If the menu item is priced using the:
            * Base Price pricing strategy, then the `pricingStrategy` value is BASE_PRICE.
            * Menu Specific Price pricing strategy, then the `pricingStrategy` value is MENU_SPECIFIC_PRICE.
            * Time Specific Price pricing strategy, then the `pricingStrategy` value is TIME_SPECIFIC_PRICE.
            * Size Price pricing strategy, then the `pricingStrategy` value is SIZE_PRICE.
            * Open Price pricing strategy, then the `pricingStrategy` value is OPEN_PRICE.

          If the menu item is priced using the Location Specific Price pricing strategy, then the `pricingStrategy` value indicates which pricing strategy is used at the current location. For example, consider a menu item that uses a menu-specific price at the Boston location and a base price at the New York location. When you retrieve the menu data for the Boston location, the `pricingStrategy` for the menu item is MENU_SPECIFIC_PRICE. When you retrieve menu data for the New York location, the `pricingStrategy` for the menu item is BASE_PRICE.

          If the menu item is priced using a price level, then the `pricingStrategy` value indicates which pricing strategy is used for that price level. For example, if the "Draft Beer" pricing level uses a time-specific price, then the `pricingStrategy` value for a menu item that is assigned the "Draft Beer" pricing level is TIME_SPECIFIC_PRICE.

          If the `pricingStrategy` value is BASE_PRICE or MENU_SPECIFIC_PRICE, you can retrieve the menu item's price from its `price` value.

          If the `pricingStrategy` value is TIME_SPECIFIC_PRICE or SIZE_PRICE, you must use the rules provided in _this menu item's_ `pricingRules` value to calculate the price for it.
      pricingRules:
        type: object
        description: |
          A `PricingRules` object with information about how to calculate the price for this menu item. You use a menu item's `pricingRules` value, in conjunction with its `pricingStrategy` value, to calculate a price for a menu item that uses a size-specific or time-specific price.

          The `pricingRules` object takes different forms depending on the pricing strategy configured for the menu item. Use the `pricingStrategy` value to determine which pricing strategy has been used so that you can properly interpret the data in the `pricingRules` object. For the BASE_PRICE, and MENU_SPECIFIC_PRICE pricing strategies, the `pricingRules` object is null because you can retrieve the price from the `price` value without additional calculation. For the OPEN_PRICE pricing strategy, the `pricingRules` object is also null (the price of an open menu item is specified when it is ordered). For the TIME_SPECIFIC_PRICE and SIZE_PRICE pricing strategies, the `PricingRules` object contains additional values that you use to calculate the menu item's price.
        items:
          $ref: '#/definitions/PricingRules'
        x-nullable: true

      isDeferred:
        type: boolean
        description: |
          Indicates whether this menu item should be considered deferred revenue.

      isDiscountable:
        type: boolean
        description: |
          Indicates whether this menu item can be discounted.

          **_Important_** The orders API _does not validate_ against the `isDiscountable` value. If you submit an order that applies a discount to a menu item whose `isDiscountable` value is FALSE, the orders API will not fail the order but it will set the discount amount on the menu item to $0.00. If you are using the menus API to build an ordering application, be sure to inspect the `isDiscountable` value of the menu items to ensure that your ordering application does not allow an item to be discounted if its `isDiscountable` value is FALSE.
      salesCategory:
        $ref: '#/definitions/SalesCategory'
      taxInfo:
        type: array
        description: |
          An array of GUIDs for the tax rates that apply to this menu item.

          Note that a menu item's tax rates may get overridden if a modifier option is applied to it and that modifier option is configured so that it overrides its parent menu item's tax rates. See <a href="https://doc.toasttab.com/doc/devguide/apiUsingTaxInfoAndModifierOptionTaxInfoToCalculateTaxesForMenuItemsAndModOptions.html">Using taxInfo and modifierOptionTaxInfo to calculate taxes for menu items and modifier options</a> in the Toast Developer Guide for more information.   
                    
          To retrieve full configuration data for a tax rate, use the `/taxRates/{guid}` endpoint in the configuration API.

          _Important:_ The `taxInfo` value is intended to help you display prices but the `/prices` endpoint of the orders API is the only supported way to determine the prices of orders that you submit to the orders API. See <a href="https://doc.toasttab.com/doc/devguide/apiOrderPrices.html">Order prices</a> in the Toast Developer Guide for more information.
        items:
          type: string
      taxInclusion:
        type: string
        enum:
        - TAX_INCLUDED
        - TAX_NOT_INCLUDED
        - SMART_TAX
        description: |
          A string that represents the tax inclusion setting for this menu item. Possible values include:

          * `TAX_INCLUDED`: The menu item's price includes taxes. You should not display additional tax on top of the menu item price in your ordering UI.
          * `TAX_NOT_INCLUDED`: The menu item's price does not include taxes. You should display tax values alongside the menu item price in your ordering UI.
          * `SMART_TAX`: The menu item is using smart tax, a feature that allows a restaurant to configure menu item prices to include or not include taxes, depending on the section of the restaurant that the item is ordered in (for example, the bar or the dining room). For example, a guest can order an item at either the bar or in the main dining room. To prevent bartenders from having to handle coins, which can slow down service, and to make tipping easier, the restaurant wants the price of the item to be a whole number that includes tax when it is ordered at the bar. In the main dining room, where speed of service is less of a concern, the restaurant doesn't want the item's price to include tax, so that it doesn't lose out on the extra revenue.

          Typically, the smart tax setting is used for in-store workflows where the efficiency of money handling is a priority. As such, it doesn't apply to online ordering integrations. If a menu item's `taxInclusion` value is set to `SMART_TAX`, your ordering integration should treat the menu item as if tax is not included. For more information on the smart tax feature, see <a href="https://doc.toasttab.com/doc/platformguide/adminSmartTax.html">Smart tax</a> in the Toast Platform Guide.

          _Note:_ A menu item's tax inclusion setting is inherited by any modifiers that are applied to that menu item. For more information, see <a href="https://doc.toasttab.com/doc/platformguide/adminTaxesOnModifiers.html#adminModifierTaxInteraction">Tax functionality interaction</a> in the Toast Platform Guide.
      itemTags:
        type: array
        description: |
          An array of `ItemTag` objects that are assigned to this menu item. Item tags are used to assign identifying characteristics to a menu item, for example, vegetarian, gluten-free, or alcohol.
        items:
          $ref: '#/definitions/ItemTag'
      plu:
        type: string
        description: |
          The price lookup (PLU) code for this menu item. The PLU code can include both numbers and letters. This value contains an empty string if a PLU code has not been defined.
      sku:
        type: string
        description: |
          The stock keeping unit (SKU) identifier for this menu item. The SKU identifier can include both numbers and letters. This value contains an empty string if a SKU has not been defined.
      calories:
        type: integer
        description: |
          The number of calories in this menu item. The calories value can be any positive or negative integer, or zero. This value is null if a calories amount has not been configured for the menu item.
        x-nullable: true
      contentAdvisories:
        $ref: '#/definitions/ContentAdvisories'
      unitOfMeasure:
        type: string
        enum:
        - NONE
        - LB
        - OZ
        - KG
        - G
        - GAL
        - L
        - ML
        - FL_OZ
        - M
        - CM
        - FT
        - IN
        - YD
        description: |
          The unit of measure used to determine the price of the item. For example, $10.00 per gram.

          The default is `NONE`, which means that the item is not meant to be measured during a sale.

          Values are:
          * `NONE` - The item is not meant to be measured.
          * `LB` - Weighed in pounds.
          * `OZ` - Weighed in ounces.
          * `KG` - Weighed in kilograms.
          * `G` - Weighed in grams.
          * `GAL` - Measured in gallons.
          * `L` - Measured in liters.
          * `ML` - Measured in milliliters.
          * `FL_OZ` - Measured in fluid ounces.
          * `M` - Measured in meters.
          * `CM` - Measured in centimeters.
          * `FT` - Measured in feet.
          * `IN` - Measured in inches.
          * `YD` - Measured in yards.
      portions:
        type: array
        description: |
          An array of `Portion` objects that define the portions that can be used with this menu item. For example, for a pizza menu item, you could define 1st Half and 2nd Half portions. See <a href="https://doc.toasttab.com/doc/platformguide/adminPortionsOverview.html">Portions overview</a> in the Toast Platform Guide for more information on portions.
        minItems: 0
        items:
          $ref: '#/definitions/Portion'
      prepTime:
        type: integer
        description: |
          The amount of time, in seconds, that it takes to prepare this menu item. This value is null if a prep time has not been specified for the menu item.<br>
          <br>
          *Related topics*<br>
          <a href="https://doc.toasttab.com/doc/platformguide/adminFireByPrepTime.html">Using prep times to automate item firing</a><br>
        format: int32
        x-nullable: true
      prepStations:
        type: array
        description: |
          An array of GUIDs for the prep stations that have been assigned to this menu item. This array is empty if no prep stations have been assigned.<br>
          <br>
          *Related topics:*<br>
          <a href="https://doc.toasttab.com/doc/platformguide/platformKitchenRoutingOverview.html">Routing to prep stations</a>
        items:
          type: string
      modifierGroupReferences:
        type: array
        description: |
          An array of `referenceId`s for `ModifierGroup` objects. These objects define the modifier groups that apply to this menu item.
        minItems: 0
        items:
          type: integer
      eligiblePaymentAssistancePrograms:
        type: array
        description: |
          An array of strings that indicate which payment assistance programs may be used to pay for this menu item. Possible values include:

          * `SNAP`: Supplemental Nutrition Assistance Program
          * `EBT_CASH`: Electronic Benefit Transfer Cash

          The array is empty if no payment assistance programs have been assigned to the menu item.
        items:
          type: string
      allergens:
        type: array
        description: |
          Reserved for future functionality. Not currently supported for external integrations.
        minItems: 0
        items:
          $ref: '#/definitions/AllergenItem'
        x-nullable: true
      length:
        $ref: '#/definitions/Length'
      height:
        $ref: '#/definitions/Height'
      width:
        $ref: '#/definitions/Width'
      dimensionUnitOfMeasure:
        $ref: '#/definitions/DimensionUnitOfMeasure'
      weight:
        $ref: '#/definitions/Weight'
      weightUnitOfMeasure:
        $ref: '#/definitions/WeightUnitOfMeasure'
      images:
        $ref: '#/definitions/Images'
      guestCount:
        $ref: '#/definitions/GuestCount'
      sortOrder:
        type: integer
        description: |
          A number determining the order in which this item should appear on kitchen tickets. The sort order value can be any positive or negative integer, or zero. This value is null if a sort order has not been configured for the menu item.
        x-nullable: true
      catalogProductInfo:
        $ref: '#/definitions/CatalogProductInfo'
      isComboParent:
        type: boolean
        description: Reserved for future functionality. Not currently supported for external integrations.
        x-nullable: true
  ModifierGroup:
    type: object
    description: |
      Information about a modifier group configured for this restaurant, including an array of modifier options contained in the group.
    properties:
      name:
        description: |
          A descriptive name for this modifier group, for example, "Pizza Toppings" or "Salad Dressings".
        type: string
      guid:
        description: |
          A unique identifier for this modifier group, assigned by the Toast POS system.
        type: string
      referenceId:
        description: |
          An integer identifier that is used to refer to this modifier group by items and portions that use it.
        type: integer
      multiLocationId:
        $ref: '#/definitions/MultiLocationId'
      masterId:
        $ref: '#/definitions/MasterId'
      posName:
        $ref: '#/definitions/PosName'
      posButtonColorLight:
        $ref: '#/definitions/PosButtonColorLight'
      posButtonColorDark:
        $ref: '#/definitions/PosButtonColorDark'
      visibility:
        $ref: '#/definitions/Visibility'
      pricingStrategy:
        type: 'string'
        description: |
          A string that represents the pricing strategy used for this modifier group.

          If there is no additional charge for the modifier options in this group, or if the modifier options in the group are priced individually, then the `pricingStrategy` value is NONE.

          If the modifier group is priced at the group level and is using the:
            * Fixed Price pricing strategy, then the `pricingStrategy` value is N

# --- truncated at 32 KB (120 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/toast/refs/heads/main/openapi/toast-menus-openapi.yaml