List Variations
Retrieve all product variations for a store product, along with the variation options they are built from.
Endpointโ
GET /v1/store-products/{id}/variations
Authenticationโ
Requires an API key with the store:read scope.
Parametersโ
| Parameter | Type | Location | Description |
|---|---|---|---|
id | integer | path | The store product ID |
Responseโ
Success (200 OK)โ
{
"data": {
"product_id": 1,
"has_variations": true,
"variation_options": [
{
"id": 1,
"name": "Size",
"values": ["Small", "Medium", "Large"]
},
{
"id": 2,
"name": "Color",
"values": ["Red", "Blue", "Green"]
}
],
"variations": [
{
"id": 1,
"name": "Small / Red",
"sku": "WIDGET-SM-R",
"price_override": 15.99,
"stock_quantity": 25,
"option_values": [
{
"option_id": 1,
"option_name": "Size",
"value": "Small"
},
{
"option_id": 2,
"option_name": "Color",
"value": "Red"
}
],
"created_at": "2026-02-15T12:00:00+00:00",
"updated_at": "2026-02-15T12:00:00+00:00"
},
{
"id": 2,
"name": "Medium / Blue",
"sku": "WIDGET-MD-B",
"price_override": null,
"stock_quantity": 10,
"option_values": [
{
"option_id": 1,
"option_name": "Size",
"value": "Medium"
},
{
"option_id": 2,
"option_name": "Color",
"value": "Blue"
}
],
"created_at": "2026-02-15T12:00:00+00:00",
"updated_at": "2026-02-15T12:00:00+00:00"
}
]
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-15T12:00:00+00:00"
}
}
note
If the product does not have variations enabled, has_variations will be false and both variation_options and variations will be empty arrays.
Response Fieldsโ
Variation Objectโ
| Field | Type | Description |
|---|---|---|
id | integer | Unique variation identifier |
name | string | Auto-generated name from option values (e.g., "Small / Red") |
sku | string|null | Optional SKU for this variation |
price_override | float|null | Price override (null means use the base product price) |
stock_quantity | integer | Stock quantity for this variation |
option_values | array | The option values that make up this variation |
option_values[].option_id | integer | The variation option ID |
option_values[].option_name | string | The variation option name |
option_values[].value | string | The selected value for this option |
created_at | string | ISO 8601 datetime |
updated_at | string | ISO 8601 datetime |
tip
When price_override is null, the variation uses the base product price. Set a price_override to charge a different amount for a specific variation.
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 401 | invalid_api_key | Invalid API key |
| 403 | insufficient_scope | API key lacks store:read scope |
| 404 | resource_not_found | Store product does not exist |
Example Requestโ
curl -X GET "https://app.equipdash.com/api/v1/store-products/1/variations" \
-H "Authorization: Bearer eqd_live_abc123xyz789..."