API Wildberries: документация, токены и лимиты запросов

НейросетиМария Соколова12 мин чтения
API Wildberries: документация, токены и лимиты запросов

api wildberries это набор HTTP REST методов, которыми продавец управляет магазином без личного кабинета: заводит карточки, ставит цены, забирает сборочные задания, выгружает отчёты, отвечает на отзывы. Официальная спецификация лежит на портале для разработчиков по адресу dev.wildberries.ru/docs/openapi/api-information, отдаётся в формате Swagger OpenAPI и импортируется в Postman или Swagger CodeGen. Ниже разобрано устройство интерфейса: разделы, адреса, токены, лимиты и коды ответов, с проверкой по документации и прямыми запросами к хостам площадки 22 августа 2026 года.

Что даёт интерфейс продавца и чего он не заменяет

Назначение по документации: интеграция с информационными системами продавца, то есть ERP, WMS, OMS и CRM. Отсюда границы. API работает только с данными вашего магазина, привязанными к идентификатору продавца внутри токена, и не открывает чужие магазины.

Юридическая рамка: по пункту 9.9.6 оферты интеграция с порталом продавца в обход WB API запрещена. Скрипт, который логинится в кабинет и кликает за человека, вне правил площадки.

Проверка связи это метод GET /ping, он есть у каждого хоста и работает с токеном любой категории. Лимит у него жёсткий и считается отдельно для каждого домена: максимум 3 запроса за 30 секунд, попытка опрашивать его по расписанию приводит к временной блокировке запросов. Обращение в техподдержку создаётся через диалоги в личном кабинете с категорией «Интеграции по API», адрес портала для разработчиков dev-info@rwb.ru.

Если подключать API некому, карточки, рекламу и остатки ведёт продвижение на Wildberries.

Wildberries seller api: категории методов и адреса, по которым они работают

Единого хоста нет: wildberries seller api разбит на домены по категориям. На этом спотыкается почти каждая новая интеграция, метод существует, но запрос уходит не на тот адрес и возвращает 404. Домены ниже проверены запросом GET /ping без заголовка Authorization: каждый ответил 401, то есть хост живой и требует токена.

Категория Базовый адрес Что внутри
Общее common-api.wildberries.ru Проверка подключения, новости портала, данные продавца, тарифы
Контент content-api.wildberries.ru Карточки, характеристики, медиафайлы, ярлыки
Цены и скидки discounts-prices-api.wildberries.ru, dp-calendar-api.wildberries.ru Цены, скидки, календарь акций
Маркетплейс marketplace-api.wildberries.ru Склады, остатки, заказы FBS, DBS, DBW, Самовывоз
Поставки supplies-api.wildberries.ru Поставки FBW
Статистика statistics-api.wildberries.ru Отчёты по заказам и продажам
Аналитика seller-analytics-api.wildberries.ru Удержания, платное хранение, продажи по регионам
Продвижение advert-api.wildberries.ru, advert-media-api.wildberries.ru Кампании, ставки, поисковые кластеры, медиакампании
Вопросы и отзывы feedbacks-api.wildberries.ru Вопросы, отзывы, закреплённые отзывы
Чат с покупателями buyer-chat-api.wildberries.ru Переписка с покупателями
Возвраты returns-api.wildberries.ru Возвраты покупателями
Документы documents-api.wildberries.ru Документы продавца
Финансы finance-api.wildberries.ru Баланс, финансовые отчёты
Пользователи user-management-api.wildberries.ru Управление пользователями продавца

Домены, кроме общего, один в один совпадают с категориями доступа у токена: знаете нужный домен, знаете и галочку при выпуске ключа. Загрузка карточек это «Контент» и content-api, забор сборочных заданий FBS это «Маркетплейс» и marketplace-api. Методы common-api исключение, они работают с токеном любой категории.

Как устроена wildberries api документация: Swagger, песочница, журнал изменений

На портале для разработчиков wildberries api документация разложена по разделам верхнего меню. «Документация» это справочник методов из тринадцати страниц по направлениям (работа с товарами, заказы FBS, DBW, DBS, самовывоз, поставки FBW, продвижение, общение с покупателями, тарифы, аналитика, отчёты, бухгалтерия): описание, адреса Prod и Sandbox, параметры, примеры ответов и таблица лимитов прямо в карточке метода. «Swagger» отдаёт машинную спецификацию OpenAPI. «Песочница» это изолированный тестовый контур. «Статус API» показывает текущую доступность сервисов, туда идут до того, как чинить свой код. «Журнал изменений» фиксирует правки, и площадка прямо предупреждает: методы обновляются регулярно, за журналом надо следить, иначе интеграция отвалится молча.

