Deprecated

Version 1.0 of the Menu API is deprecated and will be removed in the future. Please consider using version 1.1.

# Menu API Resources v1.0Deprecated

Each resource used in the Menu API version 1.0 is listed below.

# Brand

The brand that the menu is associated with.

Name Required Type Description
key false string The unique key for the brand.
name false string The full, official name of the brand.
displayName false string The shortened display name for the brand.
enabled false boolean Indicates if the brand is enabled or not.
createdOn false date-time The date and time the brand was created.
modifiedOn false date-time The date and time the brand was modified.

# Sample

{
    "key": "SPUR",
    "name": "Spur",
    "displayName": "Spur Steak Ranches",
    "enabled": true,
    "createdOn": "2013-09-25T13:37:28.8966667",
    "modifiedOn": "2020-11-19T12:15:05.04"
}

# Image

Provides image information for sections and menu items.

Name Required Type Description
key false string The unique key for the image. Can be used with the Image API to retrieve additional information about the image.
imageType false string Indicates the type of image. Should be used to display the correct image intended for the specific use case.
url false string The URL to download the image from the CDN. The CDN supports image resizing and supports both HTTP as well as HTTPS for serving the image. See the Image API for more details.

# Sample

{
    "key": "F4270787-591D-4943-AB21-8C841C7E1B9F",
    "imageType": "LandscapeImage",
    "url": "images.spurcorp.com/F4270787-591D-4943-AB21-8C841C7E1B9F"
}

Describes a full menu of items a customer may order from, grouped into sections and subsection and categorised by various other data points.

Name Required Type Description
key true string The unique key for the menu.
version true int The menu version. The same menu will have multiple versions over time. Each version will contain different items, pricing and so on.
revision false int64 The menu revision. A menu version will go through multiple revisions. This number will increment with each revision.
name true string The name of the menu.
displayName true string A display name for the menu for use within apps and websites.
description true string A description for the menu.
status false string The current status of the menu.
statusChangedOn false date-time The date and time the menu status was last changed on.
publishStatus false string The current published status of the menu.
publishedOn false date-time The date and time the menu was published on.
brand true Brand The brand the menu is for.
defaultForBrand true boolean Indicates if the menu is the default menu for the brand. The sit down menu in each brand would typically be marked as default.
countryCode true string The ISO 3166-1 Alpha-2 code for the country that the menu is intended to be used in.
currency true string The currency applicable for the pricing on the menu.
foodTypes true string[] The food types that the menu supports.
orderingMethods true string[] The ordering methods that the menu supports.
provisioningMethods false string[] The provisioning methods that the menu supports.
availableFrom true string The time of day the menu is available from. No value implies the menu is available for the duration of the individual restaurant's trading hours.
availableTo true string The time of day the menu is available to. No value implies the menu is available for the duration of the individual restaurant's trading hours.
enabled true boolean Indicates if the menu is enabled.
effectiveFrom true date The date the menu version is effective from.
effectiveTo true date The date the menu version is effective to.
sectionCount true int The number of section objects in the menu.
sections true Section[] The array of sections on the menu.
itemCount true int The number of menuItem objects in the menu.
items true MenuItem[] The array of items on the menu.
restaurantCount true int The number of restaurant objects in the menu.
restaurants true Restaurant[] The array of restaurants linked to the menu version.
createdOn true date-time The date and time the menu was created.
modifiedOn true date-time The date and time the menu was modified.

# Sample

{
    "key": "SPUR-ZA-45",
    "version": 202010,
    "revision": "4417846432",
    "name": "DEMO MENU",
    "displayName": "DEMO",
    "description": "This menu is to demo new features and functionality.",
    "status": "QA",
    "statusChangedOn": "12/15/2020 11:08:37 AM",
    "publishStatus": "Draft",
    "publishedOn": null,
    "brand": {
        "key": "SPUR",
        "name": "Spur",
        "displayName": "Spur",
        "enabled": true,
        "createdOn": "2013-09-25T13:37:28.8966667",
        "modifiedOn": "2020-11-19T12:15:05.04"
    },
    "defaultForBrand": false,
    "countryCode": "ZA",
    "currency": "ZAR",
    "foodTypes": [],
    "orderingMethods": [
        "1st Party Ordering Platform",
        "Branded App",
        "ChatBot",
        "Kiosk"
    ],
    "provisioningMethods": [
        "Collection",
        "Delivery"
    ],
    "availableFrom": null,
    "availableTo": null,
    "enabled": true,
    "effectiveFrom": "2020-11-01",
    "effectiveTo": "2021-12-31",
    "sectionCount": 0,
    "sections": [],
    "itemCount": 0,
    "items": [],
    "restaurantCount": 0,
    "restaurants": [],
    "createdOn": "2020-10-20T09:05:37",
    "modifiedOn": "2020-11-01T00:00:00"
}

The units that a customer may order off the menu.

