---
title: "Create a new menu"
method: POST
path: "/api/v1.0/{appId}/menus"
tags: ["Menus"]
deprecated: true
---

# Create a new menu

`POST /api/v1.0/{appId}/menus`

> **Deprecated.**

[DEPRECATED] - Please use the async version as this endpoint may timeout for large menus

## Path parameters

- `appId` string, required

## Request body

- CreateFullMenu — Create menu object
  - `Name` string — Name of Menu, only shown in portal
  - `ImageUrl` string — Image url
  - `MenuSections` CreateFullMenuSection[] — Menu sections (starters, main etc)
    - `MenuSectionAvailability` MenuSectionAvailability — Menu section availability
      - `AvailableTimes` BusinessHoursPeriod[] — Available times
        - `Early` Range — A class that represents a single opening period in a day. This starts 'StartTime' after midnight and runs for a 'Period' after that, on the given DayOfWeek.
          - `StartTime` string — Start time
          - `Period` string — Period
          - `DayOfWeek` 'Sunday' | 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' — Day of week
        - `Late` Range — A class that represents a single opening period in a day. This starts 'StartTime' after midnight and runs for a 'Period' after that, on the given DayOfWeek.
          - `StartTime` string — Start time
          - `Period` string — Period
          - `DayOfWeek` 'Sunday' | 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' — Day of week
        - `Ranges` Range[] — Ranges
          - `StartTime` string — Start time
          - `Period` string — Period
          - `DayOfWeek` 'Sunday' | 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' — Day of week
        - `DayOfWeek` 'Sunday' | 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' — Day of week
        - `StartTime` string — Start time
        - `Period` string — Period
        - `StartTimeEarly` string — Start time early
        - `PeriodEarly` string — Period early
      - `AvailabilityMode` 'DisplayAlways' | 'DisplayBasedOnTimes' | 'DisplayAlwaysStartCollapsed' | 'DisplayAlwaysStartCollapsedBasedOnTimes', nullable — Availability mode
    - `MenuItems` CreateFullMenuSectionItem[] — Menu items
      - `MenuItemOptionSets` CreateFullMenuItemOptionSet[] — Menu item option sets
        - `MenuItemOptionSetId` integer — Menu item option set identifier
        - `MenuItemOptionSetItems` CreateFullMenuItemOptionSetItem[] — Option set items
          - `MenuItemOptionSetItemId` integer — Menu item option set item identifier
          - `Metadata` CreateMetadata[] — List of metadata
            - `StoreId` integer — Store identifier
            - `Key` string — Metadata key (Unique identifier)
            - `Value` string — Metadata value
          - `TaxRateName` string — Tax rate name
          - `NextMenuItemOptionSetId` integer, nullable — if null, next option set is next. if -1, this is the final option set
          - `Name` string — Name
          - `Price` number, double — Price
          - `DepositReturnFee` number, double, nullable — An optional fee that can be added to the price of the item.
          - `IsAvailable` boolean — Is available
          - `DisplayOrder` integer — Display order. Displayed in ascending order.
          - `CellLayoutType` 'Small' | 'Medium' | 'Large' | 'HiddenImage' — Small | Medium | Large Affects the layout of the menu.
          - `ImageUrl` string — Image url
          - `PublicId` string, uuid — Permanent reference to the item.
        - `Name` string — Menu item option set name
        - `IsMasterOptionSet` boolean — Is master option set. This can affect the layout of the options in the menu displayed to the customer. Usually it is true if the option could be considerd a standalone item as opposed to an addition ("with ketchup") or modifier ("large").
        - `DisplayOrder` integer — Display order. Displayed in ascending order.
        - `MinSelectCount` integer — Minimum items must be selected
        - `MaxSelectCount` integer — Maximum number of items can be selected
        - `CellLayoutType` 'Small' | 'Medium' | 'Large' | 'HiddenImage' — Small | Medium | Large Affects the layout of the menu.
        - `PublicId` string, uuid — Permanent reference to the item.
      - `Metadata` CreateMetadata[] — List of metadata
        - `StoreId` integer — Store identifier
        - `Key` string — Metadata key (Unique identifier)
        - `Value` string — Metadata value
      - `TaxRateName` string — Tax rate name
      - `Name` string — Menu item name (like "Korma")
      - `Description` string — Description (like "A lovely dish from the east")
      - `SpicinessRating` 'NotRated' | 'Mild' | 'Medium' | 'Hot' — Spiciness rating
      - `Price` number, double — Price - this is only used when there is no master option set and should be set to 0 if a master option set exists.
      - `DepositReturnFee` number, double, nullable — An optional fee that can be added to the price of the item.
      - `DisplayOrder` integer — Display order
      - `Alcohol` boolean — To be set true if the item or an option of the item contains an alcoholic drink.
      - `IsAvailable` boolean — True if we accept orders for this item still
      - `CellLayoutType` 'Small' | 'Medium' | 'Large' | 'HiddenImage' — Small | Medium | Large Affects the layout of the menu.
      - `DisableVouchers` boolean — If true, then vouchers won't be applied for this item
      - `ImageName` string — Image url
      - `ImageUrl` string — Image url
      - `MenuItemId` integer — Menu Item Id
      - `ExcludeFromVoucherDiscounting` boolean — If true, the item is excluded from voucher discount calculations
      - `PublicId` string, uuid — Permanent reference to the item.
    - `Name` string — Name
    - `Description` string — Description
    - `DisplayOrder` integer — Display order
    - `IsAvailable` boolean — Is available
    - `IsHiddenFromCustomers` boolean — Is hidden from customer. Perhaps when the item is out of stock.
    - `ImageUrl` string — Image url
    - `MenuSectionId` integer — Menu Section Id
    - `PublicId` string, uuid — Permanent reference to the item.
  - `TaxRates` CreateMenuTaxRate[] — Menu tax rates
    - `Name` string — Name of Tax Rate
    - `Rate` number, double — In Percentage
  - `DisplaySectionLinks` boolean — Display menu section link on UI
  - `MenuSectionBehaviour` 'ExpandSingle' | 'ExpandMultiple' — Menu section behaviour
  - `TaxType` 'IncludedInBasePrice' | 'ExcludedFromBasePrice' — Tax type
  - `IsIntegrated` boolean — Flag to indicate if the menu is integrated (contains metadata)

## Response `200`

OK

- integer

## Other responses

- `400` — BadRequest
- `401` — Authentication has been denied for this request.
- `403` — Successful authentication, but authorization has been denied for this request.

---

[API](https://skmtc.net/flipdish/apis/flipdish-open-api-v1-0.md) · [All operations](https://skmtc.net/flipdish/apis/flipdish-open-api-v1-0/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/flipdish/flipdish-open-api-v1-0/versions/a72c0465da74/schema)
