openapi: 3.2.0
info:
version: 2.5.0
title: Configuration Menu Groups 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 Groups
paths:
/menuGroups/{guid}:
get:
tags:
- Menu Groups
operationId: menuGroupsGuidGet
summary: 'Get a menu group
'
description: 'Returns a `MenuGroup`
object containing information about a section within a menu.
'
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 of the menu group.
in: path
required: true
schema:
type: string
responses:
'200':
description: Returns a `MenuGroup` object.
content:
application/json:
schema:
$ref: '#/components/schemas/MenuGroup'
security:
- oauth2:
- config:read
/menuGroups:
get:
tags:
- Menu Groups
operationId: menuGroupsGet
summary: 'Get menu groups
'
description: 'Returns an array of `MenuGroup` objects
containing information about the subsections of the menus
configured for 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 \nPaginating response data.\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 `MenuGroup` 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 \nPaginating response data.\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/MenuGroup'
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
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
MenuGroup:
type: object
allOf:
- $ref: '#/components/schemas/ExternalReference'
- type: object
properties:
name:
type: string
description: The name of the menu group as it appears in the Toast POS.
menu:
$ref: '#/components/schemas/ExternalReference'
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
parent:
$ref: '#/components/schemas/ExternalReference'
items:
type: array
description: 'An array of `ExternalReference` objects containing the
identifiers of the `MenuItem`s in the menu
group.
'
minItems: 0
items:
$ref: '#/components/schemas/ExternalReference'
subgroups:
type: array
description: 'An array of `ExternalReference` objects containing the
identifiers of the child `MenuGroup`s in
the menu group. Empty if the menu group does not include any child
menu groups.
'
minItems: 0
items:
$ref: '#/components/schemas/ExternalReference'
optionGroups:
type: array
description: 'An array of `ExternalReference` objects containing the
identifiers of the child `MenuOptionGroup`s
that contain modifiers applicable to the group, its
subgroups and its items. Does not include
`MenuOptionGroup`s inherited from its parent `MenuGroup`.
'
minItems: 0
items:
$ref: '#/components/schemas/ExternalReference'
inheritOptionGroups:
type: boolean
description: 'True if this `MenuGroup` inherits `MenuOptionGroup`s
from its parent `MenuGroup`.
'
images:
type: array
description: 'An array of `Image`
objects associated with with the `MenuGroup`.
'
items:
$ref: '#/components/schemas/Image'
unitOfMeasure:
type: string
description: 'The unit of measure used to determine the price of items in this group.
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 `MenuGroup` inherits its unit of measure
from its parent `MenuGroup` or (if its parent is null)
its parent `Menu`.
'
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.
'