---
title: "Gets a sellable item for an item base with a specified head office entity Hopk for a specified site, and its related data"
method: GET
path: "/ocapi/v1/sites/{siteId}/sellable-items/by-hopk/{itemHopk}"
tags: ["Items"]
---

# Gets a sellable item for an item base with a specified head office entity Hopk for a specified site, and its related data

`GET /ocapi/v1/sites/{siteId}/sellable-items/by-hopk/{itemHopk}`

## Request

- Base URL: `https://developer.vista.co` (the document declares no server; this is the origin it was published from)
- URL: `https://developer.vista.co/ocapi/v1/sites/{siteId}/sellable-items/by-hopk/{itemHopk}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/vista/apis/vista-digital-platform/docs/ocapi/v1/sites/:siteId/sellable-items/by-hopk/:itemHopk/get.ts> (a function with typed inputs; its response is checked against the schema)

#### Licenses Required


- Vista.Ocapi

## Path parameters

- `siteId` string, required
- `itemHopk` string, required

## Headers

- `Connect-Region-Code` string

## Response `200`

Success

- OcapiV1SalesMasterDataItemsSellableSellableItemDetails: Represents the details of a sellable item entity, and its related data
  - `sellableItem` union, required: Represents the details of an item base entity that can be purchased directly
    - OcapiV1SalesMasterDataItemsSellableSellableItem: Represents the details of an item base entity that can be purchased directly
      - `itemId` string, required: Gets the unique identifier of the item base entity
      - `prices` OcapiV1SalesMasterDataItemsPricesItemPrice[], required: Gets the list of item price entities
        - `price` OcapiV1MonetaryValue, required: Represents a monetary value, and its related tax value
          - `valueIncludingTax` number, double, required: Gets the monetary value including tax
          - `valueExcludingTax` number, double, required: Gets the monetary value excluding tax
          - `tax` number, double, required: Gets the amount of tax
        - `isDefault` boolean, required: Gets a value indicating whether this is the default price
        - `restrictions` OcapiV1SalesMasterDataItemsPricesItemPriceRestriction[], required: Gets the restrictions that apply
        - `rewardId` integer, nullable: Gets the unique identifier of the reward that the price is restricted to
        - `discount` OcapiV1SalesMasterDataPricesPriceDiscount: Represents the calculation logic and savings associated with a discounted price
          - `calculation` union, required: Represents the base properties that describe the calculation of a discount
            - OcapiV1DiscountCalculationsPercentageOffDiscountCalculation: Represents a percentage-off type of discount calculation base
              - …
            - OcapiV1DiscountCalculationsPriceOffDiscountCalculation: Represents a price-off type of discount calculation base
              - …
            - OcapiV1DiscountCalculationsSpecialPriceDiscountCalculation: Represents a special-price type of discount calculation base
              - …
          - `amountSaved` OcapiV1MonetaryValue, required: Represents a monetary value, and its related tax value
            - `valueIncludingTax` number, double, required: Gets the monetary value including tax
            - `valueExcludingTax` number, double, required: Gets the monetary value excluding tax
            - `tax` number, double, required: Gets the amount of tax
        - `discountId` string, nullable: Gets the unique identifier of the discount that the price is restricted to
    - OcapiV1SalesMasterDataItemsProfilesItemProfileButton: Represents a button within an item profile page that's used to display a sellable item
      - `itemId` string, required: Gets the unique identifier of the item base entity
      - `prices` OcapiV1SalesMasterDataItemsPricesItemPrice[], required: Gets the list of item price entities
        - `price` OcapiV1MonetaryValue, required: Represents a monetary value, and its related tax value
          - `valueIncludingTax` number, double, required: Gets the monetary value including tax
          - `valueExcludingTax` number, double, required: Gets the monetary value excluding tax
          - `tax` number, double, required: Gets the amount of tax
        - `isDefault` boolean, required: Gets a value indicating whether this is the default price
        - `restrictions` OcapiV1SalesMasterDataItemsPricesItemPriceRestriction[], required: Gets the restrictions that apply
        - `rewardId` integer, nullable: Gets the unique identifier of the reward that the price is restricted to
        - `discount` OcapiV1SalesMasterDataPricesPriceDiscount: Represents the calculation logic and savings associated with a discounted price
          - `calculation` union, required: Represents the base properties that describe the calculation of a discount
            - OcapiV1DiscountCalculationsPercentageOffDiscountCalculation: Represents a percentage-off type of discount calculation base
              - …
            - OcapiV1DiscountCalculationsPriceOffDiscountCalculation: Represents a price-off type of discount calculation base
              - …
            - OcapiV1DiscountCalculationsSpecialPriceDiscountCalculation: Represents a special-price type of discount calculation base
              - …
          - `amountSaved` OcapiV1MonetaryValue, required: Represents a monetary value, and its related tax value
            - `valueIncludingTax` number, double, required: Gets the monetary value including tax
            - `valueExcludingTax` number, double, required: Gets the monetary value excluding tax
            - `tax` number, double, required: Gets the amount of tax
        - `discountId` string, nullable: Gets the unique identifier of the discount that the price is restricted to
      - `title` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
        - `text` string, required: Gets the text in the default language
        - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
          - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
          - `text` string, required: Gets the translated text
      - `displayPriority` integer, required: Gets the display priority used for sorting
  - `relatedData` OcapiV1SalesMasterDataItemsSellableSellableItemRelatedData, required: Related data for a sellable item entity
    - `item` union, required: Represents the base properties of an item that is available for sale
      - OcapiV1SalesMasterDataItemsWeightBasedWeightBasedItem: Represents the base properties of an item that is available for sale
        - `id` string, required: Gets the unique identifier
        - `name` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `shortName` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `description` OcapiV1Translatable: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `restrictions` OcapiV1SalesMasterDataItemsItemRestriction[], required: Gets the restrictions that apply
        - `type` 'Normal' | 'ParentSales' | 'Package' | 'Recipe' | 'WeightBased', required: Represents the type of an item base entity
        - `itemClassId` string, nullable: Gets the unique identifier of the item class the item belongs to, if applicable
        - `hopk` string, nullable: Gets the Head Office primary key
        - `hoCode` string, required: Gets the Head Office code
        - `isSundry` boolean, required: Gets a value indicating whether this is a sundry item
        - `isPreparationRequired` boolean, required: Gets a value indicating whether the item requires preparation
        - `allowedDeliveryMethods` OcapiV1SalesMasterDataItemsDeliveryMethodsItemDeliveryMethod[], required: Gets the list of allowed item delivery method entities
        - `availableHoursId` string, nullable: Gets the unique identifier of the available hours entity
        - `barcodes` string[], required: Gets the list of barcodes configured on the item at cinema
      - OcapiV1SalesMasterDataItemsRecipeRecipeItem: Represents an item base that supports item modifier group entities and has one or more recipe item Components, e.g. a drink made up of a cup, straw, post-mix syrup, and ice
        - `id` string, required: Gets the unique identifier
        - `name` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `shortName` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `description` OcapiV1Translatable: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `restrictions` OcapiV1SalesMasterDataItemsItemRestriction[], required: Gets the restrictions that apply
        - `itemClassId` string, nullable: Gets the unique identifier of the item class the item belongs to, if applicable
        - `hopk` string, nullable: Gets the Head Office primary key
        - `hoCode` string, required: Gets the Head Office code
        - `isSundry` boolean, required: Gets a value indicating whether this is a sundry item
        - `isPreparationRequired` boolean, required: Gets a value indicating whether the item requires preparation
        - `allowedDeliveryMethods` OcapiV1SalesMasterDataItemsDeliveryMethodsItemDeliveryMethod[], required: Gets the list of allowed item delivery method entities
        - `availableHoursId` string, nullable: Gets the unique identifier of the available hours entity
        - `barcodes` string[], required: Gets the list of barcodes configured on the item at cinema
        - `modifierGroups` OcapiV1SalesMasterDataItemsNormalNormalItemModifierGroup[], required: Gets the list of normal item modifier group entities
          - `itemModifierGroupId` string, required: Gets the unique identifier of the item modifier group
          - `displayPriority` integer, required: Gets the display priority used for sorting
        - `type` 'Normal' | 'ParentSales' | 'Package' | 'Recipe' | 'WeightBased', required: Represents the type of an item base entity
        - `components` OcapiV1SalesMasterDataItemsRecipeRecipeItemComponent[], required: Gets the list of recipe item component entities
          - `itemId` string, required: Gets the unique identifier of the item base entity
          - `isModifiable` boolean, required: Gets a value indicating whether the component can be modified via an order recipe item component modification
          - `displayPriority` integer, required: Gets the display priority used for sorting
          - `prices` OcapiV1SalesMasterDataItemsPricesItemPrice[], required: Gets the list of item price entities incurred when adding extra of the component to the recipe
            - `price` OcapiV1MonetaryValue, required: Represents a monetary value, and its related tax value
              - …
            - `isDefault` boolean, required: Gets a value indicating whether this is the default price
            - `restrictions` OcapiV1SalesMasterDataItemsPricesItemPriceRestriction[], required: Gets the restrictions that apply
            - `rewardId` integer, nullable: Gets the unique identifier of the reward that the price is restricted to
            - `discount` OcapiV1SalesMasterDataPricesPriceDiscount: Represents the calculation logic and savings associated with a discounted price
              - …
            - `discountId` string, nullable: Gets the unique identifier of the discount that the price is restricted to
      - OcapiV1SalesMasterDataItemsParentSalesParentSalesItem: Represents the base properties of an item that is available for sale
        - `id` string, required: Gets the unique identifier
        - `name` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `shortName` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `description` OcapiV1Translatable: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `restrictions` OcapiV1SalesMasterDataItemsItemRestriction[], required: Gets the restrictions that apply
        - `type` 'Normal' | 'ParentSales' | 'Package' | 'Recipe' | 'WeightBased', required: Represents the type of an item base entity
        - `itemClassId` string, nullable: Gets the unique identifier of the item class the item belongs to, if applicable
        - `hopk` string, nullable: Gets the Head Office primary key
        - `hoCode` string, required: Gets the Head Office code
        - `isSundry` boolean, required: Gets a value indicating whether this is a sundry item
        - `isPreparationRequired` boolean, required: Gets a value indicating whether the item requires preparation
        - `allowedDeliveryMethods` OcapiV1SalesMasterDataItemsDeliveryMethodsItemDeliveryMethod[], required: Gets the list of allowed item delivery method entities
        - `availableHoursId` string, nullable: Gets the unique identifier of the available hours entity
        - `barcodes` string[], required: Gets the list of barcodes configured on the item at cinema
      - OcapiV1SalesMasterDataItemsPackagesPackageItem: Represents the base properties of an item that is available for sale
        - `id` string, required: Gets the unique identifier
        - `name` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `shortName` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `description` OcapiV1Translatable: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `restrictions` OcapiV1SalesMasterDataItemsItemRestriction[], required: Gets the restrictions that apply
        - `type` 'Normal' | 'ParentSales' | 'Package' | 'Recipe' | 'WeightBased', required: Represents the type of an item base entity
        - `itemClassId` string, nullable: Gets the unique identifier of the item class the item belongs to, if applicable
        - `hopk` string, nullable: Gets the Head Office primary key
        - `hoCode` string, required: Gets the Head Office code
        - `isSundry` boolean, required: Gets a value indicating whether this is a sundry item
        - `isPreparationRequired` boolean, required: Gets a value indicating whether the item requires preparation
        - `allowedDeliveryMethods` OcapiV1SalesMasterDataItemsDeliveryMethodsItemDeliveryMethod[], required: Gets the list of allowed item delivery method entities
        - `availableHoursId` string, nullable: Gets the unique identifier of the available hours entity
        - `barcodes` string[], required: Gets the list of barcodes configured on the item at cinema
      - OcapiV1SalesMasterDataItemsNormalNormalItem: Represents the base properties of an item that is available for sale
        - `id` string, required: Gets the unique identifier
        - `name` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `shortName` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `description` OcapiV1Translatable: Represents some customer-visible translatable Text in the default language, and a list of translation entities
          - `text` string, required: Gets the text in the default language
          - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
            - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
            - `text` string, required: Gets the translated text
        - `restrictions` OcapiV1SalesMasterDataItemsItemRestriction[], required: Gets the restrictions that apply
        - `type` 'Normal' | 'ParentSales' | 'Package' | 'Recipe' | 'WeightBased', required: Represents the type of an item base entity
        - `itemClassId` string, nullable: Gets the unique identifier of the item class the item belongs to, if applicable
        - `hopk` string, nullable: Gets the Head Office primary key
        - `hoCode` string, required: Gets the Head Office code
        - `isSundry` boolean, required: Gets a value indicating whether this is a sundry item
        - `isPreparationRequired` boolean, required: Gets a value indicating whether the item requires preparation
        - `allowedDeliveryMethods` OcapiV1SalesMasterDataItemsDeliveryMethodsItemDeliveryMethod[], required: Gets the list of allowed item delivery method entities
        - `availableHoursId` string, nullable: Gets the unique identifier of the available hours entity
        - `barcodes` string[], required: Gets the list of barcodes configured on the item at cinema
    - `discounts` OcapiV1SalesMasterDataDiscountsDiscount[], required: Gets the list of related discount entities
      - `id` string, required: Gets the unique identifier
      - `name` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
        - `text` string, required: Gets the text in the default language
        - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
          - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
          - `text` string, required: Gets the translated text
      - `restriction` 'None' | 'Multiple' | 'MemberReward' | 'Voucher' | 'Availability', required: Represents the restriction options for a discount
      - `restrictions` OcapiV1SalesMasterDataDiscountsDiscountRestriction[], required: Gets the restrictions
      - `rewardIds` integer[], required: Gets the list of unique identifiers of the reward entities that the discount is restricted to
      - `voucherTypeCodes` string[], required: Gets the list of unique identifiers of the voucher types that the discount is restricted to
      - `expiresAt` string, date-time, required: Gets the date and time that the discount expires
    - `itemModifierGroups` OcapiV1SalesMasterDataItemsModifiersItemModifierGroup[], required: Gets the list of related item modifier group entities
      - `id` string, required: Gets the unique identifier
      - `name` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
        - `text` string, required: Gets the text in the default language
        - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
          - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
          - `text` string, required: Gets the translated text
      - `shortName` OcapiV1Translatable, required: Represents some customer-visible translatable Text in the default language, and a list of translation entities
        - `text` string, required: Gets the text in the default language
        - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
          - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
          - `text` string, required: Gets the translated text
      - `promptText` OcapiV1Translatable: Represents some customer-visible translatable Text in the default language, and a list of translation entities
        - `text` string, required: Gets the text in the default language
        - `translations` OcapiV1Translation[], required: Gets the translations of the translatable Text in other languages
          - `languageTag` string, required: Gets the IETF (RFC 4646) language tag that the translation Text has been translated for
          - `text` string, required: Gets the translated text
      - `quantityLimit` OcapiV1QuantityLimit, required: Represents a limited or unlimited quantity
        - `isUnlimited` boolean, required: Gets a value indicating whether the quantity is unlimited
        - `maximum` integer, nullable: Gets the maximum quantity allowed
        - `minimum` integer, required: Gets the minimum quantity allowed (0 by default)
      - `includedQuantity` integer, required: Gets a value indicating the number of item modifier entities that can be added to a supported normal item at no additional charge
      - `modifiers` OcapiV1SalesMasterDataItemsModifiersItemModifier[], required: Gets the list of item modifier entities
        - `itemId` string, required: Gets the unique identifier of the item base entity
        - `prices` OcapiV1SalesMasterDataItemsPricesItemPrice[], required: Gets the list of item price entities
          - `price` OcapiV1MonetaryValue, required: Represents a monetary value, and its related tax value
            - `valueIncludingTax` number, double, required: Gets the monetary value including tax
            - `valueExcludingTax` number, double, required: Gets the monetary value excluding tax
            - `tax` number, double, required: Gets the amount of tax
          - `isDefault` boolean, required: Gets a value indicating whether this is the default price
          - `restrictions` OcapiV1SalesMasterDataItemsPricesItemPriceRestriction[], required: Gets the restrictions that apply
          - `rewardId` integer, nullable: Gets the unique identifier of the reward that the price is restricted to
          - `discount` OcapiV1SalesMasterDataPricesPriceDiscount: Represents the calculation logic and savings associated with a discounted price
            - `calculation` union, required: Represents the base properties that describe the calculation of a discount
              - …
            - `amountSaved` OcapiV1MonetaryValue, required: Represents a monetary value, and its related tax value
              - …
          - `discountId` string, nullable: Gets the unique identifier of the discount that the price is restricted to
        - `displayPriority` integer, required: Gets the display priority used for sorting

## Other responses

- `404`: Site or item does not exist.

## Changes

- **2026-10-09** `41415d239083`: 5 warning
  - added the new `DiningLocationDelivery` enum value to the `relatedData/allOf[subschema #1: SellableItemRelatedData]/item/oneOf[subschema #1: WeightBasedItem]/allOf[subschema #1: ItemBase]/allowedDeliveryMethods/items/` response property for the response status `200`
  - added the new `DiningLocationDelivery` enum value to the `relatedData/allOf[subschema #1: SellableItemRelatedData]/item/oneOf[subschema #2: RecipeItem]/allowedDeliveryMethods/items/` response property for the response status `200`
  - added the new `DiningLocationDelivery` enum value to the `relatedData/allOf[subschema #1: SellableItemRelatedData]/item/oneOf[subschema #3: ParentSalesItem]/allOf[subschema #1: ItemBase]/allowedDeliveryMethods/items/` response property for the response status `200`
  - added the new `DiningLocationDelivery` enum value to the `relatedData/allOf[subschema #1: SellableItemRelatedData]/item/oneOf[subschema #4: PackageItem]/allOf[subschema #1: ItemBase]/allowedDeliveryMethods/items/` response property for the response status `200`
  - …1 more

[Operation history](https://skmtc.dev/vista/apis/vista-digital-platform/changes/ocapi/v1/sites/:siteId/sellable-items/by-hopk/:itemHopk/get.md)

---

[API](https://skmtc.dev/vista/apis/vista-digital-platform.md) - [All operations](https://skmtc.dev/vista/apis/vista-digital-platform/llms.txt) - [OpenAPI document](https://skmtc.dev/vista/apis/vista-digital-platform/revisions/c46f30854000?raw)
