---
title: Product API
description: >-
The Product API provides read-only access to product data. Use this API to get
product information and build contextual experiences based on the selected
product context. The API offers product details for implementing
product-specific functionality and workflows.
api_version: 2025-10
api_name: pos-ui-extensions
source_url:
html: >-
https://shopify.dev/docs/api/pos-ui-extensions/latest/target-apis/contextual-apis/product-api
md: >-
https://shopify.dev/docs/api/pos-ui-extensions/latest/target-apis/contextual-apis/product-api.md
---
# Product API
The Product API provides read-only access to product data. Use this API to get product information and build contextual experiences based on the selected product context. The API offers product details for implementing product-specific functionality and workflows.
## ProductApi
The `ProductApi` object provides access to product data. Access this property through `shopify.product` to interact with the current product context.
* id
number
required
The unique identifier for the product. Use for product lookups, implementing product-specific functionality, and integrating with external systems.
* variantId
number
required
The unique identifier for the product variant. Use for variant-specific operations, cart additions, and inventory management.
## Best practices
* **Use product ID for data lookups:** Use the product ID to fetch additional product information from external systems, inventory management platforms, or Shopify APIs when building comprehensive product experiences.
* **Implement variant-specific features:** Use the variant ID to enable specialized functionality like variant-specific pricing, inventory checks, or cart operations.
* **Validate product access:** Verify that the product ID and variant ID are valid before performing product-specific operations or external API calls.
## Limitations
Product data reflects the current POS session and may not include real-time updates from other channels until the session is refreshed.
## Examples
Learn how to access product information in product detail contexts.
### Examples
* #### Retrieve a product ID
##### Description
Access the unique identifier of the current product in a product detail action context. This example shows how to use \`shopify.product.id\` to retrieve the product ID. This can be used for fetching additional product data, analytics, or implementing product-specific features and workflows.
##### jsx
```jsx
import {render} from 'preact';
export default async () => {
render(, document.body);
};
const Extension = () => {
return (
Product ID: {shopify.product.id}
);
};
```
* #### Retrieve product and product variant IDs
##### Description
Access both product and variant identifiers to implement variant-specific functionality. This example shows how to retrieve \`shopify.product.id\` and \`shopify.product.variantId\` together. Use this pattern for variant-aware features like inventory checks, variant-specific pricing, or detailed product information displays.
##### jsx
```jsx
import {render} from 'preact';
export default async () => {
render(, document.body);
};
const Extension = () => {
const {id, variantId} = shopify.product;
return (
Product ID: {id}
Variant ID: {variantId}
);
};
```