Toast Menu Items API

The Menu Items API from Toast — 2 operation(s) for menu items.

Operations 2

GET /menuItems/{guid} Get a menu item or modifier #
GET /menuItems Get menu items and modifiers #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/toast-menu-items-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

toast-menu-items-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.5.0
  title: Configuration Menu Items API
  description: "Returns information about the configuration of a restaurant and \nits menus, such as menu items and alternate payment types, as \nwell as physical configuration such as cash drawers and \nrestaurant tables.\n\nThe configuration API does not return information about entities that you have \nremoved from your restaurant configuration or archived.\n"
  contact:
    name: Toast developer support
servers:
- url: https://toast-api-server/config/v2
tags:
- name: Menu Items
paths:
  /menuItems/{guid}:
    get:
      tags:
      - Menu Items
      operationId: menuItemsGuidGet
      summary: 'Get a menu item or modifier

        '
      description: 'Returns a `MenuItem`

        object containing information about an item or modifier available from a

        restaurant.

        '
      parameters:
      - name: Toast-Restaurant-External-ID
        description: 'The Toast POS GUID of the restaurant that the configuration

          applies to.

          '
        in: header
        required: true
        schema:
          type: string
      - name: guid
        description: The Toast POS GUID for the menu item.
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns a `MenuItem` object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MenuItem'
      security:
      - oauth2:
        - config:read
  /menuItems:
    get:
      tags:
      - Menu Items
      operationId: menuItemsGet
      summary: 'Get menu items and modifiers

        '
      description: 'Returns an array of `MenuItem` objects containing

        information about the items and modifiers available from a

        restaurant. If a `lastModified` date is specified, returns all

        objects that were created or modified after that date.

        '
      parameters:
      - name: Toast-Restaurant-External-ID
        description: 'The Toast POS GUID of the restaurant that the configuration

          applies to.

          '
        in: header
        required: true
        schema:
          type: string
      - name: pageToken
        in: query
        description: "A string that identifies the set of data objects that the \nendpoint will return in its response data. You can use this \nparameter to retrieve one page of response data. You \nget the value that you supply in the `pageToken` parameter \nfrom the `Toast-Next-Page-Token` header field value of a \nprevious request to the endpoint. For more information, see \n<a href=\"https://doc.toasttab.com/doc/devguide/apiResponseDataPagination.html\">Paginating response data</a>.\n"
        schema:
          type: string
      - name: lastModified
        description: 'Limits the return data to objects created or modified after

          a specific date and time. For example:

          `2024-06-20T00:00:00.000%2B0000`.

          '
        in: query
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Returns an array of `MenuItem` objects.
          headers:
            Toast-Next-Page-Token:
              description: "A string that identifies the following set of objects \nthat the endpoint will return. You can use this value \nto retrieve that page of response data. To return \nthe next page of objects you supply this value in the \n`pageToken` parameter of the next request to the \nendpoint. For more information, see \n<a href=\"https://doc.toasttab.com/doc/devguide/apiResponseDataPagination.html\">Paginating response data</a>.\n\nThe endpoint does not return the \n`Toast-Next-Page-Token` field if there is no following \npage of response data objects. For example, the \nendpoint will not return a `Toast-Next-Page-Token` \nheader field if all the data objects fit in one \nresponse or if you have reached the last page of \nresponse objects.\n"
              schema:
                type: string
          content:
            application/json:
              schema:
                title: Response
                type: array
                minItems: 0
                maxItems: 300
                items:
                  $ref: '#/components/schemas/MenuItem'
      security:
      - oauth2:
        - config:read
