Skip to main content
GET
/
products
/
{id}
Get product by ID
curl --request GET \
  --url https://integrations.clopos.com/open-api/products/{id} \
  --header 'x-brand: <api-key>' \
  --header 'x-token: <api-key>' \
  --header 'x-venue: <api-key>'
{
  "id": 123,
  "type": "GOODS",
  "name": "<string>",
  "full_name": "<string>",
  "status": 123,
  "price": 123,
  "cost_price": 123,
  "has_modifications": true,
  "modifications": [
    {
      "id": 123,
      "parent_id": 123,
      "type": "MODIFICATION",
      "name": "<string>",
      "price": 123,
      "cost_price": 123,
      "barcode": "<string>",
      "full_name": "<string>",
      "status": 123
    }
  ],
  "modificator_groups": [
    {
      "id": 123,
      "name": "<string>",
      "type": 123,
      "min_select": 123,
      "max_select": 123,
      "modificators": [
        {
          "id": 123,
          "name": "<string>",
          "price": 123,
          "cost_price": 123,
          "max_count": 123,
          "status": true,
          "ingredient": {}
        }
      ]
    }
  ],
  "recipe": [
    {
      "id": 123,
      "type": "PREPARATION",
      "name": "<string>",
      "cost_price": 123,
      "pivot": {
        "gross": "<string>"
      }
    }
  ],
  "packages": [
    {
      "id": 123,
      "name": "<string>",
      "equal": 123
    }
  ],
  "setting": {
    "interval": 123,
    "prices": [
      {
        "price": 123,
        "from": 123
      }
    ]
  },
  "taxes": [
    {
      "id": 123,
      "name": "<string>",
      "rate": 123
    }
  ],
  "tags": [
    {}
  ],
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z"
}

Purpose

Returns a single product from the Clopos catalog, along with related data specific to its type (variants, modifiers, recipe, timer settings, etc.). Use the with parameters to fetch only the sub-resources you need.

HTTP Request

GET https://integrations.clopos.com/open-api/products/{id}

Authorization

The same headers are mandatory for this endpoint:
  • x-token
  • x-brand
  • x-venue

Path Parameters

id
string
required
The product ID (integer or UUID).

Query Parameters

with[]
string
Related data selector. Example: taxes, unit, modifications, modificator_groups, recipe, packages, media, tags, setting. You can include multiple with parameters.
Supported with values may vary based on your backend version.

Request Example

curl -X GET "https://integrations.clopos.com/open-api/products/419?with[]=modifications&with[]=taxes" \
  -H "x-token: oauth_example_token" \
  -H "x-brand: openapitest" \
  -H "x-venue: 1"

Response Examples

200 OK — GOODS Product with Variants

