---
title: "Create or update a menu"
method: PUT
path: "/restaurants/{tenant}/{restaurantId}/menu"
tags: ["Restaurants", "publicly-accessible"]
---

# Create or update a menu

`PUT /restaurants/{tenant}/{restaurantId}/menu`

This will begin an asynchronous process that will lead to that menu becoming live on the Just Eat platform

## Path parameters

- `tenant` string, required
- `restaurantId` string, required

## Headers

- `Authorization` string, required
- `Content-Type` string

## Request body

- Menu
  - `currency` string — The currency of the items on the menu in ISO 4217 format, i.e. GBP, EUR or AUD
  - `description` string — A top level description for the menu.
  - `name` string — The name of the restaurant.
  - `restaurantId` string — A unique identifier at tenant level for a given restaurant.
  - `availabilities` Availability[] — A set of availabilities that can later be referenced by individual menu items.
    - `description` string — The description of the availability.
    - `id` string — A unique identifier at menu level for a given availability.
    - `name` string — The name for the availability.
    - `serviceTypes` string[] — Values can be "collection" or "delivery" and are used to denote what types of service apply to the availability.
    - `times` Time[] — An array of times when the availability is active.
      - `daysOfTheWeek` string[] — The days of the week.
      - `fromDateTime` string — Time of day the availability begins, in local time, format is ISO 8601 hh:mm:ss
      - `toDateTime` string — Time of day the availability begins, in local time, format is ISO 8601 hh:mm:ss
  - `categories` Category[] — A set of categories that appear on the menu.
    - `description` string — The description of the category.
    - `id` string — A unique identifier at menu level for a given category.
    - `name` string — The name of the category.
    - `itemIds` string[] — The ids of the menu items that are within the category. Each id must be unique within the category.
  - `items` MenuItem[] — All of the menu items within the menu.
    - `description` string — The description of the menu item.
    - `id` string — A unique identifier at menu level for a menu item.
    - `labels` string[] — Used to toggle front end icons for the available labels.
    - `name` string — The name of the menu item.
    - `requireOtherProducts` boolean — Cannot be selected as a stand alone item, it has to be ordered with other items. Typically this will apply to menu items within drinks and dessert categories.
    - `type` 'menuItem' | 'deal' — Indicates whether this is a regular meal item or a deal item.
    - `dealGroups` MenuDealGroup[] — A set of deal groups for this menu item.
      - `id` string — A unique identifier at menu level for a deal group.
      - `name` string — The name of the deal group.
      - `numberOfChoices` integer — How many deal item variations must be selected to satisfy this deal group.
      - `dealItemVariations` DealItemVariation[] — The ids of the variations that can be selected in order to satisfy this deal group.
        - `additionPrice` number — Selecting this modifier will increase the base price of the variation by this amount in the minor unit of the currency.
        - `dealItemVariationId` string — A referenced variation id that can be a part of a deal group.
        - `maxChoices` integer — The maximum number of times this deal item variation can be chosen within a given deal group.
        - `minChoices` integer — The minimum number of times this deal item variation can be chosen within a given deal group.
    - `imageUrl` string — A menu item image URL.
    - `modifierGroups` MenuModifierGroup[] — A set of modifier groups for this menu item.
      - `id` string — A unique identifier relative to the menu for a modifier group.
      - `maxChoices` integer — The maximum number of modifiers that must be selected to satisfy this modifier group.
      - `minChoices` integer — The minimum number of modifiers that must be selected to satisfy this modifier group.
      - `modifiers` MenuModifier[] — The modifiers that can be selected to satisfy this modifier group.
        - `additionPrice` number — Selecting this modifier will increase the base price of the variation by this amount in the minor unit of the currency.
        - `id` string — A unique identifier relative to the menu for a modifier.
        - `maxChoices` integer — The maximum number of times this modifier can be chosen within a given modifier group.
        - `minChoices` integer — The minimum number of times this modifier can be chosen within a given modifier group.
        - `name` string — The name of the modifier.
      - `name` string — A name for the modifier group, usually phrased as a question, e.g. Would you like any extras?
    - `variations` Variation[] — A set of variations of this menu item.
      - `availabilityIds` string[] — Maps to an availability item, availabilities determines which days and times the item can be sold.
      - `basePrice` number — The base price of this variation in the minor unit of the currency.
      - `dealGroupsIds` string[] — Maps to the deal groups that are applicable to this variation.
      - `dealOnly` boolean — This flag indicates the variation is only available as part of a deal, the item will not be displayed as a stand alone menu item.
      - `id` string — A unique identifier at menu level for a variation, can be shared with parent menu item id.
      - `kitchenNumber` string — Identifies the item with a number on the physical menu that the kitchen understand e.g. on a Chinese menu number 16 could correspond to "BBQ ribs"
      - `modifierGroupsIds` string[] — Maps to the modifier groups that are applicable to this variation.
      - `name` string — The name of the variation.
      - `type` 'noVariation' | 'variation' — Denotes the type of variation, `Variation` if there's multiple variations of the parent `menuitem`, `NoVariation` if there's only one

## Response `202`

Accepted

- MenuIngestionResponse
  - `correlationId` string — An ID for the asynchronous operation to ingest the menu

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `500` — Server Error

---

[API](https://skmtc.net/justeat/apis/just-eat.md) · [All operations](https://skmtc.net/justeat/apis/just-eat/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/justeat/just-eat/versions/49ff8eb806d9/schema)
