CDP REST APIAPI Reference
List Products
List a brand's Shopify product catalog through the live products proxy.
GET /cdp/commerce/products lists your brand's Shopify product catalog through
the CDP API. Products come from Shopify Admin GraphQL at request time, with a
short read-through cache in front of Shopify. The response is normalized so your
app does not depend on Shopify's raw Admin API shape.
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
Authorization: Bearer vyg_...Query parameters
| Param | Type | Default | Description |
|---|---|---|---|
limit | integer | 25 | Page size, clamped to a maximum of 100. |
cursor | string | - | Shopify cursor from nextCursor on the previous page. |
Response 200
{
"list": [
{
"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"
}
]
}
],
"pageSize": 25,
"scope": "your-shop.myshopify.com",
"nextCursor": "eyJsYXN0X2lkIjoxMjN9"
}| Field | Type | Description |
|---|---|---|
list | array | Normalized products. |
pageSize | integer | Effective page size. |
scope | string | null | Your brand's connected shop domain. |
nextCursor | string | null | Cursor for the next Shopify page, or null at the end. |
Example
curl -s "https://cdp.vyg.app/cdp/commerce/products?limit=25" \
-H "Authorization: Bearer vyg_your_key_here"Errors
| Status | When |
|---|---|
400 | Invalid page size. |
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). |
429 | Shopify throttled the catalog request after bounded retry. The response includes Retry-After. |
405 | Non-GET method. |
502 | Shopify returned an unexpected upstream error. |
The products proxy never exposes Shopify credentials or the raw Admin API response. See Get Product for the single-product contract.