Отсюда рабочее правило: спецификацию OpenAPI кладут в репозиторий и обновляют, тогда смена обязательности поля ловится диффом, а не жалобой, что остатки не поехали. Для ручной проверки документация советует Postman под Windows и curl под Linux.

Токен api wildberries: где выпускается и что видно только один раз

Порядок выпуска изменился по сравнению с тем, что до сих пор описывают сторонние инструкции. Сейчас токен api wildberries создаётся в личном кабинете продавца в разделе «Интеграции по API», а не в старом пункте «Доступ к API».

  1. В личном кабинете открыть раздел «Интеграции по API».
  2. Нажать «+ Создать токен». Откроется окно с двумя вкладками, для всех типов кроме сервисного нужна вкладка «Для интеграции вручную».
  3. Выбрать тип токена.
  4. Задать название, отметить категории методов и уровень доступа: «Чтение и запись» или «Только чтение».
  5. При желании добавить комментарий. Для персонального токена отметить чекбокс «Я понимаю, что не следует передавать токен третьим лицам».
  6. Нажать «Создать», затем «Скопировать и закрыть».

После закрытия окна токен в кабинете больше не показывается: потеряли значение, выпускайте новый. Срок жизни ключа 180 дней с момента создания, дальше перевыпуск, поэтому дату истечения держат в календаре вместе с ответственным. Передаётся токен в заголовке Authorization.

Документация советует выпускать отдельный ключ на каждую интеграцию с минимумом категорий: если для загрузки карточек выдана одна категория «Контент», утёкший ключ не откроет ни финансы, ни рекламный кабинет.

Четыре типа токенов и когда какой брать

Типов доступа четыре, и лимиты запросов у них разные, поэтому выбор влияет не только на безопасность, но и на скорость выгрузок.

Тип Для чего Ограничение
Персональный Свои программы и системы on-premise, включая коробочные версии 1С Нельзя передавать третьим лицам и использовать в облаке, при создании принимается предупреждение об ответственности
Сервисный Подключение конкретного облачного сервиса из Каталога готовых решений для бизнеса Работает только с выбранным сервисом, настройки заполняются автоматически
Базовый Вспомогательный ключ, в том числе тест на реальных данных Ограниченный набор данных и заниженные лимиты
Тестовый Отладка в песочнице Работает только с песочницей, реальные данные магазина недоступны

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

В карточках отдельных методов встречается блок с иконкой ключа: там записаны ограничения, например требование конкретного типа токена или сервисного секрета. Нет блока, метод работает с любым типом.

Как устроен сам токен: JWT, поля и битовая маска

Ключ это JWT по RFC 7519, его можно декодировать и увидеть, что именно выдано. Документация советует не пользоваться внешними онлайн-декодерами, иначе рабочий токен уедет на чужой сервер.

Тип определяется по трём полям payload:

  • acc равен 1 у базового, 2 у тестового, 3 у персонального, 4 у сервисного;
  • for отсутствует у базового и тестового, равен self у персонального и asid:{ID сервиса} у сервисного;
  • t равен true только у тестового токена.

Служебные поля: id это UUIDv4 токена, sid это UUIDv4 продавца, exp это время жизни по стандарту JWT, s это битовая маска свойств. В маске бит 1 это «Контент», 2 «Аналитика», 3 «Цены и скидки», 4 «Маркетплейс», 5 «Статистика», 6 «Продвижение», 7 «Вопросы и отзывы», 9 «Чат с покупателями», 10 «Поставки», 11 «Возвраты покупателями», 12 «Документы», 13 «Финансы», 16 «Пользователи». Бит 30 поднят, если токен выдан только на чтение.

Польза от декодирования прикладная: до первого запроса видно, совпадает ли набор категорий с задачей и не пытаетесь ли вы писать данные ключом с поднятым битом 30.

Api запросы wildberries: лимиты, всплеск и заголовки ответа

Ограничения на api запросы wildberries считает алгоритм token bucket. Лимит задаётся четырьмя числами: период, максимум запросов за период, интервал между запросами и всплеск (сколько можно отправить подряд без пауз). Считается он на аккаунт продавца, а не на токен.

Пример из документации, лимит для всех методов категории «Маркетплейс»:

