Создайте API-токенРаздел «Товары и услуги» → «API-токены».
Передайте полный каталогВыполните PUT /v1/catalog с массивом items.
Проверьте операциюЗапрашивайте GET /v1/catalog/operations/{operation_id} до финального статуса.
Авторизация
Передавайте токен в каждом запросе. Токен относится к одному проекту, показывается только при создании и может быть отозван в кабинете. До трёх токенов для синхронизации каталога через API.
HTTP-заголовок
Authorization: Bearer <CATALOG_TOKEN>
Обновление каталога
PUT /v1/catalog всегда передаёт полный актуальный набор позиций. Обработка идёт асинхронно. До статуса active поиск продолжает использовать предыдущую версию. При статусе failed предыдущая версия не изменяется.
API возвращает content_key — ключ идемпотентности содержимого. Повтор того же каталога возвращает существующую операцию. Пока другое обновление выполняется, новый каталог отклоняется с кодом 409 operation_in_progress.
Методы
PUT/v1/catalog
Передать полный каталог
Заменяет каталог проекта после успешной фоновой обработки всех переданных позиций.
Запрос
Авторизация
Bearer-токен
Content-Type
application/json
Тело
Объект с массивом items
Ограничения
1–10 000 позиций; до 50 МиБ; до 100 атрибутов на позицию; строка до 20 000 символов
Действие клиентаОстановите опрос. Для восстановления передайте полный каталог методом PUT.
Лимиты
Параметр
Лимит
Позиции в каталоге
10 000
API-запрос
50 МиБ (52 428 800 байт)
Excel-файл
50 МиБ; формат .xlsx или .xls; один лист Items
Дополнительные атрибуты позиции
100
Теги позиции
100
Имя дополнительного атрибута
100 символов
Строковое значение атрибута или описание
20 000 символов
external_id и product_id
200 символов
name
500 символов
category_path
2 000 символов
url и image_url
4 000 символов
API-токены проекта
до трёх токенов
Для каталога больше 10 000 позиций обратитесь в поддержку.
Поля позиции
Поле
Тип
Обязательное
Назначение
external_id
string
Да
Уникальный идентификатор позиции или варианта.
name
string
Да
Публичное название.
product_id
string | null
Нет
Общий идентификатор вариантов. По умолчанию равен external_id.
type
product | service | null
Нет
Тип позиции.
category_path
string | null
Нет
Путь категории любой глубины через символ >.
description
string | null
Нет
Описание для поиска и ответа.
price
object | null
Нет
Цена вместе с валютой.
availability
enum | null
Нет
Статус наличия.
url
string | null
Нет
Публичная HTTP(S)-ссылка на позицию.
image_url
string | null
Нет
Публичная HTTP(S)-ссылка на изображение.
tags
string[]
Нет
Теги для поиска.
direction_key
string | null
Нет
Связь с направлением бизнес-профиля и его CTA.
cross_sell_product_ids
string[]
Нет
product_id сопутствующих позиций.
upsell_product_ids
string[]
Нет
product_id расширенных или более дорогих вариантов.
attributes
object
Нет
Дополнительные публичные характеристики.
Цена и наличие
Для price.kind доступны exact, from, free и on_request. Варианты exact и from требуют неотрицательный amount и трёхбуквенный код currency в верхнем регистре. Наличие: available, unavailable, preorder, on_request.
Дополнительные атрибуты
attributes принимает до 100 пар «имя — значение». Имя — до 100 символов; строковое значение — до 20 000 символов. Значения: строка, число, boolean, дата ISO или null.
Поиск и CTA
Поля каталога участвуют в полнотекстовом и семантическом поиске. Цена, наличие, ссылки и характеристики найденной позиции берутся из активного каталога. Материалы сайта и Q&A используются как поясняющий контекст и не заменяют эти значения.
direction_key связывает позицию с направлением бизнес-профиля и доступными CTA. Действие «Предложить сопутствующие позиции» использует только связи cross_sell_product_ids после выбора основной позиции. Отсутствующие связи не создаются автоматически.
OpenAPI
Спецификация содержит публичные методы, схемы запросов и схемы ответов Catalog API.