{
  "success": true,
  "data": {
    "id": 419,
    "cid": null,
    "parent_id": null,
    "station_id": null,
    "category_id": null,
    "unit_id": 1,
    "net_output": 1,
    "type": "GOODS",
    "name": "Fanta",
    "parent_name": "",
    "image": null,
    "position": null,
    "barcode": null,
    "gov_code": "654564",
    "status": 1,
    "hidden": 0,
    "sold_by_weight": false,
    "max_age": null,
    "discountable": true,
    "giftable": false,
    "has_modifications": true,
    "meta": {
        "langs": {
            "en": [],
            "az": []
        },
        "availability": {
            "schedules": {
                "itemAvailability": [],
                "itemVisibility": []
            }
        },
        "gov_package_code": "234234324"
    },
    "setting": null,
    "emenu_category_id": null,
    "emenu_position": null,
    "emenu_hidden": false,
    "accounting_category_id": null,
    "description": null,
    "price": 0,
    "cost_price": 0,
    "markup_rate": 0,
    "cooking_time": 0,
    "ignore_service_charge": false,
    "inventory_behavior": 0,
    "low_stock": 0,
    "unit_weight": 1,
    "created_at": "2024-07-01 07:51:25",
    "updated_at": "2024-07-01 08:01:04",
    "deleted_at": null,
    "name_slug": "fanta",
    "full_name": "Fanta",
    "gross_margin": 0,
    "slug": "fanta",
    "color": "00bcd4",
    "is_inventory_behavior_changeable": true,
    "venues": [],
    "properties": [],
    "modifications": [
        {
            "id": 420,
            "cid": null,
            "parent_id": 419,
            "station_id": null,
            "category_id": null,
            "unit_id": 1,
            "net_output": 1,
            "type": "MODIFICATION",
            "name": "0.5 L",
            "parent_name": "Fanta",
            "image": null,
            "position": null,
            "barcode": null,
            "gov_code": null,
            "status": 1,
            "hidden": 0,
            "sold_by_weight": false,
            "max_age": null,
            "discountable": true,
            "giftable": false,
            "has_modifications": false,
            "meta": {
                "langs": {
                    "en": [],
                    "az": []
                },
                "gov_package_code": "234234324"
            },
            "setting": null,
            "emenu_category_id": null,
            "emenu_position": null,
            "emenu_hidden": false,
            "accounting_category_id": null,
            "description": null,
            "price": 5,
            "cost_price": 1,
            "markup_rate": 400,
            "cooking_time": 0,
            "ignore_service_charge": false,
            "inventory_behavior": 0,
            "low_stock": 0,
            "unit_weight": 1,
            "created_at": "2024-07-01 07:51:25",
            "updated_at": "2025-08-22 12:19:43",
            "deleted_at": null,
            "name_slug": "05 l",
            "full_name": "Fanta 0.5 L",
            "gross_margin": 80,
            "slug": "05-l",
            "venues": [],
            "properties": []
        },
        {
            "id": 421,
            "cid": null,
            "parent_id": 419,
            "station_id": null,
            "category_id": null,
            "unit_id": 1,
            "net_output": 1,
            "type": "MODIFICATION",
            "name": "1 L",
            "parent_name": "Fanta",
            "image": null,
            "position": null,
            "barcode": null,
            "gov_code": null,
            "status": 1,
            "hidden": 0,
            "sold_by_weight": false,
            "max_age": null,
            "discountable": true,
            "giftable": false,
            "has_modifications": false,
            "meta": {
                "langs": {
                    "en": [],
                    "az": []
                },
                "gov_package_code": "234234324"
            },
            "setting": null,
            "emenu_category_id": null,
            "emenu_position": null,
            "emenu_hidden": false,
            "accounting_category_id": null,
            "description": null,
            "price": 10,
            "cost_price": 7,
            "markup_rate": 42.8571,
            "cooking_time": 0,
            "ignore_service_charge": false,
            "inventory_behavior": 0,
            "low_stock": 0,
            "unit_weight": 1,
            "created_at": "2024-07-01 07:51:26",
            "updated_at": "2025-09-05 10:32:59",
            "deleted_at": null,
            "name_slug": "1 l",
            "full_name": "Fanta 1 L",
            "gross_margin": 30,
            "slug": "1-l",
            "venues": [],
            "properties": []
        }
    ],
    "taxes": [],
    "tags": [],
    "media": []
  }
}

200 OK — DISH Product with Modifiers

