Assets

Get Assets for Organization

GET https://api.spectrumcustomizer.com/api/assets/saved/client/:clientHandle/organization/:clientIdentifier

This endpoint retrieves all uploaded assets assigned to an organization for a given client.

A sibling route also accepts an includeUploadedAssets boolean as a final path segment:

GET https://api.spectrumcustomizer.com/api/assets/saved/client/:clientHandle/organization/:clientIdentifier/include-uploaded-assets/:includeUploadedAssets

Path Parameters

Name Type Description
clientHandle* string Handle of client
clientIdentifier* string Organization identifier (passed as the clientIdentifier route value)
includeUploadedAssets bool Optional path segment on the alternate route. When true, also returns plain uploaded assets.

Optional Querystring Parameters

Name Type Description
page int Page number (1 for first)
pageSize int Number of records per page
service string Filter assets by a specific service
embellishmentType string Filter by embellishment type (e.g. Embroidery, Print, Laser, etc.)
sortOrder string Sort order. Defaults to RecentlyUsed.

200 JSON list of all matching assets

{
  "lastModification": "2023-06-29T19:21:06.8069348+00:00",
  "error": null,
  "apiVersion": "3.0.23173.1",
  "hash": "AfoO01vWutb1C6lHVCpCqw==",
  "paging": {
    "totalRecords": 3,
    "pageCount": 1,
    "page": 1,
    "pageSize": 50
  },
  "contents": [
    {
      "id": 1234,
      "uploadedAssetId": 19695342,
      "uploadedAssetUri": "https://cdn.spectrumcustomizer.com:443/assets/UserUpload/b8873e1d-944f-490a-b0d8-0608f8039a37.png",
      "metaData": {
        "Url": "https://api.spectrumcustomizer.com/api/uploaded-assets/id/19695342"
      },
      "spectrumAssetReference": "CCG60521324002",
      "clientAccountReference": "60521324",
      "organizationIdentifier": "7000000000000300322",
      "userFacingFileName": "white mba used",
      "productionJobs": [
        {
          "id": 16797,
          "uploadedAssetId": 19695342,
          "clientHandle": "carhartt",
          "providerHandle": "midsouth",
          "providerReference": "MS-BG9RRNAH",
          "reference": "CCG60521324002",
          "clientReference": "CCG60521324002",
          "template": "LIGHT",
          "productColor": "Navy",
          "placement": "RC",
          "placementWidth": {
            "value": "3.50n",
            "type": "Big Number"
          },
          "placementHeight": {
            "value": "3.00n",
            "type": "Big Number"
          },
          "notes": "Keep uploaded logo color(s) ",
          "createdDate": "2021-05-04T13:31:29.967",
          "workFlowType": "New",
          "embellishmentType": "Embroidery",
          "status": "Completed",
          "result": {
            "id": 16730,
            "receivedDate": "2021-05-04T13:31:29.967",
            "threadCount": 4060,
            "actualHeight": {
              "value": "3.00n",
              "type": "Big Number"
            },
            "actualWidth": {
              "value": "3.50n",
              "type": "Big Number"
            },
            "lastModification": "2022-05-08T18:32:37.607",
            "outputs": [
              {
                "id": 0,
                "convertedAssetId": null,
                "uri": "https://stospectprodglobal.blob.core.windows.net/carhartt/embroidery/CCG60521324002/CCG60521324002R1.DST",
                "assetFormat": {
                  "id": 1008,
                  "extension": ".dst",
                  "mimeType": "application/octet-stream",
                  "clientHandle": "carhartt",
                  "requiresConversion": false,
                  "isImage": true,
                  "isRaster": false,
                  "conversionAssetFormat": null,
                  "name": "Data Stitch Tajima"
                }
              },
              {
                "id": 0,
                "convertedAssetId": null,
                "uri": "https://stospectprodglobal.blob.core.windows.net/carhartt/embroidery/CCG60521324002/CCG60521324002R1.PNG",
                "assetFormat": {
                  "id": 1,
                  "extension": ".png",
                  "mimeType": "image/png",
                  "clientHandle": null,
                  "requiresConversion": false,
                  "isImage": true,
                  "isRaster": true,
                  "conversionAssetFormat": null,
                  "name": "Portable Network Graphics"
                }
              },
              {
                "id": 0,
                "convertedAssetId": null,
                "uri": "https://stospectprodglobal.blob.core.windows.net/carhartt/embroidery/CCG60521324002/CCG60521324002R1.PDF",
                "assetFormat": {
                  "id": 3,
                  "extension": ".pdf",
                  "mimeType": "application/pdf",
                  "clientHandle": null,
                  "requiresConversion": true,
                  "isImage": true,
                  "isRaster": false,
                  "conversionAssetFormat": {
                    "id": 1,
                    "extension": ".png",
                    "mimeType": "image/png",
                    "clientHandle": null,
                    "requiresConversion": false,
                    "isImage": true,
                    "isRaster": true,
                    "conversionAssetFormat": null,
                    "name": "Portable Network Graphics"
                  },
                  "name": "Portable Document Format"
                }
              }
            ]
          },
          "specificationUri": "https://stospectprodglobal.blob.core.windows.net/carhartt/embroidery/CCG60521324002/CCG60521324002R1.PDF",
          "dstUri": "https://stospectprodglobal.blob.core.windows.net/carhartt/embroidery/CCG60521324002/CCG60521324002R1.DST",
          "lastModification": "2022-05-08T18:32:37.493"
        },
        {
          "id": 24305,
          "uploadedAssetId": 19695342,
          "clientHandle": "carhartt",
          "providerHandle": "midsouth",
          "providerReference": "MS-YB73P8F9",
          "reference": "CCG60521324001",
          "clientReference": "CCG60521324001",
          "template": "LIGHT",
          "productColor": "Black",
          "placement": "RC",
          "placementWidth": {
            "value": "3.50n",
            "type": "Big Number"
          },
          "placementHeight": {
            "value": "3.00n",
            "type": "Big Number"
          },
          "notes": "Keep uploaded logo color(s) ",
          "createdDate": "2021-05-04T13:31:29.967",
          "workFlowType": "New",
          "embellishmentType": "Embroidery",
          "status": "Completed",
          "result": {
            "id": 24101,
            "receivedDate": "2022-01-20T04:31:58.387",
            "threadCount": 4060,
            "actualHeight": {
              "value": "3.00n",
              "type": "Big Number"
            },
            "actualWidth": {
              "value": "3.00n",
              "type": "Big Number"
            },
            "lastModification": "2022-08-16T03:18:48.383",
            "outputs": [
              {
                "id": 0,
                "convertedAssetId": null,
                "uri": "https://stospectprodglobal.blob.core.windows.net/carhartt/embroidery/CCG60521324001/CCG60521324001R1.DST",
                "assetFormat": {
                  "id": 1008,
                  "extension": ".dst",
                  "mimeType": "application/octet-stream",
                  "clientHandle": "carhartt",
                  "requiresConversion": false,
                  "isImage": true,
                  "isRaster": false,
                  "conversionAssetFormat": null,
                  "name": "Data Stitch Tajima"
                }
              },
              {
                "id": 0,
                "convertedAssetId": null,
                "uri": "https://stospectprodglobal.blob.core.windows.net/carhartt/embroidery/CCG60521324001/CCG60521324001R1.PNG",
                "assetFormat": {
                  "id": 1,
                  "extension": ".png",
                  "mimeType": "image/png",
                  "clientHandle": null,
                  "requiresConversion": false,
                  "isImage": true,
                  "isRaster": true,
                  "conversionAssetFormat": null,
                  "name": "Portable Network Graphics"
                }
              },
              {
                "id": 0,
                "convertedAssetId": null,
                "uri": "https://stospectprodglobal.blob.core.windows.net/carhartt/embroidery/CCG60521324001/CCG60521324001R1.PDF",
                "assetFormat": {
                  "id": 3,
                  "extension": ".pdf",
                  "mimeType": "application/pdf",
                  "clientHandle": null,
                  "requiresConversion": true,
                  "isImage": true,
                  "isRaster": false,
                  "conversionAssetFormat": {
                    "id": 1,
                    "extension": ".png",
                    "mimeType": "image/png",
                    "clientHandle": null,
                    "requiresConversion": false,
                    "isImage": true,
                    "isRaster": true,
                    "conversionAssetFormat": null,
                    "name": "Portable Network Graphics"
                  },
                  "name": "Portable Document Format"
                }
              }
            ]
          },
          "specificationUri": "https://stospectprodglobal.blob.core.windows.net/carhartt/embroidery/CCG60521324001/CCG60521324001R1.PDF",
          "dstUri": "https://stospectprodglobal.blob.core.windows.net/carhartt/embroidery/CCG60521324001/CCG60521324001R1.DST",
          "lastModification": "2022-08-16T03:18:47.913"
        }
      ],
      "hasProductionJob": true,
      "clientHandle": "carhartt",
      "active": true,
      "createdDate": "2022-04-05T15:06:58.69",
      "lastModification": "2022-04-05T15:06:58.69"
    },
    {
      "id": 8059,
      "uploadedAssetId": 19654081,
      "uploadedAssetUri": "https://cdn.spectrumcustomizer.com:443/assets/UserUpload/Square_abbccda3-a188-45d0-8c65-12e21da29ad9.png",
      "metaData": {
        "Url": "https://api.spectrumcustomizer.com/api/uploaded-assets/id/19654081"
      },
      "spectrumAssetReference": null,
      "clientAccountReference": "60521324",
      "organizationIdentifier": "7000000000000300322",
      "userFacingFileName": "mba logo only",
      "productionJobs": null,
      "hasProductionJob": false,
      "clientHandle": "carhartt",
      "active": true,
      "createdDate": "2022-04-05T17:43:15.65",
      "lastModification": "2022-04-05T17:43:15.65"
    },
    {
      "id": 8073,
      "uploadedAssetId": 19661033,
      "uploadedAssetUri": "https://cdn.spectrumcustomizer.com:443/assets/UserUpload/Square_2d03a3b1-ab34-4b07-a1a4-ff496505a8b5.png",
      "metaData": {
        "Url": "https://api.spectrumcustomizer.com/api/uploaded-assets/id/19661033"
      },
      "spectrumAssetReference": null,
      "clientAccountReference": "60521324",
      "organizationIdentifier": "7000000000000300322",
      "userFacingFileName": "white MBA",
      "productionJobs": null,
      "hasProductionJob": false,
      "clientHandle": "carhartt",
      "active": true,
      "createdDate": "2022-04-05T17:43:34.837",
      "lastModification": "2022-04-05T17:43:34.837"
    }
  ]
}

