API - Overview

API - Assets and imports

Browse the asset catalog, retrieve manifests and files, and import projects.

Endpoint overview

MethodEndpointDescriptionAccess
GET/public-api/v1/assetsLists asset catalog items for the requested type.any authenticated credential
GET/public-api/v1/assets/:type/:assetIdReturns an asset manifest with downloadable file roles.any authenticated credential
GET/public-api/v1/assets/:type/:assetId/files/:roleDownloads an asset file by role.any authenticated credential
GET/public-api/v1/design-importsLists importable Alter-hosted designs.authenticated credential, Business plan required
GET/public-api/v1/design-imports/:idReturns a design import payload and file descriptors.authenticated credential, Business plan required
GET/public-api/v1/design-imports/:id/files/:fileIdDownloads a file from a design import descriptor.authenticated credential, Business plan required

Asset catalog

The asset catalog exposes product source assets, backgrounds, environments, graphic library items, design templates and mockup assets. List endpoints return lightweight descriptors; detail endpoints include file manifests.

TypeDescription
productsBase product assets, previews, 3D models, material and texture descriptors.
backgroundsStatic viewer backgrounds.
environmentsEnvironment maps and preview images.
image_libraryGraphic library assets, including storefront-scoped graphics.
design_templatesDesign template previews and layer file references. Supports product_id filter.
mockupsMockup generator assets, backgrounds and overlay maps. Supports product_id filter.

Example request (fetch)

const assets = await alterFetch('/assets?' + new URLSearchParams({
  type: 'products',
  limit: '20',
  offset: '0',
  search: 'mug'
}));

const details = await alterFetch('/assets/products/4');

const fileResponse = await fetch(
  'https://alterproduct.com/public-api/v1/assets/products/4/files/preview_medium',
  {
    headers: authHeaders
  }
);

const fileBlob = await fileResponse.blob();

Example response

{
  "type": "products",
  "items": [
    {
      "assetType": "products",
      "assetId": "4",
      "title": "Mug 450ml",
      "slug": "product-4",
      "description": "Base product 4",
      "primaryRole": "preview_big",
      "fileCount": 8,
      "remoteVersion": "1.0",
      "thumbnail": {
        "role": "preview_small",
        "fileName": "product-4-preview-small.png",
        "mime": "image/png",
        "downloadPath": "/v1/assets/products/4/files/preview_small"
      },
      "metadata": {
        "productCategoryId": 2,
        "productModelCount": 1,
        "isDedicated": false
      }
    }
  ],
  "total": 1,
  "limit": 20,
  "offset": 0
}

Design imports

Design imports expose Alter-hosted designs and their files for external production or migration flows. Business plan eligibility is checked by the API.

ParameterRequiredDetails
searchnoSearches design title or ID.
offsetnoDefault 0.
limitnoDefault 20, maximum 100.

Example request (fetch)

const imports = await alterFetch('/design-imports?' + new URLSearchParams({
  limit: '20',
  offset: '0',
  search: 'mug'
}));

const details = await alterFetch('/design-imports/381');

const fileId = details.files[0].id;
const fileResponse = await fetch(
  `https://alterproduct.com/public-api/v1/design-imports/381/files/${fileId}`,
  {
    headers: authHeaders
  }
);

const fileBlob = await fileResponse.blob();

Example response

{
  "eligible": true,
  "requiredPlan": "Business",
  "currentPlanName": "Business",
  "designs": [
    {
      "id": 381,
      "title": "Men's T-Shirt",
      "createdAt": "2026-01-03T23:55:05.000Z",
      "sourceStorefrontId": 12,
      "productId": 4,
      "productName": {
        "pl": "Koszulka",
        "en": "T-Shirt"
      },
      "storageMode": "alter",
      "runtimeStatus": {
        "designer": true,
        "viewer": true,
        "configurator": true,
        "customizer": true
      },
      "thumbnail": {
        "kind": "design-mockup",
        "fileId": "7df7...",
        "downloadPath": "/v1/design-imports/381/files/7df7..."
      }
    }
  ],
  "total": 1
}