CDP REST APIAPI Reference
Get Product
Fetch one Shopify product through the live products proxy.
GET /cdp/commerce/products/{id} fetches one product from Shopify through the
CDP API. Pass either a Shopify numeric product id or a full GraphQL gid. The
response uses the same normalized contract as the products list.
Requires the beta:cdp-commerce permission on your brand and a connected
Shopify token that can read products — read_products, or write_products
(which Shopify treats as granting read access).
Request
GET /cdp/commerce/products/{id}
Authorization: Bearer vyg_...Path parameters
| Param | Type | Description |
|---|---|---|
id | string | Shopify product id, numeric or gid:// format. |
Response 200
{
"id": "gid://shopify/Product/123",
"title": "Classic Tee",
"status": "ACTIVE",
"variants": [
{
"id": "gid://shopify/ProductVariant/456",
"price": "29.00",
"sku": "TEE-BLK-M"
}
],
"images": [
{
"id": "gid://shopify/MediaImage/789",
"url": "https://cdn.shopify.com/...",
"altText": "Black classic tee"
}
]
}| Field | Type | Description |
|---|---|---|
id | string | Shopify GraphQL product id. |
title | string | null | Product title. |
status | string | null | Shopify product status. |
variants | array | Variant id, price, and sku. |
images | array | Image id, url, and alt text. |
Example
curl -s "https://cdp.vyg.app/cdp/commerce/products/1234567890" \
-H "Authorization: Bearer vyg_your_key_here"Errors
| Status | When |
|---|---|
400 | Missing product id. |
401 | Missing or invalid credential. |
403 | Brand not enrolled in the commerce beta, no connected Shopify integration, or the token cannot read products (needs read_products or write_products). |
404 | Product not found in the connected shop. |
429 | Shopify throttled the product request after bounded retry. The response includes Retry-After. |
405 | Non-GET method. |
502 | Shopify returned an unexpected upstream error. |
The endpoint returns product data only. It does not expose Shopify customer, order, inventory, fulfillment, discount, or credential data.