Name Required Type Description
key true int64 The unique key for the menu item.
menuKey true string The unique key for the menu for the menu item.
menuVersion true int The menu version for the menu item.
itemType true string The type of item.
name true string The name of the item.
displayName true string The display name of the item that should be used in apps on on the web.
description true string A description for the item.
currency true string The currency for the price of the item.
price true double The price of the item.
tags true string[] A set of tags for the menu item.
allergens false string[] A set of allergens for the menu item.
enabled true boolean Indicates if the item is enabled or not.
sectionKey false int The section key for the item's section.
section true string The menu section name for the item.
subsectionKey false int The subsection key for the item's subsection.
subsection true string The menu subsection name for the item.
sortOrder true int The sort or for the item on the section and subsection on menu.
optionSetCount true int The number of option sets for the item.
optionSets true OptionSet[] The array of option sets for the menu item.
imageCount false int The number of images for the item.
images false Image[] The array of images for the item.
createdOn true date-time The date and time the menu item was created.
modifiedOn true date-time The date and time the menu item was modified.

# Sample

{
    "key": 811001143,
    "menuKey": "SPUR-ZA-45",
    "menuVersion": 202010,
    "itemType": "Item",
    "name": "Spur Burger",
    "displayName": "Original Spur Burger",
    "description": null,
    "currency": "ZAR",
    "price": 79.90,
    "tags": [],
    "allergens": [
        "Gluten"
    ],
    "enabled": true,
    "sectionKey": 450,
    "section": "Burgers",
    "subsectionKey": null,
    "subsection": null,
    "sortOrder": 1,
    "optionSetCount": 2,
    "optionSets": [
        {
            "key": 861000099,
            "menuKey": "SPUR-ZA-45",
            "menuVersion": 202010,
            "optionSetType": "Options",
            "name": "Single Burger Option",
            "displayName": "Which patty would you like?",
            "description": "Single Burger Option",
            "enabled": true,
            "sortOrder": 1,
            "required": true,
            "setMinSelect": 1,
            "setMaxSelect": 1,
            "doubleLinePricing": false,
            "optionSetItemCount": 5,
            "optionSetItems": [
                {
                    "key": 811001217,
                    "menuKey": "SPUR-ZA-45",
                    "menuVersion": 202010,
                    "optionSetKey": 861000099,
                    "itemType": "Option",
                    "name": "Beef 160 (Burger Option)",
                    "displayName": "Beef Burger Patty",
                    "description": "Beef Burger Patty",
                    "currency": "ZAR",
                    "price": 0.00,
                    "sortOrder": 1,
                    "tags": [],
                    "allergens": [],
                    "enabled": true
                }
            ]
        }
    ],
    "imageCount": 0,
    "images": [],
    "createdOn": "2020-04-14T21:20:29",
    "modifiedOn": "2020-11-01T00:00:00"
}

A representation of the menu item or option set item with information about an associated POS item.

Name Required Type Description
key true int64 The unique key for the menu item.
menuKey true string The unique key for the menu for the menu item.
menuVersion true int The menu version for the menu item.
itemType true string The type of item.
name true string The name of the item.
currency true string The currency for the price of the menu item.
price true double The price of the menu item.
aggregated false boolean Indicates if the item is aggregated.
posItem true PosItem The POS item is the item in POS that represents a menu item or option set item.

# Sample

{
    "key": 811000176,
    "menuKey": "ROCO-ZA-3",
    "menuVersion": 202004,
    "itemType": "Item",
    "name": "Classic Cheese Burger",
    "currency": "ZAR",
    "price": 64.00,
    "aggregated": false,
    "posItem": {
        "key": 24713,
        "pointOfSale": "Pilot",
        "dataSet": "PILOT_ROCO_STD_ZA",
        "dataSetVersion": "1200914",
        "code": "1204",
        "name": "Classic Cheese",
        "currency": "ZAR",
        "price": 67.00,
        "enabled": true
    }
}

# OptionSet

Groups option set items for customers to choose how they would like a menu item modified.

Name Required Type Description
key true int64 The unique key for the option set.
menuKey true string The unique key for the menu for the option set.
menuVersion true int The menu version for the option set.
optionSetType false string The type of option set.
name true string The name of the option set.
displayName true string The display name of the option set.
description true string A description for the option set.
enabled true boolean Indicates if the option set is enabled or not.
sortOrder false int The sort order of the option set to display.
required true boolean Indicates if a selection from the option set is required or not.
setMinSelect true int The minimum number of option set items within the set that must be selected.
setMaxSelect true int The maximum number of option set items within the set that can be selected.
doubleLinePricing true boolean Indicates if the option set should be used to display double line pricing or not.
optionSetItemCount true int The number of option set items contained within the option set.
optionSetItems true OptionSetItem[] The array of option set items for the option set.

# Sample