{
  "success": true,
  "data": {
    "price": 200,
    "cost_price": 21.25,
    "id": 1,
    "cid": null,
    "parent_id": null,
    "station_id": 1,
    "category_id": 1,
    "unit_id": 1,
    "net_output": 1,
    "type": "DISH",
    "name": "Mega Wrap Combo with Free Raw Meatball Wrap.",
    "parent_name": "",
    "image": {
        "original": "https://cdn.clopos.com/omega/f78e74e9-75da-468f-b7cf-96bed863832f/original.jpg",
        "extra_large": "https://cdn.clopos.com/omega/f78e74e9-75da-468f-b7cf-96bed863832f/extra_large.jpg",
        "original_large": "https://cdn.clopos.com/omega/f78e74e9-75da-468f-b7cf-96bed863832f/original_large.jpg",
        "thumb": "https://cdn.clopos.com/omega/f78e74e9-75da-468f-b7cf-96bed863832f/thumb.jpg",
        "blur_hash": "LMSPb2j@~Xt7xvfQM{fQxuj[M{ay"
    },
    "position": 1,
    "barcode": "9780750310512",
    "gov_code": null,
    "status": 1,
    "hidden": 0,
    "sold_by_weight": false,
    "max_age": null,
    "discountable": true,
    "giftable": true,
    "has_modifications": false,
    "meta": {
        "allergies": [],
        "diets": [],
        "langs": {
            "en": {
                "name": "Mega Wrap Combo with Free Raw Meatball Wrap.",
                "description": "description test"
            },
            "az": {
                "name": "Mega Wrap Combo with Free Raw Meatball Wrap (AZ)",
                "description": "Sample description text (AZ)"
            },
            "ar": [],
            "tr": [],
            "ru": [],
            "uz": [],
            "kz": [],
            "es": []
        },
        "modifier_pos": {
            "5": 0,
            "8": 1,
            "9": 2,
            "32": 3
        },
        "availability": {
            "itemAvailability": false,
            "itemVisibility": false,
            "schedules": {
                "itemAvailability": [],
                "itemVisibility": []
            }
        },
        "gov_package_code": "564564645"
    },
    "setting": null,
    "emenu_category_id": 1,
    "emenu_position": null,
    "emenu_hidden": false,
    "accounting_category_id": null,
    "description": null,
    "markup_rate": 561.157,
    "cooking_time": 20,
    "ignore_service_charge": false,
    "inventory_behavior": 0,
    "low_stock": 0,
    "unit_weight": 1,
    "created_at": "2024-05-15 12:36:10",
    "updated_at": "2025-09-25 06:26:22",
    "deleted_at": null,
    "name_slug": "mega wrap combo with free raw meatball wrap",
    "full_name": "Mega Wrap Combo with Free Raw Meatball Wrap.",
    "gross_margin": 89.375,
    "slug": "mega-wrap-combo-with-free-raw-meatball-wrap",
    "color": "34495e",
    "venues": [],
    "properties": {
        "measure": 250,
        "measure_unit_id": 5,
        "stop_list_setting": []
    },
    "taxes": [
        {
            "id": 1,
            "type_id": 2,
            "rounding_option": "ROUND_HALF_UP",
            "priority": 1,
            "calculation_type": 1,
            "name": "edv`",
            "rate": 18,
            "meta": null,
            "is_default": false,
            "status": 1,
            "created_at": "2023-04-12T11:14:45.000000Z",
            "deleted_at": null,
            "type": {
                "id": 2,
                "name": "Daxil"
            },
            "has_sale_types": true,
            "sale_types": [
                {
                    "id": 1004,
                    "name": "test",
                    "media": [],
                    "pivot": {
                        "tax_id": 1,
                        "sale_type_id": 1004
                    },
                    "status": []
                },
                {
                    "id": 2,
                    "name": "Delivery",
                    "media": [
                        {
                            "urls": {
                                "original": "https://cdn.clopos.com/_clopos/delivery.png",
                                "large": "https://cdn.clopos.com/_clopos/delivery.png"
                            }
                        }
                    ],
                    "pivot": {
                        "tax_id": 1,
                        "sale_type_id": 2
                    },
                    "status": []
                }
            ]
        }
    ],
    "unit": {
        "id": 1,
        "_lft": 1,
        "_rgt": 4,
        "parent_id": null,
        "name": "piece",
        "type": "PIECE",
        "symbol": "pcs",
        "equal": null,
        "deleted_at": null
    },
    "modificator_groups": [
        {
            "id": 5,
            "name": "Spice Selection",
            "type": 1,
            "min_select": 0,
            "max_select": 1,
            "meta": null,
            "status": true,
            "adjust_to_portion": false,
            "created_at": "2024-05-15T12:36:10.000000Z",
            "updated_at": "2024-05-18T11:47:10.000000Z",
            "deleted_at": null,
            "pivot": {
                "product_id": 1,
                "modificator_group_id": 5
            },
            "modificators": [
                {
                    "id": 22,
                    "dish_id": 0,
                    "ingredient_id": null,
                    "group_id": 5,
                    "name": "Medium Spice",
                    "image": null,
                    "price": 0,
                    "cost_price": 0,
                    "brutto": 0,
                    "default_count": 0,
                    "min_count": 0,
                    "max_count": 1,
                    "meta": null,
                    "status": true,
                    "position": 0,
                    "created_at": "2024-05-15T12:36:10.000000Z",
                    "updated_at": "2024-09-06T18:32:18.000000Z",
                    "deleted_at": null,
                    "media": [],
                    "ingredient": null
                },
                {
                    "id": 23,
                    "dish_id": 0,
                    "ingredient_id": null,
                    "group_id": 5,
                    "name": "Extra Spice",
                    "image": null,
                    "price": 0,
                    "cost_price": 0,
                    "brutto": 0,
                    "default_count": 0,
                    "min_count": 0,
                    "max_count": 1,
                    "meta": null,
                    "status": true,
                    "position": 1,
                    "created_at": "2024-05-15T12:36:10.000000Z",
                    "updated_at": "2024-09-06T18:32:18.000000Z",
                    "deleted_at": null,
                    "media": [],
                    "ingredient": null
                },
                {
                    "id": 187,
                    "dish_id": 0,
                    "ingredient_id": 0,
                    "group_id": 5,
                    "name": "yyy",
                    "image": null,
                    "price": 0,
                    "cost_price": 0,
                    "brutto": 0,
                    "default_count": 0,
                    "min_count": 0,
                    "max_count": 0,
                    "meta": null,
                    "status": true,
                    "position": 2,
                    "created_at": "2024-09-06T18:34:01.000000Z",
                    "updated_at": "2024-09-06T18:35:09.000000Z",
                    "deleted_at": null,
                    "media": [],
                    "ingredient": null
                }
            ]
        }
    ],
    "recipe": [
        {
            "id": 233,
            "cid": null,
            "parent_id": null,
            "station_id": null,
            "category_id": null,
            "unit_id": 1,
            "net_output": 1,
            "type": "PREPARATION",
            "name": "Quzu Y/F",
            "parent_name": "",
            "image": null,
            "position": null,
            "barcode": null,
            "gov_code": null,
            "status": 1,
            "hidden": 0,
            "sold_by_weight": false,
            "max_age": null,
            "discountable": true,
            "giftable": false,
            "has_modifications": false,
            "meta": null,
            "setting": null,
            "emenu_category_id": null,
            "emenu_position": null,
            "emenu_hidden": false,
            "accounting_category_id": null,
            "description": null,
            "price": 0,
            "cost_price": 5,
            "markup_rate": 0,
            "cooking_time": 0,
            "ignore_service_charge": false,
            "inventory_behavior": 0,
            "low_stock": 0,
            "unit_weight": 0,
            "created_at": "2024-05-20 14:08:30",
            "updated_at": "2024-08-30 12:15:27",
            "deleted_at": null,
            "name_slug": "quzu yf",
            "full_name": "Quzu Y/F",
            "gross_margin": 0,
            "slug": "quzu-yf",
            "pivot": {
                "dish_id": 1,
                "ingredient_id": 233,
                "net": "0.000",
                "gross": "1.000",
                "net_put": null
            },
            "properties": [],
            "unit": {
                "id": 1,
                "_lft": 1,
                "_rgt": 4,
                "parent_id": null,
                "name": "piece",
                "type": "PIECE",
                "symbol": "pcs",
                "equal": null,
                "deleted_at": null
            }
        }
    ],
    "tags": [],
    "media": [
        {
            "uuid": "f78e74e9-75da-468f-b7cf-96bed863832f",
            "mime_type": "image/jpeg",
            "size": 152789,
            "urls": {
                "original": "https://cdn.clopos.com/omega/f78e74e9-75da-468f-b7cf-96bed863832f/original.jpg",
                "extra_large": "https://cdn.clopos.com/omega/f78e74e9-75da-468f-b7cf-96bed863832f/extra_large.jpg",
                "original_large": "https://cdn.clopos.com/omega/f78e74e9-75da-468f-b7cf-96bed863832f/original_large.jpg",
                "thumb": "https://cdn.clopos.com/omega/f78e74e9-75da-468f-b7cf-96bed863832f/thumb.jpg"
            },
            "blur_hash": "LMSPb2j@~Xt7xvfQM{fQxuj[M{ay",
            "dimensions": {
                "width": 1373,
                "height": 776
            }
        }
    ]
  }
}

