---
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`

## Request

- Base URL: `https://uk.api.just-eat.io`
- URL: `https://uk.api.just-eat.io/restaurants/{tenant}/{restaurantId}/menu`
- Auth: none declared. Required headers: `Authorization`
- TypeScript: <https://skmtc.dev/just-eat/apis/just-eat-api/docs/restaurants/:tenant/:restaurantId/menu/put.ts> (a function with typed inputs; its response is checked against the schema)

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
  - `restaurantId` string: A unique identifier at tenant level for a given restaurant.
  - `name` string: The name of the restaurant.
  - `description` string: A top level description for the menu.
  - `currency` string: The currency of the items on the menu in ISO 4217 format, i.e. GBP, EUR or AUD
  - `availabilities` Availability[]: A set of availabilities that can later be referenced by individual menu items.
    - `id` string: A unique identifier at menu level for a given availability.
    - `name` string: The name for the availability.
    - `description` string: The description of 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.
    - `id` string: A unique identifier at menu level for a given category.
    - `name` string: The name of the category.
    - `description` string: The description 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.
    - `id` string: A unique identifier at menu level for a menu item.
    - `name` string: The name of the menu item.
    - `type` 'menuItem' | 'deal': Indicates whether this is a regular meal item or a deal 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.
    - `description` string: The description of the menu item.
    - `labels` string[]: Used to toggle front end icons for the available labels.
    - `imageUrl` string: A menu item image URL.
    - `variations` Variation[]: A set of variations of this menu item.
      - `id` string: A unique identifier at menu level for a variation, can be shared with parent menu item id.
      - `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
      - `basePrice` number: The base price of this variation in the minor unit of the currency.
      - `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"
      - `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.
      - `availabilityIds` string[]: Maps to an availability item, availabilities determines which days and times the item can be sold.
      - `modifierGroupsIds` string[]: Maps to the modifier groups that are applicable to this variation.
      - `dealGroupsIds` string[]: Maps to the deal groups that are applicable to this variation.
    - `modifierGroups` MenuModifierGroup[]: A set of modifier groups for this menu item.
      - `id` string: A unique identifier relative to the menu for a modifier group.
      - `name` string: A name for the modifier group, usually phrased as a question, e.g. Would you like any extras?
      - `minChoices` integer: The minimum number of modifiers that must be selected to satisfy this modifier group.
      - `maxChoices` integer: The maximum 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.
        - `id` string: A unique identifier relative to the menu for a modifier.
        - `name` string: The name of the modifier.
        - `minChoices` integer: The minimum number of times this modifier can be chosen within a given modifier group.
        - `maxChoices` integer: The maximum number of times this modifier can be chosen within a given 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.
    - `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.
        - `dealItemVariationId` string: A referenced variation id that can be a part of a deal group.
        - `minChoices` integer: The minimum number of times this deal item variation can be chosen within a given deal group.
        - `maxChoices` integer: The maximum number of times this deal item variation can be chosen within a given 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.

## 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.dev/just-eat/apis/just-eat-api.md) - [All operations](https://skmtc.dev/just-eat/apis/just-eat-api/llms.txt) - [OpenAPI document](https://skmtc.dev/just-eat/apis/just-eat-api/revisions/4b25c7d97a53?raw)
