Asset APIs
GETGet Assets
Fetch assets grouped by `parent_code` and `channel`.
Requests go to the live API through streamoid.com and act on your real data.
Fetch the assets linked to products, grouped by
parent_code and then by channel. Each returned asset is an object {<image attribute name>: <url>, asset_id: <id>}, sorted by rank; the attribute name comes from the channel's image configuration, so rank 1 of SMP is Image URL 1. Pass parent_code to fetch only that product's assets. offset and limit page each requested channel on its own, and total_groups is the sum of every channel's own total.Authorization
AuthorizationstringrequiredheaderBearer token,
Bearer <token>. Create one under Tokens in your workspace.Query parameters
store_uuidstringrequiredStore identifier
Example:
699ec31355208b213e56059achannelstringChannel(s) to filter by, comma-separated to query several at once (e.g. SMP,AMAZON). If omitted, the channel is auto-detected: catalogix-taxonomy stores default to SMP, brand-taxonomy stores use the store's brand, or the first mapped channel of the brand taxonomy when no brand is set. Each explicitly requested channel must already be enabled on the store's settings, or the request fails with 400; for a brand store with a brand set it must equal that brand.
Example:
SMP,AMAZONasset_formatstringdefault: "image"Asset format filter. Valid values: image, video, pdf, 3D, text.
Allowed:
image video pdf 3D textparent_codestringReturn only the assets of this parent code. One value only: a blank value or a repeated parameter fails with 422. Omit it to list every parent code.
Example:
SKU001offsetintegerdefault: 0Pagination offset, applied independently to each requested channel (not shared across a comma-separated channel list). Must be 0 or greater.
limitintegerdefault: 50Results per page per channel (max 50). With multiple comma-separated channels, each channel gets its own page of up to this many groups. The response can contain more than
limit groups in total. Must be between 1 and 50.Headers
X-Request-IdstringOptional trace ID. If not provided, one is generated automatically
Responses
200Assets fetched successfully
statusobjectFields
codeinteger0 = success, -1 = error
Example:
0messagestringExample:
SUCCESSrequest_idstringExample:
8c8b2b7e-23d7-4c2a-91b0-2a7c4dfbb312dataobjectFields
total_groupsintegerSum of each requested channel's own total_groups (not deduplicated across channels).
Example:
10returned_groupsintegerNumber of (parent_code, channel) groups actually returned on this page, across all requested channels.
Example:
2assetsobjectKeyed by parent_code, then by channel ({parent_code: {channel: {...}}}), so the same parent_code returned across several requested channels doesn't collide.
400Validation error, or the requested channel is not enabled for this store
statusstringdefault: "error"The status of the request, typically 'error'
detailstringrequiredA description of the error
401Unauthorized – Bearer token missing or invalid
statusobjectFields
codeintegerExample:
-1messagestringExample:
Unauthorized – invalid or missing Bearer token422Validation error: a missing `store_uuid`, a non-integer or out-of-range `offset` or `limit`, or a blank or repeated `parent_code`
detailobject[]Item fields
locstring | integer[]requireddefault: ["body",""]msgstringrequireddefault: "Field Required"typestringrequireddefault: "missing"500Internal server error
statusobjectFields
codeintegerExample:
-1messagestringExample:
Internal server error. Please contact support@catalogix.ai502Downstream service unavailable
statusstringdefault: "error"The status of the request, typically 'error'
detailstringrequiredA description of the error
Fetch assets grouped by parent_code and channel. Although the public API is GET, the service internally calls the downstream bulk filter API using POST.
Request Tracing
Pass X-Request-Id in the request header for traceability. If omitted, the service generates a UUID automatically. The request_id is returned in every response under status.request_id.
Validation
store_uuidis requiredlimitis capped at50asset_formatvalues are loaded dynamically from the global config API; fallback values areimage,video,pdf,3D,text
Response Example
data.assets is keyed by parent_code, then by channel, so the same parent_code returned across several requested channels (see ?channel=SMP,AMAZON) doesn't collide. With multiple channels, offset/limit apply independently to each, and total_groups is the sum of each channel's own total.
JSON
{
"status": {
"code": 0,
"message": "SUCCESS",
"request_id": "8c8b2b7e-23d7-4c2a-91b0-2a7c4dfbb312"
},
"data": {
"total_groups": 10,
"returned_groups": 2,
"assets": {
"SKU001": {
"SMP": {
"asset_type": "image",
"store_uuid": "699ec31355208b213e56059a",
"assets": [
{ "Image URL 1": "https://cdn.example.com/img1.jpg", "asset_id": "abc123" },
{ "Image URL 2": "https://cdn.example.com/img2.jpg", "asset_id": "def456" }
]
},
"AMAZON": {
"asset_type": "image",
"store_uuid": "699ec31355208b213e56059a",
"assets": [
{ "Main Image": "https://cdn.example.com/amazon-main.jpg", "asset_id": "ghi789" }
]
}
}
}
}
}Error Response
JSON
{
"status": {
"code": -1,
"message": "ERROR",
"request_id": "8c8b2b7e-23d7-4c2a-91b0-2a7c4dfbb312"
},
"data": {
"error_info": [
{
"reason": "invalid_request",
"details": "store_uuid is required"
}
]
}
}HTTP Status Mapping
| Scenario | HTTP Status | status.code |
|---|---|---|
| Success | 200 | 0 |
| Validation error | 400 | -1 |
| Downstream unavailable | 502 | -1 |
| Unexpected server error | 500 | -1 |
Something missing or unclear? Write to support@streamoid.com.