# Get product details v1.1

`GET /api/v1.1/Tenants/{tenantId}/Products/{id}`

Core API · Products · base URL `https://core-api.ancon.io` · auth: `Access-Token` header · docs: https://ancon.dev/api/core/products/get-product-details-v1-1

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `tenantId` | string (uuid) | yes |  |
| `id` | string (uuid) | yes |  |

## Header parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `correlationId` | string | no | Correlation Id for the request |

## Responses

| Status | Description |
| --- | --- |
| 200 | OK |
| 401 | Unauthorized |
| 404 | Not Found |

### 200 response (`application/json`)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `product` | object or null | no |  |
| `product.id` | string (uuid) | no |  |
| `product.created` | string (date-time) | no |  |
| `product.modified` | string (date-time) | no |  |
| `product.productType` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`. |
| `product.name` | string or null | no |  |
| `product.customerFacingName` | string or null | no |  |
| `product.ticketName` | string or null | no |  |
| `product.productNumber` | string or null | no |  |
| `product.description` | string or null | no |  |
| `product.allergyInformation` | string or null | no |  |
| `product.image` | string (uuid) or null | no |  |
| `product.useAvailabilityHours` | boolean | no |  |
| `product.hasVariants` | boolean | no |  |
| `product.mandatoryToPickVariant` | boolean | no |  |
| `product.autoAccept` | boolean | no |  |
| `product.flowViewEnabled` | boolean | no |  |
| `product.glassesPerBottle` | number (double) or null | no |  |
| `product.availableVolumes` | array<integer (int32)> or null | no |  |
| `product.isSystemProduct` | boolean | no |  |
| `product.metaData` | map<string, array<array<array<array>>>> or null | no |  |
| `product.productGroup` | object or null | no |  |
| `product.productGroup.id` | string (uuid) | no |  |
| `product.productGroup.name` | string or null | no |  |
| `product.course` | object or null | no |  |
| `product.course.id` | string (uuid) | no |  |
| `product.course.name` | string or null | no |  |
| `product.course.code` | string or null | no |  |
| `product.course.position` | integer (int32) | no |  |
| `product.course.courseGroupId` | string (uuid) | no |  |
| `product.variants` | array<object> or null | no |  |
| `product.variants[].id` | string (uuid) | no |  |
| `product.variants[].name` | string or null | no |  |
| `product.variants[].customerFacingName` | string or null | no |  |
| `product.variants[].ticketName` | string or null | no |  |
| `product.variants[].variantType` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`. |
| `product.variants[].isMainProductVariant` | boolean | no |  |
| `product.variants[].useBasePrice` | boolean | no |  |
| `product.variants[].isOpenPrice` | boolean | no |  |
| `product.variants[].variantNumber` | string or null | no |  |
| `product.variants[].variantPrice` | object or null | no |  |
| `product.variants[].variantPrice.unitPrice` | object or null | no |  |
| `product.variants[].variantPrice.unitPrice.amount` | number (double) | no |  |
| `product.variants[].variantPrice.unitPrice.currency` | string or null | no |  |
| `product.variants[].variantPrice.additionalPrice` | object or null | no |  |
| `product.variants[].variantPrice.additionalPrice.amount` | number (double) | no |  |
| `product.variants[].variantPrice.additionalPrice.currency` | string or null | no |  |
| `product.variants[].overridePrices` | array<object> or null | no |  |
| `product.variants[].overridePrices[].outletId` | string (uuid) or null | no |  |
| `product.variants[].overridePrices[].priceGroupId` | string (uuid) or null | no |  |
| `product.variants[].overridePrices[].orderFormat` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, `159`, `191`. |
| `product.variants[].overridePrices[].outletName` | string or null | no |  |
| `product.variants[].overridePrices[].priceGroupName` | string or null | no |  |
| `product.variants[].overridePrices[].price` | object or null | no |  |
| `product.variants[].overridePrices[].price.unitPrice` | object or null | no |  |
| `product.variants[].overridePrices[].price.unitPrice.amount` | number (double) | no |  |
| `product.variants[].overridePrices[].price.unitPrice.currency` | string or null | no |  |
| `product.variants[].overridePrices[].price.additionalPrice` | object or null | no |  |
| `product.variants[].overridePrices[].price.additionalPrice.amount` | number (double) | no |  |
| `product.variants[].overridePrices[].price.additionalPrice.currency` | string or null | no |  |
| `product.variants[].materialCost` | object or null | no |  |
| `product.variants[].materialCost.unitPrice` | object or null | no |  |
| `product.variants[].materialCost.unitPrice.amount` | number (double) | no |  |
| `product.variants[].materialCost.unitPrice.currency` | string or null | no |  |
| `product.variants[].materialCost.additionalPrice` | object or null | no |  |
| `product.variants[].materialCost.additionalPrice.amount` | number (double) | no |  |
| `product.variants[].materialCost.additionalPrice.currency` | string or null | no |  |
| `product.variants[].position` | integer (int32) | no |  |
| `product.variants[].outletStocks` | array<object> or null | no |  |
| `product.variants[].outletStocks[].stockProductId` | string (uuid) | no |  |
| `product.variants[].outletStocks[].outletId` | string (uuid) | no |  |
| `product.variants[].outletStocks[].productVariantId` | string (uuid) | no |  |
| `product.variants[].outletStocks[].stockCount` | number (double) | no |  |
| `product.variants[].outletStocks[].reorderCount` | number (double) | no |  |
| `product.variants[].pricePresets` | array<object> or null | no |  |
| `product.variants[].pricePresets[].pricePresetId` | string (uuid) | no |  |
| `product.variants[].pricePresets[].pricePresetName` | string or null | no |  |
| `product.variants[].pricePresets[].price` | object or null | no |  |
| `product.variants[].pricePresets[].price.unitPrice` | object or null | no |  |
| `product.variants[].pricePresets[].price.unitPrice.amount` | number (double) | no |  |
| `product.variants[].pricePresets[].price.unitPrice.currency` | string or null | no |  |
| `product.variants[].pricePresets[].price.additionalPrice` | object or null | no |  |
| `product.variants[].pricePresets[].price.additionalPrice.amount` | number (double) | no |  |
| `product.variants[].pricePresets[].price.additionalPrice.currency` | string or null | no |  |
| `product.variants[].pricePresets[].position` | integer (int32) | no |  |
| `product.outletShares` | array<object> or null | no |  |
| `product.outletShares[].id` | string (uuid) | no |  |
| `product.outletShares[].name` | string or null | no |  |
| `product.outletShares[].productShareType` | integer (int32) | no | Allowed values: `0`, `1`. |
| `product.taxes` | array<object> or null | no |  |
| `product.taxes[].id` | string (uuid) | no |  |
| `product.taxes[].taxType` | integer (int32) | no | Allowed values: `1`, `2`. |
| `product.taxes[].rate` | number (double) | no |  |
| `product.menuTreeItems` | array<object> or null | no |  |
| `product.menuTreeItems[].id` | string (uuid) | no |  |
| `product.menuTreeItems[].menuTreeBranchId` | string (uuid) | no |  |
| `product.menuTreeItems[].menuTreeBranchName` | string or null | no |  |
| `product.productAvailabilities` | array<object> or null | no |  |
| `product.productAvailabilities[].systemVisibility` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`. |
| `product.productAvailabilities[].orderFormat` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, `159`, `191`. |
| `product.availabilityHours` | array<object> or null | no |  |
| `product.availabilityHours[].id` | string (uuid) | no |  |
| `product.availabilityHours[].orderFormat` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, `159`, `191`. |
| `product.availabilityHours[].systemVisibility` | integer (int32) or null | no | Allowed values: `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`. |
| `product.availabilityHours[].dayOfWeek` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `4`, `8`, `16`, `31`, `32`, `64`, `96`, `127`. |
| `product.availabilityHours[].from` | string (time) | no |  |
| `product.availabilityHours[].duration` | string (date-span) | no |  |
| `product.ticketDestinations` | array<object> or null | no |  |
| `product.ticketDestinations[].id` | string (uuid) | no |  |
| `product.ticketDestinations[].name` | string or null | no |  |
| `product.addOnGroups` | array<object> or null | no |  |
| `product.addOnGroups[].id` | string (uuid) | no |  |
| `product.addOnGroups[].addOnGroupId` | string (uuid) | no |  |
| `product.addOnGroups[].addOnGroupName` | string or null | no |  |
| `product.addOnGroups[].position` | integer (int32) | no |  |
| `product.addOnGroups[].minimumAmount` | number (double) | no |  |
| `product.addOnGroups[].maximumAmount` | number (double) | no |  |
| `product.addOnGroups[].allowMultiple` | boolean | no |  |
| `product.addOnGroups[].freeAmount` | number (double) | no |  |
| `product.addOnGroups[].afterFreePrice` | object or null | no |  |
| `product.addOnGroups[].afterFreePrice.amount` | number (double) | no |  |
| `product.addOnGroups[].afterFreePrice.currency` | string or null | no |  |
| `product.addOnGroups[].customerFacingName` | string or null | no |  |
| `product.upsellGroups` | array<object> or null | no |  |
| `product.upsellGroups[].id` | string (uuid) | no |  |
| `product.upsellGroups[].name` | string or null | no |  |
| `product.ingredients` | array<object> or null | no |  |
| `product.ingredients[].id` | string (uuid) | no |  |
| `product.ingredients[].ingredientId` | string (uuid) | no |  |
| `product.ingredients[].ingredientName` | string or null | no |  |
| `product.ingredients[].isMandatory` | boolean | no |  |
| `product.ingredients[].hasReplacements` | boolean | no |  |
| `product.ingredients[].position` | integer (int32) | no |  |
| `product.ingredients[].replacements` | array<object> or null | no |  |
| `product.ingredients[].replacements[].ingredientId` | string (uuid) | no |  |
| `product.ingredients[].replacements[].ingredientName` | string or null | no |  |
| `product.ingredients[].replacements[].ingredientPrice` | number (double) | no |  |
| `product.ingredients[].replacements[].position` | integer (int32) | no |  |
| `product.ingredients[].replacements[].overridePrice` | boolean | no |  |
| `product.ingredients[].replacements[].price` | number (double) | no |  |
| `product.ingredients[].replacements[].currency` | string or null | no |  |
| `product.ingredients[].replacements[].prices` | array<object> or null | no |  |
| `product.ingredients[].replacements[].prices[].outletId` | string (uuid) or null | no |  |
| `product.ingredients[].replacements[].prices[].priceGroupId` | string (uuid) or null | no |  |
| `product.ingredients[].replacements[].prices[].orderFormats` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, `159`, `191`. |
| `product.ingredients[].replacements[].prices[].outletName` | string or null | no |  |
| `product.ingredients[].replacements[].prices[].priceGroupName` | string or null | no |  |
| `product.ingredients[].replacements[].prices[].orderFormatName` | string or null | no |  |
| `product.ingredients[].replacements[].prices[].price` | object or null | no |  |
| `product.ingredients[].replacements[].prices[].price.amount` | number (double) | no |  |
| `product.ingredients[].replacements[].prices[].price.currency` | string or null | no |  |
| `product.productTags` | array<object> or null | no |  |
| `product.productTags[].id` | string (uuid) | no |  |
| `product.productTags[].name` | string or null | no |  |
| `product.productTags[].type` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `3`. |
| `product.productGroupTags` | array<object> or null | no |  |
| `product.productGroupTags[].id` | string (uuid) | no |  |
| `product.productGroupTags[].name` | string or null | no |  |
| `product.productGroupTags[].type` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `3`. |
| `product.subProducts` | array<object> or null | no |  |
| `product.subProducts[].id` | string (uuid) | no |  |
| `product.subProducts[].productId` | string (uuid) | no |  |
| `product.subProducts[].variantId` | string (uuid) or null | no |  |
| `product.subProducts[].productName` | string or null | no |  |
| `product.subProducts[].useOverridePrice` | boolean | no |  |
| `product.subProducts[].position` | integer (int32) | no |  |
| `product.subProducts[].quantity` | number (double) | no |  |
| `product.subProducts[].outletShares` | array<string (uuid)> or null | no |  |
| `product.subProducts[].taxes` | array<object> or null | no |  |
| `product.subProducts[].taxes[].id` | string (uuid) | no |  |
| `product.subProducts[].taxes[].taxType` | integer (int32) | no | Allowed values: `1`, `2`. |
| `product.subProducts[].taxes[].rate` | number (double) | no |  |
| `product.subProducts[].subProductVariants` | array<object> or null | no |  |
| `product.subProducts[].subProductVariants[].variantId` | string (uuid) | no |  |
| `product.subProducts[].subProductVariants[].variantName` | string or null | no |  |
| `product.subProducts[].subProductVariants[].price` | object or null | no |  |
| `product.subProducts[].subProductVariants[].price.unitPrice` | object or null | no |  |
| `product.subProducts[].subProductVariants[].price.unitPrice.unitPrice` | object or null | no |  |
| `product.subProducts[].subProductVariants[].price.unitPrice.additionalPrice` | object or null | no |  |
| `product.subProducts[].subProductVariants[].price.materialCost` | object or null | no |  |
| `product.subProducts[].subProductVariants[].price.materialCost.unitPrice` | object or null | no |  |
| `product.subProducts[].subProductVariants[].price.materialCost.additionalPrice` | object or null | no |  |
| `product.subProducts[].subProductVariants[].overridePrice` | object or null | no |  |
| `product.subProducts[].subProductVariants[].overridePrice.unitPrice` | object or null | no |  |
| `product.subProducts[].subProductVariants[].overridePrice.unitPrice.unitPrice` | object or null | no |  |
| `product.subProducts[].subProductVariants[].overridePrice.unitPrice.additionalPrice` | object or null | no |  |
| `product.subProducts[].subProductVariants[].overridePrice.materialCost` | object or null | no |  |
| `product.subProducts[].subProductVariants[].overridePrice.materialCost.unitPrice` | object or null | no |  |
| `product.subProducts[].subProductVariants[].overridePrice.materialCost.additionalPrice` | object or null | no |  |
| `product.hasIngredients` | boolean | no |  |
| `product.hasAddOnGroups` | boolean | no |  |
| `product.hasUpsellGroups` | boolean | no |  |
| `product.hasProductTags` | boolean | no |  |
| `product.hasProductGroupTags` | boolean | no |  |

#### Example (from schema)

```json
{
  "product": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "created": "2026-01-15T12:00:00Z",
    "modified": "2026-01-15T12:00:00Z",
    "productType": 0,
    "name": "string",
    "customerFacingName": "string",
    "ticketName": "string",
    "productNumber": "string",
    "description": "string",
    "allergyInformation": "string",
    "image": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "useAvailabilityHours": true,
    "hasVariants": true,
    "mandatoryToPickVariant": true,
    "autoAccept": true,
    "flowViewEnabled": true,
    "glassesPerBottle": 0,
    "availableVolumes": [
      0
    ],
    "isSystemProduct": true,
    "metaData": {},
    "productGroup": {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "string"
    },
    "course": {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "string",
      "code": "string",
      "position": 0,
      "courseGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    },
    "variants": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "name": "string",
        "customerFacingName": "string",
        "ticketName": "string",
        "variantType": 0,
        "isMainProductVariant": true,
        "useBasePrice": true,
        "isOpenPrice": true,
        "variantNumber": "string",
        "variantPrice": {
          "unitPrice": {
            "amount": 0,
            "currency": "string"
          },
          "additionalPrice": {
            "amount": 0,
            "currency": "string"
          }
        },
        "overridePrices": [
          {
            "outletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "priceGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "orderFormat": 0,
            "outletName": "string",
            "priceGroupName": "string",
            "price": {}
          }
        ],
        "materialCost": {
          "unitPrice": {
            "amount": 0,
            "currency": "string"
          },
          "additionalPrice": {
            "amount": 0,
            "currency": "string"
          }
        },
        "position": 0,
        "outletStocks": [
          {
            "stockProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "outletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "productVariantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "stockCount": 0,
            "reorderCount": 0
          }
        ],
        "pricePresets": [
          {
            "pricePresetId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "pricePresetName": "string",
            "price": {},
            "position": 0
          }
        ]
      }
    ],
    "outletShares": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "name": "string",
        "productShareType": 0
      }
    ],
    "taxes": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "taxType": 1,
        "rate": 0
      }
    ],
    "menuTreeItems": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "menuTreeBranchId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "menuTreeBranchName": "string"
      }
    ],
    "productAvailabilities": [
      {
        "systemVisibility": 0,
        "orderFormat": 0
      }
    ],
    "availabilityHours": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "orderFormat": 0,
        "systemVisibility": 0,
        "dayOfWeek": 0,
        "from": "string",
        "duration": "string"
      }
    ],
    "ticketDestinations": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "name": "string"
      }
    ],
    "addOnGroups": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "addOnGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "addOnGroupName": "string",
        "position": 0,
        "minimumAmount": 0,
        "maximumAmount": 0,
        "allowMultiple": true,
        "freeAmount": 0,
        "afterFreePrice": {
          "amount": 0,
          "currency": "string"
        },
        "customerFacingName": "string"
      }
    ],
    "upsellGroups": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "name": "string"
      }
    ],
    "ingredients": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "ingredientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "ingredientName": "string",
        "isMandatory": true,
        "hasReplacements": true,
        "position": 0,
        "replacements": [
          {
            "ingredientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "ingredientName": "string",
            "ingredientPrice": 0,
            "position": 0,
            "overridePrice": true,
            "price": 0,
            "currency": "string",
            "prices": []
          }
        ]
      }
    ],
    "productTags": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "name": "string",
        "type": 0
      }
    ],
    "productGroupTags": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "name": "string",
        "type": 0
      }
    ],
    "subProducts": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "variantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "productName": "string",
        "useOverridePrice": true,
        "position": 0,
        "quantity": 0,
        "outletShares": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ],
        "taxes": [
          {
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "taxType": 1,
            "rate": 0
          }
        ],
        "subProductVariants": [
          {
            "variantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "variantName": "string",
            "price": {},
            "overridePrice": {}
          }
        ]
      }
    ],
    "hasIngredients": true,
    "hasAddOnGroups": true,
    "hasUpsellGroups": true,
    "hasProductTags": true,
    "hasProductGroupTags": true
  }
}
```

### 401 response (`application/json`)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string or null | no |  |

#### Example (from schema)

```json
{
  "message": "string"
}
```

### 404 response (`application/json`)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string or null | no |  |
| `errorCode` | string (uuid) | no |  |

#### Example (from schema)

```json
{
  "message": "string",
  "errorCode": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
```

## Example request

```bash
curl -X GET "https://core-api.ancon.io/api/v1.1/Tenants/{tenantId}/Products/{id}" \
  -H "Access-Token: $ANCON_TOKEN"
```
