Get Variation
Retrieve a single variation by ID.
Endpointโ
GET /v1/products/{id}/variations/{variationId}
Authenticationโ
Requires an API key with the products:read scope.
Parametersโ
| Parameter | Type | Location | Description |
|---|---|---|---|
id | integer | path | The product ID |
variationId | integer | path | The variation ID |
Responseโ
Success (200 OK)โ
{
"data": {
"id": 3,
"sku": "BIKE-L-RED",
"display_name": "BIKE-L-RED",
"description": "Riders 5'9\" and up",
"image": null,
"values": [
{
"property_id": 1,
"property_name": "Size",
"value": "Large"
},
{
"property_id": 2,
"property_name": "Color",
"value": "Red"
}
],
"inventory_count": 5
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-01T10:00:00+00:00"
}
}
Response Fieldsโ
| Field | Type | Description |
|---|---|---|
id | integer | Unique identifier |
sku | string | Stock keeping unit |
display_name | string | Human-readable label. Falls back to property values (e.g. "Large ยท Red") when SKU is empty, or "Variation" if neither is set. Use this for UI labels rather than reconstructing from sku + values. |
description | string | Short explainer shown under the variation name when customers choose an option (e.g. a size guide). null when not set. |
image | string | Image path (if set) |
values | array | Property values for this variation |
values[].property_id | integer | Property ID |
values[].property_name | string | Property name (e.g., "Size") |
values[].value | string | Property value (e.g., "Large") |
inventory_count | integer | Number of inventory items for this variation |
Example Requestโ
curl -X GET "https://app.equipdash.com/api/v1/products/1/variations/3" \
-H "Authorization: Bearer YOUR_API_KEY"
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 403 | insufficient_scope | API key lacks products:read scope |
| 404 | resource_not_found | Product or variation not found |