Skip to content

Get Product

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).

GET /cdp/commerce/products/{id}
Authorization: Bearer vyg_...
ParamTypeDescription
idstringShopify product id, numeric or gid:// format.
{
"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"
}
]
}
FieldTypeDescription
idstringShopify GraphQL product id.
titlestring | nullProduct title.
statusstring | nullShopify product status.
variantsarrayVariant id, price, and sku.
imagesarrayImage id, url, and alt text.
Terminal window
curl -s "https://cdp.vyg.app/cdp/commerce/products/1234567890" \
-H "Authorization: Bearer vyg_your_key_here"
StatusWhen
400Missing product id.
401Missing or invalid credential.
403Brand not enrolled in the commerce beta, no connected Shopify integration, or the token cannot read products (needs read_products or write_products).
404Product not found in the connected shop.
429Shopify throttled the product request after bounded retry. The response includes Retry-After.
405Non-GET method.
502Shopify returned an unexpected upstream error.

The endpoint returns product data only. It does not expose Shopify customer, order, inventory, fulfillment, discount, or credential data.