---
title: "Create a Catalog Item"
method: POST
path: "/api/v1.0/{appId}/catalog/items"
tags: ["CatalogItems"]
---

# Create a Catalog Item

`POST /api/v1.0/{appId}/catalog/items`

[BETA - this endpoint is under development, do not use it in your production system]

## Path parameters

- `appId` string, required

## Request body

- CreateCatalogItem — Create a Catalog Item
  - `Groups` CreateCatalogGroupReference[] — Collection of groups associated with this item
    - `CatalogGroupId` string, required — Identifier of the ProductId to use as SubProduct
    - `CatalogItemId` string — Identifier of the ProductId to use as SubProduct
    - `GroupType` 'ModifierGroup', required — Type of the SupProduct
  - `Metafields` Metafield[] — Collection of metafields
    - `Key` string, required — Key of the metafield. Allowed characters: lowercase letters, numbers, hyphen, underscore and dot
    - `Value` string, required — Value of the metafield.
  - `ItemType` 'Product' | 'Modifier', required — Type of item (Product, Modifier, etc)
  - `Sku` string, required — Stock Keeping Unit (SKU)
  - `Name` string, required — Item name
  - `Description` string — Item description
  - `Price` number, double, required — Item price
  - `ImageFileName` string — Image File Name
  - `Alcohol` boolean — item contains alcohol

## Response `200`

OK

- RestApiResultCatalogItem — Rest api result
  - `Data` CatalogItem, required — CatalogItem
    - `CatalogItemId` string — Unique catalog Item id
    - `IsArchived` boolean — Returns true if the item is archived
    - `Groups` CatalogGroupReference[] — Collection of groups associated with this item
      - `Group` Group — CatalogGroup
        - `CatalogGroupId` string — Unique catalog group id
        - `CatalogItemId` string — Unique catalog item id
        - `IsArchived` boolean — Returns true if the group is archived
        - `MinSelectCount` integer — Minimum number of items that the user has to select
        - `MaxSelectCount` integer, nullable — Maximum number of items that the user has to select
        - `Products` ProductReference[] — Collection of items associated with this product
          - `Item` Product — Product
            - `CatalogItemId` string — Unique catalog Item id
            - `IsArchived` boolean — Returns true if the item is archived
            - `Groups` GroupReference[] — Collection of groups associated with this item
              - …
            - `Metafields` Metafield[] — Collection of metafields
              - …
            - `ProductType` 'Product' | 'Modifier', required — Type of item (Product, Modifier, etc)
            - `Sku` string, required — Stock Keeping Unit (SKU)
            - `Name` string, required — Product name
            - `Description` string — Product description
            - `Price` number, double, required — Product price
            - `ImageFileName` string — Image File Name
            - `Alcohol` boolean — Product contains alcohol
          - `Product` Product — Product
            - `CatalogItemId` string — Unique catalog Item id
            - `IsArchived` boolean — Returns true if the item is archived
            - `Groups` GroupReference[] — Collection of groups associated with this item
              - …
            - `Metafields` Metafield[] — Collection of metafields
              - …
            - `ProductType` 'Product' | 'Modifier', required — Type of item (Product, Modifier, etc)
            - `Sku` string, required — Stock Keeping Unit (SKU)
            - `Name` string, required — Product name
            - `Description` string — Product description
            - `Price` number, double, required — Product price
            - `ImageFileName` string — Image File Name
            - `Alcohol` boolean — Product contains alcohol
          - `CatalogItemId` string, required — Identifier of the CatalogItemId to use as SubProduct
          - `ProductType` 'Product' | 'Modifier', required — Type of the SupProduct
          - `PreselectedQuantity` integer — Quantity of the modifier that will be set when the parent product is placed in the basket
        - `Metafields` Metafield[] — Collection of metafields
          - `Key` string, required — Key of the metafield. Allowed characters: lowercase letters, numbers, hyphen, underscore and dot
          - `Value` string, required — Value of the metafield.
        - `GroupType` 'ModifierGroup', required — Type of group (ModifierGroup, etc)
        - `Sku` string, required — Stock Keeping Unit (SKU)
        - `Name` string, required — Group name
        - `AutogenerateDisplayText` boolean — Autogenerate display text in ordering applications
        - `ImageFileName` string — Image File Name
      - `CatalogGroupId` string, required — Identifier of the ProductId to use as SubProduct
      - `CatalogItemId` string — Identifier of the ProductId to use as SubProduct
      - `GroupType` 'ModifierGroup', required — Type of the SupProduct
    - `Metafields` Metafield[] — Collection of metafields
      - `Key` string, required — Key of the metafield. Allowed characters: lowercase letters, numbers, hyphen, underscore and dot
      - `Value` string, required — Value of the metafield.
    - `ItemType` 'Product' | 'Modifier', required — Type of item (Product, Modifier, etc)
    - `Sku` string, required — Stock Keeping Unit (SKU)
    - `Name` string, required — Item name
    - `Description` string — Item description
    - `Price` number, double, required — Item price
    - `ImageFileName` string — Image File Name
    - `Alcohol` boolean — item contains alcohol

## 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)