Note: When no assets match the supplied client/organization the endpoint returns 200 OK with an empty contents array and paging.totalRecords: 0 — it does not return 404. Unhandled errors are returned as an RFC 7807 ProblemDetails document (status 500) with a link to the relevant log entry.

Get Changed SKU Assets

GET https://api.spectrumcustomizer.com/api/assets/client/:clientHandle/skus/changed

Returns the SKUs whose generated assets (images, video, and/or 3D) changed within a time window. This endpoint is designed for incremental synchronization: poll it on a schedule, persist the greatest lastModified you receive, and use that value as the from bound on your next run.

Authenticate with the SPECTRUM_API_TOKEN header. The API key must be authorized for the requested clientHandle.

Path Parameters

Name Type Description
clientHandle* string Handle of client

Querystring Parameters

Name Type Description
from* string Start of the window, ISO 8601. Exclusive — only records with lastModified strictly greater than from are returned. Required unless snapshotToken is supplied.
to* string End of the window, ISO 8601. Inclusive. Required unless snapshotToken is supplied. If a date with no time component is supplied (e.g. 2026-01-31), it is treated as the end of that day.
types string Comma-separated asset types to include: images, video, 3d. Defaults to all types configured for the client.
page int Page number (1-based, default 1). Clamped to ≥ 1.
pageSize int Results per page (default 50, max 500). Clamped to [1, 500].
sortDirection string Sort by lastModified: asc (default) or desc. Unknown values fall back to ascending.
snapshotToken string Server-issued token for a stable, point-in-time paging view. When supplied, from and to are ignored and paging continues against the original snapshot.

