# Wildberries API: Выгрузить все карточки товаров

Сценарий из mcp-everything. Актуально на 2026-10-24.

Получить список своих товаров с артикулами WB, артикулами продавца и размерами — для сопоставления с учётной системой.

1. Нужен токен с категорией «Контент», хост https://content-api.wildberries.ru. Лимит — 100 запросов в минуту на все методы категории.
2. Запроси первую страницу: POST /content/v2/get/cards/list с settings.cursor.limit = 100 и settings.filter.withPhoto = -1 (все карточки).
3. Для следующей страницы скопируй из ответа cursor.updatedAt и cursor.nmID в settings.cursor запроса.
4. Повторяй, пока cursor.total не станет меньше limit — значит, получены все карточки.
5. Из каждой карточки сохрани nmID, vendorCode и sizes[].chrtID — по chrtID обновляются остатки.

```bash
curl -X POST https://content-api.wildberries.ru/content/v2/get/cards/list \
  -H "Authorization: $WB_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"settings": {"cursor": {"limit": 100}, "filter": {"withPhoto": -1}}}'

# Следующая страница — с курсором из предыдущего ответа
curl -X POST https://content-api.wildberries.ru/content/v2/get/cards/list \
  -H "Authorization: $WB_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"settings": {"cursor": {"limit": 100, "updatedAt": "2023-12-06T11:17:00.96577Z", "nmID": 123654123}, "filter": {"withPhoto": -1}}}'
```

## Базовые URL

- Боевой (Контент): `https://content-api.wildberries.ru`
- Тестовый (Контент): `https://content-api-sandbox.wildberries.ru`
- Боевой (Цены и скидки): `https://discounts-prices-api.wildberries.ru`
- Тестовый (Цены и скидки): `https://discounts-prices-api-sandbox.wildberries.ru`
- Боевой (Маркетплейс): `https://marketplace-api.wildberries.ru`
- Боевой (Статистика): `https://statistics-api.wildberries.ru`
- Тестовый (Статистика): `https://statistics-api-sandbox.wildberries.ru`
- Боевой (Аналитика): `https://seller-analytics-api.wildberries.ru`
- Боевой (Продвижение): `https://advert-api.wildberries.ru`
- Боевой (Вопросы и отзывы): `https://feedbacks-api.wildberries.ru`
- Боевой (Чат с покупателями): `https://buyer-chat-api.wildberries.ru`
- Боевой (Поставки): `https://supplies-api.wildberries.ru`
- Боевой (Возвраты): `https://returns-api.wildberries.ru`
- Боевой (Документы): `https://documents-api.wildberries.ru`
- Боевой (Тарифы, Новости): `https://common-api.wildberries.ru`

## Авторизация

Тип: API-ключ

Токен создаётся в кабинете продавца: «Настройки» → «Доступ к API» → выбрать категории → «Создать токен». Сохраните его сразу — повторно посмотреть нельзя. Токен — JWT, действует 180 дней. Передаётся в заголовке `Authorization`.

Типы токенов: стандартный (полный доступ к выбранным категориям), тестовый (работает только в песочнице) и «только на чтение». Категория токена должна совпадать с категорией вызываемого API, иначе будет `401`.

Проверить доступ можно методом `/ping` на хосте категории, например `https://content-api.wildberries.ru/ping`. Ответ:

```
{"TS": "...", "Status": "OK"}
```

## Методы сценария

### POST /content/v2/get/cards/list — Список карточек товаров

Хост «Контент». Возвращает созданные карточки с курсорной пагинацией.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `locale` | query | string | нет | Язык |
| `settings` | body | object | да | Настройки выборки |
| `settings.cursor.limit` | body | integer | нет | Количество карточек на странице |
| `settings.filter.withPhoto` | body | integer | нет | Фильтр по наличию фото; -1 — все |

Пример запроса:

```
{
  "settings": {
    "cursor": {
      "limit": 100
    },
    "filter": {
      "withPhoto": -1
    }
  }
}
```

## Нюансы

- У каждой категории свой хост и свой токен-доступ; токен без нужной категории даёт `401`.
- Лимиты работают по алгоритму token bucket: допустимы всплески, а `X-Ratelimit-Remaining` показывает, сколько запросов можно сделать без задержки.
- При `429` приходят заголовки `X-Ratelimit-Retry` (через сколько секунд повторять), `X-Ratelimit-Limit` (размер всплеска) и `X-Ratelimit-Reset` (через сколько секунд всплеск восстановится). Повтор раньше `Retry` снова вернёт `429`.
- В категории «Маркетплейс» ответ `409` засчитывается как 5 запросов.
- Создание карточек асинхронное: успешный ответ не гарантирует создание, ошибки смотрят отдельным методом.
- Обновление карточки перезаписывает её целиком.

## Другие сценарии

- [Собрать заказы FBS и передать поставку в доставку](https://mcp-everything.ru/integrations/wildberries/scenarios/sobrat-zakazy-fbs-i-peredat-postavku.md)
- [Обновить остатки на своём складе](https://mcp-everything.ru/integrations/wildberries/scenarios/obnovit-ostatki-na-svoem-sklade.md)
- [Изменить цены и скидки](https://mcp-everything.ru/integrations/wildberries/scenarios/izmenit-tseny-i-skidki.md)
- [Создать карточку товара](https://mcp-everything.ru/integrations/wildberries/scenarios/sozdat-kartochku-tovara.md)

---

Если этого недостаточно — официальная документация: https://dev.wildberries.ru/openapi/api-information
Вся интеграция одним документом: https://mcp-everything.ru/integrations/wildberries.md