components:
  schemas:
    ToastReference:
      type: object
      description: A wrapper object with fields that allow reference to a Toast entity by Toast GUID.
      required:
      - guid
      - entityType
      properties:
        guid:
          description: The GUID maintained by the Toast POS.
          type: string
        entityType:
          description: The type of object this is.
          type: string
    MenuItem:
      type: object
      allOf:
      - $ref: '#/components/schemas/ExternalReference'
      - type: object
        properties:
          name:
            type: string
            description: 'The name of the menu item as it appears in the Toast POS.

              '
          calories:
            type: integer
            description: 'The amount of food energy in the item, expressed in

              Calorie units. Values can be positive, negative, or zero.

              '
          sku:
            type: string
            description: The stock keeping unit (SKU) code for the item.
          plu:
            type: string
            description: The price look up (PLU) code for the item.
          orderableOnline:
            type: string
            description: 'Deprecated. Indicates whether restaurant guests can order from the menu online.


              Use the `visibility` array that the menus API (V2) returns for each menu entity, instead of this

              `orderableOnline` value, to determine if the entity should be

              available for online ordering.

              '
            enum:
            - 'YES'
            - 'NO'
          visibility:
            type: string
            description: 'Deprecated. Indicates where the menu is displayed and who can see it.

              * ALL: Visible to everyone (servers and customers)

              * POS_ONLY: Only visible to servers

              * NONE: Hidden from everyone


              Use the `visibility` array that the menus API (V2) returns for each menu

              entity, instead of this `visibility` value, to determine where the

              entity should be visible.

              '
            enum:
            - ALL
            - POS_ONLY
            - NONE
          type:
            type: string
            description: 'Specifies whether this item is a special request or other

              off-menu transaction.

              * `NONE` - a normal menu item or modifier.

              * `OPEN_ITEM` - an item that is not on a menu.

              * `SPECIAL_REQUEST` - a selection that is not an item.

              * `PORTION` - a division of a menu item used to apply modifiers separately to separate parts of an item. For example, one half of a pizza.

              '
            enum:
            - NONE
            - OPEN_ITEM
            - SPECIAL_REQUEST
            - PORTION
          optionGroups:
            type: array
            description: 'An array of `ExternalReference` objects containing the

              identifiers of the `MenuOptionGroup`s

              that contain modifiers applicable to this item. Does not

              include those inherited from the parent `MenuGroup`.

              '
            minItems: 0
            items:
              $ref: '#/components/schemas/ExternalReference'
          inheritOptionGroups:
            type: boolean
            description: 'True if this menu item inherits `MenuOptionGroup`s

              from its parent `MenuGroup`.

              '
          images:
            type: array
            description: 'An array of `Image`

              objects that are associated with the `MenuItem`.

              '
            items:
              $ref: '#/components/schemas/Image'
          unitOfMeasure:
            type: string
            description: 'The unit of measure used to determine the price of the item.

              The default is NONE, which means that the item is not meant to

              be measured during a sale.

              This value is not relevant if `inheritUnitOfMeasure` is true.


              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.

              '
            enum:
            - NONE
            - LB
            - OZ
            - KG
            - G
            - GAL
            - L
            - ML
            - FL_OZ
            - M
            - CM
            - FT
            - IN
            - YD
          inheritUnitOfMeasure:
            type: boolean
            description: 'True if this menu item inherits its unit of measure

              from its parent `MenuGroup`.

              '
    ExternalReference:
      type: object
      allOf:
      - $ref: '#/components/schemas/ToastReference'
      - type: object
        properties:
          externalId:
            description: External identifier string, prefixed by the naming authority.
            type: string
        description: A wrapper object with fields that allow reference to a Toast entity by Toast GUID or a partner's identifier.
    Image:
      type: object
      description: Information about an image associated with a menu or menu item.
      properties:
        url:
          description: The web address of the image.
          type: string
  securitySchemes:
    oauth2:
      description: "Access to Toast APIs, specific endpoints, \nand specific API endpoint operations is \ncontrolled by the scopes that are associated \nwith your API account. \nA full reference for Toast API scopes and \ntheir capabilities can be found in the\n[_Toast Developer Guide_](https://doc.toasttab.com/doc/devguide/apiScopes.html).\n"
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://toast-api-server/authentication/v1/authentication/login
          scopes:
            config:read: 'Allows reading from the configuration API.

              '