---
title: "Get a single product"
method: GET
path: "/products/{product_id}"
tags: ["Products"]
---

# Get a single product

`GET /products/{product_id}`

Returns a single product object with a given ID.

🔒 Requires: `products:read` scope

## Path parameters

- `product_id` string, required

## Response `200`

- ProductResponse
  - `data` Product, required
    - `account_code` string, nullable — ???
    - `account_code_purchase` string, nullable — ???
    - `active` boolean, required — Indicated whether the Product is active.
    - `attributes` ProductAttribute[], required — A list of attributes
      - `name` string, required — The key for the attribute.
      - `value` string, required — The value for the attribute.
    - `brand` BrandSample, nullable
      - `deleted_at` string, nullable — Deletion timestamp in UTC.
      - `id` string — Auto-generated object ID.
      - `name` string
      - `version` integer — Auto-incrementing object version number.
    - `brand_id` string, UUID, nullable — The brand ID.
    - `button_order` integer — ???
    - `categories` Tag[], required — A list of tag objects.
      - `deleted_at` string, nullable — Deletion timestamp in UTC.
      - `id` string — Auto-generated object ID.
      - `name` string — The Tag name.
      - `version` integer — Auto-incrementing object version number.
    - `composite_bom` object — A bill of materials object. This field is only relevant for composite products. It is a map of product ids to the quantity of each product that is needed to make up the composite product.
    - `created_at` string — Creation timestamp in UTC.
    - `customizations` object[], required — A list of product family customization input fields.
    - `deleted_at` string, nullable — Deletion timestamp in UTC.
    - `description` string, nullable — A detailed description of the Product. **Note** Can contain HTML.
    - `dimensions_unit` 'IN' | 'CM' | 'MM' | 'YD', nullable — Unit of measurement for product dimensions. These are used to calculate variable shipping rates for stores using Lightspeed eCom.
    - `family_id` string, UUID — This is a family identifier. All members of a product family will have the same identifier. In the future, this will replace the variant_parent_id as the family group identifier. This field is currently read-only.
    - `handle` string, required — Product handle. **Note:** Variants share the same handle.
    - `has_inventory` boolean, required — Indicates whether inventory is being tracked for the Product.
    - `has_variants` boolean, required — Indicated whether product has variants.
    - `height` number, nullable — Product height. These are used to calculate variable shipping rates for stores using Lightspeed eCom.
    - `id` string, UUID, required — Auto-generated object ID.
    - `image_thumbnail_url` string
    - `image_url` string
    - `images` ImageSample[], required — A list of image objects.
      - `id` string — Auto-generated object ID.
      - `url` string
      - `version` integer — Auto-incrementing object version number.
    - `is_composite` boolean, required — Indicates whether the Product is a composite one.
    - `length` number, nullable — Product length. These are used to calculate variable shipping rates for stores using Lightspeed eCom.
    - `loyalty_amount` number, nullable — The amount of loyalty the customer receives buying this item.
    - `name` string, required — Product name.
    - `outlet_taxes` object[] — A list of outlet-specific tax overrides. Only present when non-empty.
    - `packaging` object, required — Packaging relationships for this product.
      - `breaks_into` ProductPackage[] — Packages this product can be broken into.
        - `amount` number, required — The quantity involved in the packaging relationship.
        - `destination_product_id` string, UUID — The ID of the destination product (present in breaks_into entries).
        - `package_id` string, UUID, required — Auto-generated package ID.
        - `source_product_id` string, UUID — The ID of the source product (present in made_from entries).
      - `made_from` ProductPackage[] — Packages this product can be made from.
        - `amount` number, required — The quantity involved in the packaging relationship.
        - `destination_product_id` string, UUID — The ID of the destination product (present in breaks_into entries).
        - `package_id` string, UUID, required — Auto-generated package ID.
        - `source_product_id` string, UUID — The ID of the source product (present in made_from entries).
    - `price_excluding_tax` number, required — The price before tax is added.
    - `price_including_tax` number, nullable, required — The price including all the relevant taxes.
    - `product_category` ProductCategory
      - `category_path` ProductCategoryPath[]
        - `id` string, required — Object id of the Product Type in the path.
        - `name` string, required — The Product Type name.
      - `id` string, uuid — The category id
      - `leaf_category` boolean — True if the category does not have any more children (i.e. leaf).
      - `name` string — The name of the category
      - `parent_category_id` string, uuid — The parent category id, or null if its root category.
      - `root_category_id` string, uuid — The category id of the root of the category tree. If category is a root, this will be itself.
    - `product_codes` ProductCode[], required — A list of product code objects.
      - `code` string, required — The sku code being added.
      - `id` string, required — Auto-generated object ID.
      - `type` 'CUSTOM' | 'EAN' | 'ISBN' | 'ITF' | 'JAN' | 'UPC' — The type of code being added.
    - `product_suppliers` ProductSupplier[], required — A list of product supplier objects.
      - `code` string, nullable — The code associated with this supplier.
      - `id` string, UUID, required — Auto-generated object ID.
      - `price` number, double, nullable — The price associated with this supplier.
      - `product_id` string, UUID, required — The ID of the product.
      - `supplier_id` string, UUID, nullable, required — The ID of the supplier.
      - `supplier_name` string, nullable, required — The name of the supplier.
    - `product_type_id` string, UUID, nullable — The product type.
    - `sku` string, required — Product sku. **Note:** Should be unique.
    - `skuImages` ImageSample[], required — A list of variant-level image objects.
      - `id` string — Auto-generated object ID.
      - `url` string
      - `version` integer — Auto-incrementing object version number.
    - `source` string — Indicates the origin of the product. Can be USER, SHOPIFY.
    - `source_id` string, nullable — External reference ID.
    - `source_variant_id` string, nullable — Secondary external reference ID.
    - `supplier` SupplierSample, nullable
      - `deleted_at` string, nullable — Deletion timestamp in UTC.
      - `id` string — Auto-generated object ID.
      - `name` string
    - `supplier_code` string, nullable — Supplier code.
    - `supplier_id` string, UUID, nullable — The supplier ID.
    - `supply_price` number, double — Default supply price,
    - `tag_ids` string[], required — An array of tag IDs associated with this product.
    - `tax_category` string, nullable — Tax category identifier for the product.
    - `type` ProductTypeSample, nullable
      - `category_path` ProductCategoryPath[] — The path of this product type (now product category) in the hierarchy.
        - `id` string, required — Object id of the Product Type in the path.
        - `name` string, required — The Product Type name.
      - `deleted_at` string, nullable — Deletion timestamp in UTC.
      - `id` string — Auto-generated object ID.
      - `leaf_category` boolean — Is this product type (now product category) at the bottom of the hierarchy.
      - `name` string
      - `version` integer — Auto-incrementing object version number.
    - `updated_at` string — Last update timestamp in UTC.
    - `variant_count` integer, nullable — The number of variants for this product.
    - `variant_name` string, nullable — The name of the variant product.
    - `variant_options` VariantOption[], required — A list of variant option objects.
      - `name` string — The Variant Option name.
      - `value` string — The value of a Variant Option.
    - `variant_parent_id` string, UUID, nullable — This value is set if a Product is a variant of another Product.
    - `version` integer, required — Auto-incrementing object version number.
    - `weight` number, nullable — Product weight. These are used to calculate variable shipping rates for stores using Lightspeed eCom.
    - `weight_unit` 'CT' | 'G' | 'OZ' | 'LB' | 'KG', nullable — Unit of measurement for product weight. These are used to calculate variable shipping rates for stores using Lightspeed eCom.
    - `width` number, nullable — Product width. These are used to calculate variable shipping rates for stores using Lightspeed eCom.

---

[API](https://skmtc.net/lightspeedhq/apis/api-2026-07.md) · [All operations](https://skmtc.net/lightspeedhq/apis/api-2026-07/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lightspeedhq/api-2026-07/revisions/72d4ceb46dbb/schema)