Тип токена Период Лимит Интервал Всплеск
Персональный 1 минута 300 запросов 200 мс 20 запросов
Сервисный 1 минута 300 запросов 200 мс 20 запросов
Базовый 1 минута 150 запросов 200 мс 10 запросов
Тестовый 1 минута 150 запросов 200 мс 10 запросов

Другие категории считаются иначе. Все методы «Контента» это 100 запросов в минуту, интервал 600 мс, всплеск 5, а метод создания карточек POST /content/v2/cards/upload вынесен в исключение: 10 запросов в минуту, интервал 6 секунд, всплеск 5.

Самый жёсткий случай в «Статистике»: метод GET /api/v1/supplier/orders на персональном, сервисном и базовом с секретом токене даёт 1 запрос в минуту, а на обычном базовом 1 запрос в 3 часа. Поэтому выгрузка заказов на базовом ключе выглядит сломанной, хотя просто упирается в квоту.

Штраф за ошибки реальный: один ответ 4XX списывается из квоты как 10 обычных запросов, поэтому кривая пагинация выжигает лимит в десять раз быстрее.

Управлять паузами помогают заголовки ответа:

  • X-Ratelimit-Remaining, сколько запросов можно сделать прямо сейчас без пауз, приходит во всех ответах кроме 429 и уменьшается на единицу после каждого запроса;
  • X-Ratelimit-Retry, через сколько секунд можно повторить запрос после 429, раньше пробовать бессмысленно;
  • X-Ratelimit-Limit, максимальное значение всплеска, которое будет восстановлено;
  • X-Ratelimit-Reset, через сколько секунд всплеск восстановится до максимума.

В примере документации ответ 429 приходит с X-Ratelimit-Reset: 29, X-Ratelimit-Retry: 2 и X-Ratelimit-Limit: 10. Рабочая интеграция читает эти заголовки, а не ставит sleep наугад.

Коды ответов и формат ошибки

Статусы стандартные для REST, но три строки в таблице специфичны для площадки: 402 приходит только сервисам из Каталога решений, 403 может означать отсутствие подписки Джем, 422 отдаётся при противоречивых параметрах, а не при синтаксической ошибке.

Код Что означает Что делать
200 / 204 Успешно, объект создан, обновлён или удалён Ничего
400 Неправильный запрос Проверить синтаксис, повтор не поможет
401 Пользователь не авторизован Токен отсутствует, просрочен, некорректен или его категория не та
402 Требуется платёж Только для сервисов из Каталога решений: нет средств на балансе
403 Доступ запрещён Токен выпущен удалённым пользователем, метод заблокирован, нет подписки Джем
404 Не найдено Проверить URL: чаще всего перепутан домен
409 Ошибка сохранения или обновления статуса Данные не отвечают требованиям сервиса
413 Превышен лимит объёма данных в запросе Уменьшить пачку
422 Данные запроса противоречат друг другу Проверить параметры, например nmId
429 Слишком много запросов Ждать секунды из X-Ratelimit-Retry
5XX Внутренняя ошибка сервиса Повторить позже

Ошибки приходят в формате problem+json. Реальный ответ на GET https://content-api.wildberries.ru/ping без заголовка авторизации, снятый 22 августа 2026 года: {“title”:”unauthorized”,”detail”:”empty Authorization header”,”origin”:”s2s-api-auth-content”,”status”:401,”statusText”:”Unauthorized”} плюс поля code, requestId и timestamp. Значение requestId дублируется в заголовке x-request-id, именно его прикладывают к обращению в поддержку. В ошибках 404 и 429 подсказка лежит в поле details, поэтому логировать стоит тело ответа целиком, а не один статус.

Песочница: чем тестовый контур отличается от боевого

Адрес песочницы получается добавлением суффикса -sandbox к домену категории, например marketplace-api-sandbox.wildberries.ru рядом с боевым адресом в карточке метода FBS. Сводной таблицы песочниц в документации нет: часть адресов перечислена в разделе проверки подключения, часть встречается только в карточках методов. Проверка хостов 22 августа 2026 года дала живой тестовый контур у «Контента», «Маркетплейса», «Цен и скидок», «Статистики», «Продвижения», «Вопросов и отзывов» и «Поставок»; у остальных категорий на эту дату он не отвечал. Ориентироваться надёжнее на адрес Sandbox в карточке конкретного метода.