{
    "key": 861000099,
    "menuKey": "SPUR-ZA-45",
    "menuVersion": 202010,
    "optionSetType": "Options",
    "name": "Single Burger Option",
    "displayName": "Which patty would you like?",
    "description": "Single Burger Option",
    "enabled": true,
    "sortOrder": 1,
    "required": true,
    "setMinSelect": 1,
    "setMaxSelect": 1,
    "doubleLinePricing": false,
    "optionSetItemCount": 5,
    "optionSetItems": [
        {
            "key": 811001217,
            "menuKey": "SPUR-ZA-45",
            "menuVersion": 202010,
            "optionSetKey": 861000099,
            "itemType": "Option",
            "name": "Beef 160 (Burger Option)",
            "displayName": "Beef Burger Patty",
            "description": "Beef Burger Patty",
            "currency": "ZAR",
            "price": 0.00,
            "sortOrder": 1,
            "tags": [],
            "allergens": [],
            "enabled": true
        }
    ]
}

# OptionSetItem

The individual modifiers for a menu item.

Name Required Type Description
key true int64 The unique key for the option set item.
menuKey true string The unique key for the menu for the item.
menuVersion true int The menu version for the item.
optionSetKey true int64 The unique key for the option set the option set item is a member of.
itemType true string The type of item.
name true string The name of the option set item.
displayName false string The display name of the option set item.
description true string A description for the option set item.
currency true string The currency for the price of the option set item.
price true double The price of the option set item.
sortOrder true int The sort or for the option set item within the option set.
tags true string[] A set of tags for the option set item.
allergens false string[] A set of allergens for the option set item.
enabled true boolean Indicates if the option set item is enabled or not.

# Sample

{
    "key": 811001217,
    "menuKey": "SPUR-ZA-45",
    "menuVersion": 202010,
    "optionSetKey": 861000099,
    "itemType": "Option",
    "name": "Beef 160 (Burger Option)",
    "displayName": "Beef Burger Patty",
    "description": "Beef Burger Patty",
    "currency": "ZAR",
    "price": 0.00,
    "sortOrder": 1,
    "tags": [],
    "allergens": [],
    "enabled": true
}

# PosItem

The item in POS that represents a menu item or option set item.

Name Required Type Description
key false int The unique key for the POS item.
pointOfSale false string The POS system that the item is from.
dataSet false string The POS dataset the item is from.
dataSetVersion false string The version of the dataset the item is from.
code false string The POS code for the item.
name false string The name of the item in the POS dataset.
currency false string The currency for the item price.
price false double The price of the item in POS.
enabled false boolean Indicates if the item is active or not.

# Sample

{
    "key": 24713,
    "pointOfSale": "Pilot",
    "dataSet": "PILOT_ROCO_STD_ZA",
    "dataSetVersion": "1200914",
    "code": "1204",
    "name": "Classic Cheese",
    "currency": "ZAR",
    "price": 67.00,
    "enabled": true
}

# Section

Sections are the primary grouping for menu items.

Name Required Type Description
key true int64 The unique key for the section.
name true string The name of the section.
strapline false string The strapline for the section.
sortOrder true int The sort order for the section in the menu.
tags false string[] A set of tags for the section.
imageCount true int The number of images assigned to the section.
images false Image[] The array of images for the section.
subsectionCount true int The number of subsections in the section.
subsections false Subsection[] The array of subsections for the section.

# Sample

{
    "key": 450,
    "name": "Burgers",
    "strapline": null,
    "sortOrder": 5,
    "tags": [],
    "imageCount": 0,
    "images": [],
    "subsectionCount": 0,
    "subsections": []
}

# Subsection

Subsections further break a section into smaller components.

Name Required Type Description
key true int64 The unique key for the section.
name true string The name of the section.
strapline false string The strapline for the section.
sortOrder true int The sort order for the section in the menu.
tags false string[] A set of tags for the section.
imageCount true int The number of images assigned to the subsection.
images false Image[] The array of images for the section.
sectionKey true int The key of the section that the subsection belongs to.
sectionName true string The name of the section that the subsection belongs to.

# Sample

{
    "key": 642,
    "name": "Ribs",
    "strapline": null,
    "sortOrder": 10,
    "tags": [],
    "imageCount": 0,
    "images": [],
    "sectionKey": 451,
    "sectionName": "Steaks & Ribs"
}

# Restaurant

Provides information about the restaurants that a menu could be linked to.

Name Required Type Description
key true int The unique key for the restaurant.
name true string The name of the restaurant.
displayName true string The display name of the restaurant. Suitable for displaying to customers.
brandKey true string The brand key for the restaurant.
outletType true string The type of outlet the restaurant is classified as. Values are either Restaurant or Virtual Kitchen
tradingStatus true string Describes the current trading status of the restaurant. This is not a real-time check.
countryCode true string The ISO 3166-1 Alpha-2 code of the country that the restaurant trades in.
createdOn false date-time The date and time the restaurant was created.
modifiedOn false date-time The date and time the restaurant was modified.

# Sample

{
    "key": 1232,
    "name": "RM Greenpoint",
    "displayName": "RocoMamas Greenpoint",
    "brandKey": "ROCO",
    "outletType": "Restaurant",
    "tradingStatus": "Open",
    "countryCode": "ZA",
    "createdOn": "2015-08-21T09:11:11.6466667",
    "modifiedOn": "2020-12-18T00:00:00"
}