200 OK — TIMER Product

{
  "success": true,
  "data": {
    "id": 407,
    "cid": null,
    "parent_id": null,
    "station_id": null,
    "category_id": 41,
    "unit_id": 1,
    "net_output": 1,
    "type": "TIMER",
    "name": "PS5",
    "parent_name": "",
    "image": null,
    "position": 0,
    "barcode": null,
    "gov_code": null,
    "status": 1,
    "hidden": 0,
    "sold_by_weight": false,
    "max_age": null,
    "discountable": true,
    "giftable": false,
    "has_modifications": false,
    "meta": null,
    "setting": {
        "calculation_methods": 0,
        "interval": 60,
        "prices": [
            {
                "price": 3,
                "from": 120
            }
        ]
    },
    "emenu_category_id": 0,
    "emenu_position": 0,
    "emenu_hidden": false,
    "accounting_category_id": null,
    "description": null,
    "price": 10,
    "cost_price": 0,
    "markup_rate": 0,
    "cooking_time": 0,
    "ignore_service_charge": false,
    "inventory_behavior": 3,
    "low_stock": 0,
    "unit_weight": 1,
    "created_at": "2024-06-06 06:43:42",
    "updated_at": "2024-07-22 08:16:40",
    "deleted_at": null,
    "name_slug": "ps5",
    "full_name": "PS5",
    "gross_margin": 100,
    "slug": "ps5",
    "color": "00bcd4",
    "venues": [],
    "properties": [],
    "taxes": [
        {
            "id": 5,
            "type_id": 3,
            "rounding_option": "ROUND_HALF_UP",
            "priority": 1,
            "calculation_type": 1,
            "name": "Simplified Tax 2%",
            "rate": 6.95,
            "meta": null,
            "is_default": false,
            "status": 1,
            "created_at": "2023-07-24T23:49:53.000000Z",
            "deleted_at": null,
            "type": {
                "id": 3,
                "name": "Sabit vergi"
            },
            "has_sale_types": false,
            "sale_types": []
        }
    ],
    "tags": [],
    "media": []
  }
}