Отличия песочницы, о которых надо знать заранее:

  • работает только с тестовым токеном, реальные данные магазина недоступны;
  • потолок 1 запрос в секунду суммарно на все методы категории, нагрузочное тестирование там не проводится;
  • карточка товара создаётся сразу, без асинхронного ожидания;
  • в статистике заказов диапазон дат ограничен последними 4 месяцами.

Вывод: песочница проверяет контракт, а не тайминги и не поведение под нагрузкой. Логику ожидания и повторов всё равно приходится проверять в бою, лучше на одном тестовом товаре.

Что ломается на практике

Ошибки повторяются от проекта к проекту, и почти все про то, что данные не появляются мгновенно.

  • Создание карточки асинхронно. Синхронизация занимает до 30 минут, и всё это время нельзя ни завести остатки, ни поставить цену. Скрипт, который создаёт карточку и сразу ставит цену, будет падать всегда.
  • Ответ 200 не значит, что всё создалось. Часть карточек может отвалиться, и проверять их надо методом списка несозданных карточек с ошибками.
  • Размер пачки ограничен. В одном запросе не более 100 отдельных карточек или 100 групп объединённых по 30, максимальный размер тела 10 Мб. Превышение это 413.
  • Статистика отстаёт. Данные отчёта по заказам обновляются раз в 30 минут, информация о заказе хранится 90 дней. Мониторинг минута в минуту на этих методах не строится.
  • Выгрузка постраничная. На один ответ по заказам действует условное ограничение 80 000 строк, следующий запрос идёт с dateFrom, равным полному значению lastChangeDate из последней строки предыдущего ответа. Пустой массив означает, что всё выгружено.
  • Часовой пояс не ваш. Даты передаются в формате RFC3339 в московском времени UTC+3, а не в UTC и не в поясе вашего сервера.

Нужна интеграция, которая переживёт правки документации

Собираем обмен с WB API под конкретный процесс: карточки, цены, остатки, заказы, отчёты. С учётом лимитов, повторов по X-Ratelimit-Retry, ротации токенов раз в 180 дней и мониторинга журнала изменений.

Обсудить задачу

Когда свой код не нужен и хватает готового сервиса

Документация предлагает два пути: своя разработка по спецификации OpenAPI или подключение партнёрского сервиса из Каталога готовых решений для бизнеса. Во втором случае сервис сам следит за обновлениями методов, а токен выпускается сервисный: вы выбираете сервис в списке, категории и уровни доступа проставляются автоматически.

Ориентир простой. Задача типовая и уже умеет готовый сервис, свой код добавит только расходы на поддержку: за каждой правкой в журнале изменений следить вам. Свой код оправдан при нестандартной логике: собственные правила переоценки, связка с ERP и складом, обмен между несколькими площадками. Разбор готовых инструментов вынесен в материал про автоматизацию работы с маркетплейсами.

Промежуточный вариант рабочий: сервис на сервисном токене закрывает рутину, свой скрипт на отдельном базовом токене с одной категорией делает то, чего в сервисе нет. Помните про общую квоту на аккаунт: два потребителя делят один лимит.

Частые вопросы

Сколько живёт токен и что делать после истечения

180 дней с момента создания. После этого запросы начнут отдавать 401, ключ перевыпускается в разделе «Интеграции по API» личного кабинета.

Почему один и тот же метод отвечает 404

Перепутан домен категории. Карточки живут на content-api.wildberries.ru, заказы FBS на marketplace-api.wildberries.ru, отчёты на statistics-api.wildberries.ru. Подсказка в ошибке 404 приходит в поле details.

Что делать при 429

Читать заголовок X-Ratelimit-Retry и ждать указанное число секунд. Повтор раньше срока снова вернёт 429, а каждый ответ 4XX списывается как 10 обычных запросов.

Можно ли выдать подрядчику доступ только на чтение

Да. При создании базового или персонального токена выбирается уровень доступа «Только чтение», в декодированном JWT он виден как поднятый бит 30 в поле s.

Чем тестовый токен отличается от базового

Тестовый работает только с песочницей и сгенерированными данными, потолок 1 запрос в секунду на категорию. Базовый работает с реальным магазином, но с урезанными лимитами: 150 запросов в минуту в «Маркетплейсе» против 300 у персонального.

Поделиться:

About Author: Мария Соколова

nu_editor_sokolova@neurounit.ai

Редактор Neurounit. Пишет про нейросети в маркетинге и работу AI-агентов в рекламе.

Neurounit

Запустить рост с AI

Оставьте заявку или напишите в мессенджер