API - Обзор

API - Ресурсы и импорт

Просматривайте каталог ресурсов, скачивайте манифесты и файлы и импортируйте дизайны.

Обзор конечных точек

МетодКонечная точкаОписаниеДоступ
GET/public-api/v1/assetsВозвращает список ресурсов каталога запрошенного типа.любые аутентифицированные учётные данные
GET/public-api/v1/assets/:type/:assetIdВозвращает манифест ресурса с ролями скачиваемых файлов.любые аутентифицированные учётные данные
GET/public-api/v1/assets/:type/:assetId/files/:roleСкачивает файл ресурса по роли.любые аутентифицированные учётные данные
GET/public-api/v1/design-importsВозвращает список доступных для импорта дизайнов, хранящихся в Alter.аутентифицированные учётные данные, требуется тариф Business
GET/public-api/v1/design-imports/:idВозвращает данные импорта дизайна и описания файлов.аутентифицированные учётные данные, требуется тариф Business
GET/public-api/v1/design-imports/:id/files/:fileIdСкачивает файл по описанию импорта дизайна.аутентифицированные учётные данные, требуется тариф Business

Каталог ресурсов

Каталог ресурсов предоставляет исходные ресурсы товаров, фоны, окружения, элементы библиотеки изображений, шаблоны дизайна и ресурсы мокапов. Конечные точки списков возвращают компактные описания, а точки подробных данных - манифесты файлов.

ТипОписание
productsИсходные ресурсы товаров, предпросмотры, 3D-модели, описания материалов и текстур.
backgroundsСтатические фоны Viewer.
environmentsКарты окружения и изображения предпросмотра.
image_libraryРесурсы библиотеки изображений, включая графику конкретного магазина.
design_templatesПредпросмотры шаблонов дизайна и ссылки на файлы слоёв. Поддерживает фильтр product_id.
mockupsРесурсы генератора мокапов, фоны и карты наложения. Поддерживает фильтр product_id.

Пример запроса (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();

Пример ответа

{
  "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
}

Импорт дизайнов

Импорт дизайнов предоставляет дизайны, хранящиеся в Alter, и их файлы для внешнего производства или миграции. API проверяет право использования тарифа Business.

ПараметрОбязательноПодробности
searchнетПоиск по названию или ID дизайна.
offsetнетПо умолчанию 0.
limitнетПо умолчанию 20, максимум 100.

Пример запроса (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();

Пример ответа

{
  "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
}