Date range semantics

The window is half-open: from < lastModified <= to (from exclusive, to inclusive).

Because from is exclusive, a record whose lastModified equals the from you pass is not returned again. This lets you store the maximum lastModified from one run and pass it verbatim as the from of the next run without re-fetching the boundary records:

run 1:  from = <last sync time>   to = <now-1>   →  save max(lastModified) = M
run 2:  from = M                  to = <now-2>   →  records with lastModified > M only

Note: Prior to this change the from bound was inclusive, which caused boundary-second records to be returned on consecutive runs. from is now exclusive for all clients.

200 JSON

{
  "clientHandle": "sanmar",
  "from": "2026-09-01T01:09:41Z",
  "to": "2026-09-03T00:00:00Z",
  "page": 1,
  "pageSize": 50,
  "totalCount": 2,
  "hasNextPage": false,
  "snapshotToken": "eyJ0IjoiMjAyNi0wOS0wM1QwMDowMDowMFoifQ",
  "results": [
    {
      "sku": "11053_SftyOrg",
      "lastModified": "2026-09-02T18:22:10Z",
      "downloadUrl": "https://api.spectrumcustomizer.com/api/assets/client/sanmar/sku/11053_SftyOrg/download",
      "assets": {
        "images": [
          { "angle": "front", "url": "https://.../11053_SftyOrg_front.png", "lastModified": "2026-09-02T18:22:10Z" }
        ],
        "video": { "url": "https://.../11053_SftyOrg.mp4", "lastModified": "2026-09-02T18:20:03Z" },
        "3d": { "url": "https://.../11053_SftyOrg.glb", "lastModified": "2026-09-02T18:21:47Z" }
      }
    }
  ]
}

Only the asset groups you requested via types (and that exist for the SKU) are present in each assets object; empty groups are omitted.

Responses

Status Meaning
200 Success. Returns the paged list of changed SKUs.
400 Missing or invalid from/to, from after to, an invalid types value, or an invalid snapshotToken.
401 API key is not authorized for the requested client.
404 Client not found.
500 Unhandled error. Returns an RFC 7807 ProblemDetails document with a link to the relevant log entry.

Copyright ©2026 All rights reserved | Terms & Privacy