SizerOpenAPI
API v1 · стабильный контракт

Руководство по интеграции бренда

Загрузите каталог и историю покупок, проверьте готовность данных и запрашивайте изолированные по клиенту рекомендации размера в реальном времени.

01
Получите доступ
Получите tenant ID и сервисный токен; используйте отдельную пару для каждого окружения.
02
Сопоставьте данные
Согласуйте категории, системы размеров и специфичные для бренда обмеры POM.
03
Загрузите каталог
Синхронизируйте товары, доступные размеры и хотя бы один источник данных о посадке.
04
Проверьте и запустите
Импортируйте историю, устраните блокеры и протестируйте все варианты решения.

Контракт данных

Начните со стабильных идентификаторов. Подробные обмеры повышают уверенность, но API умеет стартовать с разреженными данными и воздерживается, когда безопасной рекомендации нет.

Идентификаторы каталога

Обязательно

ID товаров и SKU, исходные обозначения размеров, каноническая категория, активный ассортимент и порядок размеров.

Данные о посадке

Обязательно

Фактические обмеры вещи POM или активированная размерная сетка с диапазонами тела для каждой категории запуска.

История за 12–24 месяца

Рекомендуется

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

Фронтальные фото

Рекомендуется

Ссылки на JPEG/PNG с подтверждёнными правами, желательно чистый фронтальный packshot без модели.

Граница приватности
Sizer не нужна карта реальных личностей клиентов бренда.

Можно передавать

  • account_ref / wearer_ref
  • article_ref / size_ref
  • order and line refs
  • обмеры и результаты примерок

Не передавать

  • имя
  • email или телефон
  • адрес
  • платёжные данные

Основные endpoints

Все пути ниже начинаются с /api/client/v1.

POST/fit/catalog:sync

Товары, SKU, обмеры POM, размерные сетки, медиа и эмбеддинги

POST/fit/profiles:sync

Непрозрачные ID аккаунта и персоны, данные о теле

POST/fit/events:batch

До 500 исторических событий в атомарном пакете

POST/fit/onboarding:status

Машиночитаемые блокеры готовности

POST/fit:recommend

Калиброванное решение: рекомендовать, уточнить или воздержаться

1. Синхронизировать часть каталога
Base URL: выделенный для вас адрес Sizer API.
curl -X POST "$SIZER_API/api/client/v1/fit/catalog:sync" \
  -H "X-Mini-Tenant: $SIZER_TENANT" \
  -H "X-Admin-Token: $SIZER_TOKEN" \
  -H "X-Idempotency-Key: catalog-2026-10-06-001" \
  -H "Content-Type: application/json" \
  -d '{
    "request_id": "catalog-2026-10-06-001",
    "brand_code": "acme",
    "brand_title": "Acme",
    "articles": [{
      "article_ref": "shirt-1001",
      "title": "Рубашка Oxford",
      "category_code": "shirts",
      "gender_segment": "male",
      "sizes": [{
        "size_ref": "shirt-1001-m",
        "raw_label": "M",
        "size_system_code": "int-alpha"
      }],
      "media": [{
        "source_ref": "shirt-1001-front",
        "role": "front_packshot",
        "source_url": "https://cdn.example.com/shirt-1001/front.jpg",
        "rights_confirmed": true
      }]
    }]
  }'
2. Запросить рекомендацию
Base URL: выделенный для вас адрес Sizer API.
curl -X POST "$SIZER_API/api/client/v1/fit:recommend" \
  -H "X-Mini-Tenant: $SIZER_TENANT" \
  -H "X-Admin-Token: $SIZER_TOKEN" \
  -H "X-Idempotency-Key: fit-cart-01JABC" \
  -H "Content-Type: application/json" \
  -d '{
    "request_id": "fit-cart-01JABC",
    "account_ref": "acc_01J8P8Y7Q6",
    "wearer_ref": "wearer_01J8P91J5K",
    "article_ref": "shirt-1001",
    "available_size_refs": ["shirt-1001-s", "shirt-1001-m"]
  }'
Аутентификация
Передавайте X-Mini-Tenant и X-Admin-Token в каждом запросе. Service account привязан ровно к одному клиенту; короткоживущие сессии также могут использовать Bearer.
Идемпотентность
Передавайте стабильный X-Idempotency-Key в каждой команде. Повтор того же запроса безопасен, а другой payload с тем же ключом считается конфликтом.
Асинхронные пересчёты
Код 202 означает, что факты приняты, а пересчёт поставлен в очередь. При нехватке данных рекомендация может запросить уточнение или воздержаться.