API Яндекс Маркета закрывает почти всё, что продавец делает в кабинете руками: заводит товары, меняет цены, передаёт остатки, забирает заказы и отчёты. Доступ бесплатный, платить приходится за разработку и сопровождение. Разбираем, что можно автоматизировать, где лежат лимиты и почему интеграция иногда останавливается без единой правки в коде.
Что API умеет
Партнёрский API — набор HTTPS-методов, разложенных по группам. Через них доступны:
- товары и карточки — добавление в каталог, характеристики, архив, скрытие и возврат на витрину;
- цены — базовая цена кабинета и цены отдельных магазинов, цена до скидки, минимум для акций;
- остатки и оборачиваемость — передача и проверка остатков по складам;
- заказы — получение, смена статусов, отгрузки FBS, ярлыки FBS и DBS, заказы с цифровыми товарами;
- невыкупы и возвраты — решения по возврату, фото и заявления покупателя;
- заявки FBY и LaaS — поставка, вывоз, утилизация и документы по ним;
- отчёты и документы — реализация, стоимость услуг Маркета, оборачиваемость, цены, отзывы, буст;
- отзывы, вопросы, чаты, индекс качества, буст продаж, акции, склады, справочники.
Чего в API нет: он не заменяет модерацию и не отменяет правила площадки. Категорию товара Маркет проверяет на своей стороне, и если товар ей не соответствует, метод вернёт ошибку.
Отдельный слой — API-уведомления. Маркет сам стучится на ваш адрес, когда появился заказ, изменился его статус, пришёл возврат, отзыв, сообщение в чате или начался спор. Без них интеграция вынуждена опрашивать методы по расписанию и упираться в лимиты.
Кому API нужен, а кому рано
API окупается там, где ручная работа перестала помещаться в рабочий день. Пара десятков заказов в сутки и несколько сотен позиций — уже повод считать. Если товаров десяток, а заказы приходят раз в два дня, Excel-файл в кабинете справится дешевле.
Есть и вынужденный сценарий. В справке Маркета о передаче остатков сейчас перечислены три способа: вручную в кабинете, Excel-файлом и автоматически — через модули для CMS и API. YML-файлов среди них нет. Продавцы, которые годами обновляли цены и остатки фидом, переезжают либо на API, либо на сервис, который читает их фид и сам ходит в API. Промежуточный вариант — готовый модуль: Маркет бесплатно отдаёт модуль для «1С:Предприятия», у популярных CMS есть свои.
Токен: где взять и какие права выдать
Токен создаётся в кабинете: иконка аккаунта → Настройки → API и модули → блок Токены авторизации → Создать новый токен. Делать это могут только владелец и менеджер кабинета. На кабинет разрешено до 30 токенов, срок действия не ограничен — токен живёт, пока его не удалят. Готовый токен передаётся в заголовке Api-Key, запрос без него получит 401 Unauthorized. Схема OAuth 2.0 помечена как устаревшая.
При создании токена выбираются доступы — четырнадцать групп, от «Полного управления кабинетом» до узких вроде «Просмотра цен» или «Получения информации по FBY-заявкам». Правило площадки: отдельный токен на каждую интеграцию и минимально необходимые права. Тогда утечка ключа аналитики не даст переписать ваши цены. Ключи стоит менять при смене подрядчика и хранить в секрет-хранилище, а не в коде и переписке.
businessId и campaignId — не одно и то же
Самая частая ошибка на старте. Методы вида /businesses/{businessId}/… работают на уровне кабинета: каталог товаров, базовые цены, настройки. Методы вида /campaigns/{campaignId}/… — на уровне конкретного магазина: заказы, отгрузки, ярлыки. Часть отчётов требует одного идентификатора, часть — другого.
Оба идентификатора возвращает запрос GET v2/campaigns — он отдаёт всё, к чему открывает доступ ваш токен. Идентификатор кампании виден и в кабинете, в том же разделе «API и модули». Подробнее о том, как устроен кабинет и где что лежит, — в разборе личного кабинета продавца Яндекс Маркета.
Лимиты, о которых узнают в бою
Ограничений три типа, и путать их дорого. Отдельно стоят лимиты на генерацию отчётов.
| Тип | Что ограничивает | Что вернётся при превышении |
|---|---|---|
| Глобальные | Не больше четырёх одновременных запросов к магазину или кабинету | 420 Enhance Your Calm |
| Ресурсные | Число запросов или объём данных к одному ресурсу за сутки | 420 Enhance Your Calm |
| Функциональные | Размер выборки и тело запроса до 512 КБ | 400 Bad Request |
Четыре параллельных запроса — не опечатка: интеграция, которая выстреливает сотню запросов веером, упрётся сразу. Нагрузку раскладывают очередью или ограничителем скорости.
Состояние ресурсного лимита Маркет отдаёт в каждом ответе: X-RateLimit-Resource-Limit, X-RateLimit-Resource-Remaining и X-RateLimit-Resource-Until. Важная деталь: лимит уменьшают и успешные ответы, и клиентские ошибки 4xx. Только ошибки на стороне Маркета (5xx) лимит не тратят. Поэтому цикл повторов, который долбит метод с неверными параметрами, съест дневной запас и ничего не добьётся. Отсюда правило: повторять запрос имеет смысл только на 5xx и сетевых сбоях, с растущей паузой и случайной задержкой; на 4xx нужно чинить запрос. У подписки «Медиум» лимиты расширенные, конкретные значения указаны на странице каждого метода.
Когда API отключается не по вашей вине
Интеграция может перестать работать без изменений в коде. Маркет отключает доступ к API магазина по нескольким причинам, и статус видно в поле apiAvailability ответа GET v2/campaigns или GET v2/campaigns/{campaignId}.
| Статус | Что произошло | Что делать |
|---|---|---|
AVAILABLE |
Всё в порядке | — |
DISABLED_BY_INACTIVITY |
Магазин не размещал товары на витрине больше 90 дней | Включить интеграцию в кабинете, обновить цены и остатки, отправить магазин на модерацию |
DISABLED_BY_NO_ACTIVE_CONTRACT |
Нет действующего договора с Маркетом | Дозаполнить раздел «Юридические данные» |
MANUALLY_DISABLED |
Интеграцию выключили вручную | Включить в разделе «API и модули» |
DISABLED_BY_NO_PLACEMENT_TYPE |
Магазин не подключён к программе размещения | Подключить модель работы |
Пока API недоступно, запросы не выполняются и не попадают в лог — искать там причину бесполезно. Если в кабинете отключены все магазины, блокируются и методы уровня кабинета. Проверять apiAvailability раз в сутки — дешёвая страховка от тихой остановки обмена.
Как понять, какая интеграция сломалась
Если с кабинетом работают несколько систем сразу, в логе запросов они сливаются в кашу. Разводит их заголовок X-Market-Integration: в него передаётся название интеграции и версия, например 1C-UT/2.5.14. До 100 символов, только ASCII. После этого в кабинете на вкладке «Лог запросов» появляется фильтр по интеграции, и виновника всплеска ошибок видно сразу. Вторая опора при разборе — идентификатор traceparent из ответа: по нему конкретный запрос находит и разработчик, и поддержка Маркета.
Уведомления: как не потерять заказ
Адрес для уведомлений должен работать по HTTPS с сертификатом от аккредитованного удостоверяющего центра, самоподписанный не подойдёт. Подлинность запроса проверяется по трём диапазонам адресов Маркета: 5.45.207.0/25, 141.8.142.0/25 и 5.255.253.0/25.
Отвечать нужно быстро: на обычное уведомление даётся 10 секунд, на проверочное типа PING — одна. Дальнейшую обработку события правильно уводить в очередь, а не держать соединение.
Если адрес молчит или отвечает ошибкой, Маркет ставит остальные уведомления на паузу и повторяет проблемный запрос: каждую минуту в течение часа, затем раз в 15 минут в течение суток, дальше раз в час. Через 14 дней недоступности магазин отключается от интеграции. Торговать он продолжает — просто вы перестаёте узнавать о заказах вовремя.
Что изменилось в 2026 году
API живёт своей жизнью, и раз в квартал что-нибудь отваливается. Главное за 2026 год:
- Токенная пагинация. С 4 марта параметры
pageиpageSizeпомечены устаревшими, работать нужно черезpageTokenиlimit. Конец выборки определяется только по наличиюnextPageTokenв ответе, а не по числу строк на странице. - Урезанные выборки. С 10 марта
limitдля цен снижен с 2 000 до 500, для ставок буста — с 1 500 до 500. С 28 января лимит товаров в запросе к каталогу кабинета уменьшен с 200 до 100. - НДС 22 %. Значение
7(ставка 20 %) автоматически заменяется на14, а с 1 июля 2026 года передавать7нельзя. - Отчёты по тарифу. С 18 мая глубина доступных данных и число одновременно генерируемых отчётов зависят от тарифного плана.
- Тестовый заказ. С 28 мая в создании заказа появился параметр
fake: такой заказ не отгружается и не трогает остатки. - Склады на уровне кабинета. С 29 июля появились методы v3 для складов и остатков по
businessId, а старый метод смены статуса склада помечен устаревшим.
Вывод для интеграции: клиент нужно пересобирать по актуальной спецификации OpenAPI, а незнакомые поля и значения перечислений — пропускать, а не падать на них.
Остатки: чем API отличается от кабинета
Передавать нужно количество, свободное для новых заказов, — с учётом продаж вне Маркета. Продали три штуки в офлайн-точке с того же склада, значит остаток на витрине уменьшается на три. Обновление не мгновенное: от передачи данных до изменения на витрине проходит до 15 минут. Маркет требует передавать остатки как можно чаще, но не реже раза в день. Если в кабинете настроены группы складов, остаток достаточно передать по одному складу — по остальным он обновится сам.
И ещё одна деталь, которая экономит часы разбирательств: при добавлении и изменении ассортимента нужно читать results.errors и results.warnings в ответе. Если в пакете есть ошибки, изменения не применятся по всем переданным товарам, а не только по проблемным.
Что в чужих статьях написано неправильно
По запросу «api яндекс маркет» выдача заметно засорена текстами, где цифры выдуманы. Проверять их стоит по документации, а не по соседней статье. Вот что встречается чаще всего и чего в первоисточнике нет:
- «лимит 100 000 запросов в сутки» и «500 запросов в минуту» — таких общих величин в документации нет, ограничения указаны отдельно для каждого метода;
- «токен действует год и продлевается автоматически» — токен бессрочный и живёт, пока его не удалят;
- «авторизация через
Authorization: Bearer» — это устаревшая схема OAuth, актуальная передаётся в заголовкеApi-Key; - «песочница для тестов по отдельному адресу» — публичного тестового контура нет, для проверки используется параметр
fakeи скрытие товаров; - «уведомления подписываются HMAC-SHA256, отвечать можно 30 секунд» — подлинность проверяется по диапазонам IP, а на ответ даётся 10 секунд;
- «остатки синхронизируются каждые 5 минут» — Маркет говорит про задержку до 15 минут и требование обновлять не реже раза в день.
Отдельная категория — примеры кода из статей двух-трёхлетней давности. Они собраны под OAuth и старые адреса методов и в 2026 году просто не заработают.
Свой код или готовый сервис
Разработка интеграции — не разовый платёж. API меняется несколько раз в квартал: методы устаревают, лимиты урезаются, поля переименовываются. Каждое изменение требует правки, тестов и человека, который за этим следит. Собственный код оправдан, когда процессы нетиповые и внутри есть разработчик. В остальных случаях расходы на сопровождение съедают экономию.
SelSup закрывает эту часть за вас: подключение по токену без разработки, единая работа с Маркетом, Ozon, Wildberries и другими площадками, цены, остатки, заказы и отчёты в одном месте. Изменения в API мы отслеживаем и вносим сами. Посмотрите, как это устроено, на демонстрации SelSup — покажем на ваших товарах и ответим на вопросы по интеграции. Общие правила площадки, модели работы и деньги разобраны в обзоре условий работы на Яндекс Маркете.
Частые вопросы
API Яндекс Маркета платный?
Нет. Доступ к API не требует платы, как и модуль Маркета для «1С:Предприятия». Платить придётся за разработку интеграции и её сопровождение либо за сторонний сервис. С 18 мая 2026 года глубина данных в отчётах и число одновременно генерируемых отчётов зависят от тарифного плана.
Кто в компании может создать токен?
Только владелец кабинета и менеджер кабинета. Остальные роли токены не создают и не редактируют. На кабинет разрешено до 30 токенов, и каждой интеграции лучше выдать свой, с минимальным набором прав.
Что делать, если API вернуло 420?
Это превышение лимита. Сначала проверьте число одновременных запросов — их не может быть больше четырёх. Затем посмотрите заголовки X-RateLimit-Resource-Remaining и X-RateLimit-Resource-Until: они покажут остаток и время сброса. Очередь надёжнее, чем повторы подряд.
Нужно ли передавать остатки по FBY?
Нет. Товары FBY и LaaS лежат на складах Маркета, и он считает их сам. Передавать остатки нужно магазинам, которые торгуют со своего склада, — FBS, DBS и Экспресс. Одновременно с API остатки и цены можно править вручную или Excel-файлом, но источник данных лучше держать один.
Почему интеграция перестала работать, хотя код не меняли?
Скорее всего, Маркет отключил API магазину. Проверьте поле apiAvailability в ответе GET v2/campaigns. Типичные причины: магазин больше 90 дней не размещал товары на витрине, закончился договор, магазин не подключён к программе размещения или интеграцию выключили вручную. Пока доступ закрыт, запросы даже не попадают в лог.
Продолжайте читать и смотреть
Новости маркетплейсов, автоматизация и практические разборы ИИ — на удобной для вас площадке.
