# Wildberries API: Создать карточку товара

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

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

1. Найди предмет (категорию): GET /content/v2/object/all с name — в ответе subjectID.
2. Узнай характеристики предмета: GET /content/v2/object/charcs/{subjectId}. Обязательные поля отмечены required; для каждой характеристики указан тип значения и единица измерения.
3. Отправь карточку: POST /content/v2/cards/upload с subjectID и variants — вариантами товара (до 30 на карточку), у каждого vendorCode, title, description, brand, sizes и characteristics.
4. Создание асинхронное: успешный ответ не значит, что карточка создана. Через минуту-две проверь ошибки методом /content/v2/cards/error/list и найди карточку в списке.
5. Править карточку — POST /content/v2/cards/update, но она перезаписывается целиком: передавай все поля, а не только изменённые.

```bash
curl -G https://content-api.wildberries.ru/content/v2/object/all \
  -H "Authorization: $WB_TOKEN" \
  --data-urlencode 'name=Кружки' -d limit=10

curl https://content-api.wildberries.ru/content/v2/object/charcs/<subjectID> -H "Authorization: $WB_TOKEN"

curl -X POST https://content-api.wildberries.ru/content/v2/cards/upload \
  -H "Authorization: $WB_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '[{
        "subjectID": <subjectID>,
        "variants": [{
          "vendorCode": "MUG-WHITE-330",
          "title": "Кружка керамическая 330 мл",
          "description": "Белая керамическая кружка, подходит для посудомоечной машины.",
          "brand": "Моя марка",
          "sizes": [{"price": 990, "skus": ["2000000000017"]}],
          "characteristics": [{"id": <id характеристики>, "value": ["керамика"]}]
        }]
      }]'
```

## Базовые 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/cards/upload — Создание карточек товаров

Создание обрабатывается асинхронно; ошибки смотрят в `/content/v2/cards/error/list`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `subjectID` | body | integer | да | Предмет (категория) |
| `variants` | body | array | да | Варианты товара, до 30 на карточку |

### POST /content/v2/cards/update — Редактирование карточек

Карточка перезаписывается целиком — передавайте все параметры.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `nmID` | body | integer | да | Артикул WB |
| `vendorCode` | body | string | да | Артикул продавца |
| `sizes` | body | array | да | Размеры |
| `brand` | body | string | нет | Бренд |
| `title` | body | string | нет | Наименование, до 60 символов |
| `description` | body | string | нет | Описание |
| `characteristics` | body | array | нет | Характеристики |

### GET /content/v2/object/all — Список предметов

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `locale` | query | string | нет | Язык |
| `name` | query | string | нет | Поиск по названию |
| `limit` | query | integer | нет | По умолчанию 30, максимум 1 000 |
| `offset` | query | integer | нет | Смещение |
| `parentID` | query | integer | нет | Родительская категория |

### GET /content/v2/object/charcs/{subjectId} — Характеристики предмета

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `subjectId` | path | integer | да | ID предмета |
| `locale` | query | string | нет | Язык |

## Нюансы

- У каждой категории свой хост и свой токен-доступ; токен без нужной категории даёт `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/vygruzit-vse-kartochki-tovarov.md)

---

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