Asset APIs

GETGet Assets

Fetch assets grouped by `parent_code` and `channel`.

GEThttps://api.catalogix.ai/v1/assets
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

Authorizationstringrequiredheader
Bearer token, Bearer <token>. Create one under Tokens in your workspace.

Query parameters

store_uuidstringrequired
Store identifier
Example: 699ec31355208b213e56059a
channelstring
Channel(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,AMAZON
asset_formatstringdefault: "image"
Asset format filter. Valid values: image, video, pdf, 3D, text.
Allowed: image video pdf 3D text
parent_codestring
Return 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: SKU001
offsetintegerdefault: 0
Pagination offset, applied independently to each requested channel (not shared across a comma-separated channel list). Must be 0 or greater.
limitintegerdefault: 50
Results 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-Idstring
Optional trace ID. If not provided, one is generated automatically

Responses

200Assets fetched successfully
statusobject
Fields
codeinteger
0 = success, -1 = error
Example: 0
messagestring
Example: SUCCESS
request_idstring
Example: 8c8b2b7e-23d7-4c2a-91b0-2a7c4dfbb312
dataobject
Fields
total_groupsinteger
Sum of each requested channel's own total_groups (not deduplicated across channels).
Example: 10
returned_groupsinteger
Number of (parent_code, channel) groups actually returned on this page, across all requested channels.
Example: 2
assetsobject
Keyed 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'
detailstringrequired
A description of the error
401Unauthorized – Bearer token missing or invalid
statusobject
Fields
codeinteger
Example: -1
messagestring
Example: Unauthorized – invalid or missing Bearer token
422Validation 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
statusobject
Fields
codeinteger
Example: -1
messagestring
Example: Internal server error. Please contact support@catalogix.ai
502Downstream service unavailable
statusstringdefault: "error"
The status of the request, typically 'error'
detailstringrequired
A 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_uuid is required
  • limit is capped at 50
  • asset_format values are loaded dynamically from the global config API; fallback values are image, 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

ScenarioHTTP Statusstatus.code
Success2000
Validation error400-1
Downstream unavailable502-1
Unexpected server error500-1

Something missing or unclear? Write to support@streamoid.com.

esc