Skip to content
Guides
CatalogVariants
catalog:read

List product variants

Lists a product's variants with name, SKU, status, order, and image; supports search and option filters.

GET/v1/catalog/products/{productId}/variants

Lists a product's variants with name, SKU, status, order, and image; supports search and option filters.

Authorization

bearerAuth
AuthorizationBearer <token>

OAuth2 access token issued by Ecomiq Auth.

In: header

Path Parameters

productId*string

Identifier of the product.

Query Parameters

limit?integer

Maximum number of results to return.

Formatint32
cursor?string

Opaque cursor from the previous response. Omit it on the first page.

search?string

Free-text filter. Which fields it covers depends on the resource.

sortBy?string

Field to sort by. Accepted values depend on the resource.

sortDirection?string

Sort direction: asc or desc.

Value in

  • "asc"
  • "desc"
optionKey*array<string>
optionValue*array<string>

Header Parameters

x-Store-Id?string

Store the request acts on. Not needed when the token is bound to a store.

Authorization*string

OAuth 2.0 bearer token.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://example.com/v1/catalog/products/7204558912004325301/variants?optionKey=example&optionValue=example" \  -H "x-Store-Id: <store-id>" \  -H "Authorization: Bearer <token>"
{  "data": [    {      "id": "7204558912004325377",      "name": "Azul / M",      "sku": "POL-001-AZ-M",      "status": "active",      "order": 1,      "imageUrl": "https://cdn.example.com/products/pol-001-az-m.jpg"    }  ],  "hasNextPage": false,  "nextCursor": null,  "totalCount": 1,  "options": [    {      "key": "color",      "name": "Color",      "values": [        "Azul"      ]    },    {      "key": "talla",      "name": "Talla",      "values": [        "M"      ]    }  ]}