404 Not Found — Product does not exist

{
  "success": false,
  "error": "resource_not_found",
  "message": "Product not found"
}

Field Reference

See the full breakdown of the Product object and nested structures such as modifications and modificator_groups on the List Products page.

Notes

  • If the id parameter is in the wrong format, the backend returns a 400 error; validate it on the client side.
  • Since with parameters are evaluated sequentially, avoid using the same key more than once.
  • Type-specific heavy relationships (for example, large recipe or modificator_groups) can produce large responses; request only what you need.
  • Some fields may be empty or null depending on the product type; use the type field to drive conditional rendering on the client.
  • For TIMER products, the setting.prices array represents additional fees applied after a certain duration.
  • For INGREDIENT products, the packages field shows the package sizes used in stock entries; if not applicable, it is an empty array.

Authorizations

x-token
string
header
required

Access token obtained from /auth endpoint

x-brand
string
header
required

Brand identifier

x-venue
string
header
required

Venue identifier

Path Parameters

id
string
required

Product ID

Response

Product retrieved successfully

id
integer
type
enum<string>

The type of the product.

Available options:
GOODS,
DISH,
TIMER,
PREPARATION,
INGREDIENT,
MODIFICATION
name
string
full_name
string
status
integer
price
number
cost_price
number
has_modifications
boolean

True if the product has variants (modifications).

modifications
object[]

List of product variants (for GOODS).

modificator_groups
object[]

List of modifier groups (for DISH).

recipe
object[]

List of recipe items (for DISH or PREPARATION).

packages
object[]

List of purchasing packages (for INGREDIENT).

setting
object

Pricing rules for TIMER products.

taxes
object[]
tags
object[]
created_at
string<date-time>
updated_at
string<date-time>