Wildberries API TypeScript SDK / PromotionModule
Class: PromotionModule
Defined in: modules/promotion/index.ts:49
Constructors
Constructor
new PromotionModule(client: BaseClient): PromotionModule;Defined in: modules/promotion/index.ts:50
Parameters
| Parameter | Type |
|---|---|
client | BaseClient |
Returns
PromotionModule
Methods
getAdvDelete()
getAdvDelete(options?: {
id: number;
}): Promise<void>;Defined in: modules/promotion/index.ts:67
Удаление кампании
Метод удаляет кампании в статусе 4 — готова к запуску.<br><br> После удаления кампания некоторое время будет находиться в статусе -1 — кампания в процессе удаления. Полное удаление кампании занимает от 3 до 10 минут. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 5 запросов | 200 миллисекунд | 5 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { id: number; } | Query parameters |
options.id? | number | - |
Returns
Promise<void>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getAdvDelete({});
console.log(result);createAdvRename()
createAdvRename(data?: {
advertId: number;
name: string;
}): Promise<void>;Defined in: modules/promotion/index.ts:89
Переименование кампании
Метод меняет название кампании. Это можно сделать в любой момент существования кампании. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 5 запросов | 200 миллисекунд | 5 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
data? | { advertId: number; name: string; } | Request body data |
data.advertId? | number | - |
data.name? | string | - |
Returns
Promise<void>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.createAdvRename({});
console.log(result);getAdvStop()
getAdvStop(options?: {
id: number;
}): Promise<void>;Defined in: modules/promotion/index.ts:110
Завершение кампании
Метод завершает кампании в статусах: - 4 — готово к запуску - 9 — активна - 11 — пауза <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 5 запросов | 200 миллисекунд | 5 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { id: number; } | Query parameters |
options.id? | number | - |
Returns
Promise<void>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getAdvStop({});
console.log(result);updateAuctionPlacement()
updateAuctionPlacement(data: {
placements: {
advert_id: number;
placements: {
search: boolean;
recommendations: boolean;
};
}[];
}): Promise<void>;Defined in: modules/promotion/index.ts:131
Изменение мест размещения в кампаниях с ручной ставкой
Метод меняет места размещения в кампаниях с ручной ставкой. <br><br> Для кампаний в статусах 4, 9 и 11. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 1 запрос | 1 секунда | 1 запрос | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
data | { placements: { advert_id: number; placements: { search: boolean; recommendations: boolean; }; }[]; } | Request body data |
data.placements | { advert_id: number; placements: { search: boolean; recommendations: boolean; }; }[] | - |
Returns
Promise<void>
Response data
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.updateAuctionPlacement({});updateAuctionBid()
updateAuctionBid(data: {
bids: {
advert_id: number;
nm_bids: {
nm_id: number;
bid: number;
placement: "search" | "recommendations" | "combined";
}[];
}[];
}): Promise<{
bids: {
advert_id: number;
nm_bids: {
nm_id: number;
bid: number;
placement: string;
}[];
}[];
}>;Defined in: modules/promotion/index.ts:155
Изменение ставок в кампаниях
Метод меняет ставки карточек товаров по артикулам WB в кампаниях типа 9 с единой или ручной ставкой. <br><br> Для кампаний в статусах 4, 9 и 11. <br><br> В запросе укажите место размещения в параметре placement: - combined — в поиске и рекомендациях для кампаний с единой ставкой - search или recommendations — в поиске или рекомендациях для кампаний с ручной ставкой <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 5 запросов | 200 миллисекунд | 5 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
data | { bids: { advert_id: number; nm_bids: { nm_id: number; bid: number; placement: "search" | "recommendations" | "combined"; }[]; }[]; } | Request body data |
data.bids | { advert_id: number; nm_bids: { nm_id: number; bid: number; placement: "search" | "recommendations" | "combined"; }[]; }[] | - |
Returns
Promise<{ bids: { advert_id: number; nm_bids: { nm_id: number; bid: number; placement: string; }[]; }[]; }>
Успешно
Deprecated
Use updateBidsV2() instead for kopeck-based bidding.
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.updateAuctionBid({});
console.log(result);getAdvBalance()
getAdvBalance(): Promise<{
balance?: number;
net?: number;
bonus?: number;
cashbacks?: {
sum?: number;
percent?: number;
expiration_date?: string;
}[];
}>;Defined in: modules/promotion/index.ts:188
Баланс
Метод возвращает информацию о: - счёте кабинета Продвижения WB. Его пополняет продавец. - балансе — максимальной сумме для оплаты камапнии по взаиморасчету: удержании средств из будущих продаж. Баланс пополнить нельзя, он рассчитывается автоматически на основе отчётов по продвижению. - бонусных начислениях WB. Информацию о бюджете кампаний можно получить в отдельном методе. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 1 запрос | 1 секунда | 5 запросов | </div>
Returns
Promise<{ balance?: number; net?: number; bonus?: number; cashbacks?: { sum?: number; percent?: number; expiration_date?: string; }[]; }>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getAdvBalance();
console.log(result);getAdvBudget()
getAdvBudget(options?: {
id: number;
}): Promise<{
cash?: number;
netting?: number;
total?: number;
}>;Defined in: modules/promotion/index.ts:219
Бюджет кампании
Метод возвращает информацию о бюджете кампании — максимальной сумме затрат на кампанию. Бюджет кампании можно пополнить. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 4 запроса | 250 миллисекунд | 4 запроса | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { id: number; } | Query parameters |
options.id? | number | - |
Returns
Promise<{ cash?: number; netting?: number; total?: number; }>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getAdvBudget({});
console.log(result);createBudgetDeposit()
createBudgetDeposit(data: {
sum?: number;
cashback_sum?: number;
cashback_percent?: number;
type?: number;
return?: boolean;
}, options?: {
id: number;
}): Promise<ResponseWithReturn>;Defined in: modules/promotion/index.ts:244
Пополнение бюджета кампании
Метод пополняет бюджет кампании в статусе 11 — на паузе. <br> Чтобы запустить кампанию после пополнения бюджета, используйте метод Запуск кампании. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 1 запрос | 1 секунда | 5 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
data | { sum?: number; cashback_sum?: number; cashback_percent?: number; type?: number; return?: boolean; } | Request body data |
data.sum? | number | - |
data.cashback_sum? | number | - |
data.cashback_percent? | number | - |
data.type? | number | - |
data.return? | boolean | - |
options? | { id: number; } | Query parameters |
options.id? | number | - |
Returns
Promise<ResponseWithReturn>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.createBudgetDeposit({}, {});
console.log(result);getAdvUpd()
getAdvUpd(options?: {
from: string;
to: string;
}): Promise<{
updNum?: number;
updTime?: string;
updSum?: number;
advertId?: number;
campName?: string;
advertType?: number;
paymentType?: string;
advertStatus?: number;
}[]>;Defined in: modules/promotion/index.ts:276
Получение истории затрат
Метод формирует список фактических затрат на рекламные кампании за заданный период. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 1 запрос | 1 секунда | 5 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { from: string; to: string; } | Query parameters |
options.from? | string | - |
options.to? | string | - |
Returns
Promise<{ updNum?: number; updTime?: string; updSum?: number; advertId?: number; campName?: string; advertType?: number; paymentType?: string; advertStatus?: number; }[]>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getAdvUpd({});
console.log(result);getAdvPayments()
getAdvPayments(options?: {
from?: string;
to?: string;
}): Promise<{
id?: number;
date?: string;
sum?: number;
type?: number;
statusId?: number;
cardStatus?: string;
}[]>;Defined in: modules/promotion/index.ts:320
Получение истории пополнений счёта
Метод возвращает историю пополнений счёта WB Продвижение за заданный период. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 1 запрос | 1 секунда | 5 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { from?: string; to?: string; } | Query parameters |
options.from? | string | - |
options.to? | string | - |
Returns
Promise<{ id?: number; date?: string; sum?: number; type?: number; statusId?: number; cardStatus?: string; }[]>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getAdvPayments({});
console.log(result);createAutoSetExcluded()
createAutoSetExcluded(data: {
excluded?: string[];
}, options?: {
id: number;
}): Promise<void>;Defined in: modules/promotion/index.ts:366
Установка/удаление минус-фраз для кампании с единой ставкой
<div class="description_important"> ⚠️ DEPRECATED: Этот метод устарел и будет отключён 2 февраля 2026.<br><br> Обновление: Дата отключения перенесена с 15 января на 2 февраля 2026.<br><br> Причина: Переход от кампаний с единой ставкой (type 8) к кампаниям с ручной и единой ставкой (type 9).<br><br> Альтернатива: Для работы с минус-фразами в кампаниях type 9 используйте соответствующие методы управления кампаниями с ручной ставкой. </div> Метод устанавливает и удаляет минус-фразы для кампании с единой ставкой.<br><br> Данные фразы можно выбрать из списка запросов, по которым покупатели находили ваш товар. Список запросов можно получить в статистике ключевых фраз.<br> Отправка пустого массива удаляет все минус-фразы из кампании. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 6 секунд | 1 запрос | 6 секунд | 5 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
data | { excluded?: string[]; } | Request body data |
data.excluded? | string[] | - |
options? | { id: number; } | Query parameters |
options.id? | number | - |
Returns
Promise<void>
Успешно
Deprecated
This method will be disabled by Wildberries API on February 2, 2026. Use setNormqueryMinus() for type 9 campaigns with manual bidding instead.
See
- https://dev.wildberries.ru/release-notes?id=388 Release notes
- PromotionModule.setNormqueryMinus New method
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.createAutoSetExcluded({}, {}); // February 2, 2026
console.log(result);createAutoUpdatenm()
createAutoUpdatenm(data: {
add?: number[];
delete?: number[];
}, options?: {
id: number;
}): Promise<void>;Defined in: modules/promotion/index.ts:402
Изменение списка карточек товаров в кампании с единой ставкой
<div class="description_important"> ⚠️ DEPRECATED: Этот метод устарел и будет отключён 2 февраля 2026.<br><br> Причина: Переход от кампаний с единой ставкой (type 8) к кампаниям с ручной и единой ставкой (type 9).<br><br> Альтернатива: Для работы с товарами в кампаниях type 9 используйте метод Управление товарами в кампаниях. </div> Метод добавляет и удаляет карточки товаров в кампании с единой ставкой.<br><br> <div class="description_important"> Добавить можно только те карточки товаров, которые вернутся в <a href="/openapi/promotion#tag/Parametry-avtomaticheskih-kampanij/paths/~1adv~1v1~1auto~1getnmtoadd/get">списке карточек товаров для кампании с единой ставкой</a>.<br>Удалить единственную карточку товара из кампании нельзя. </div> Проверки по параметру delete не предусмотрено. Если пришел ответ со статус-кодом 200, а изменений не произошло, проверьте, чтобы запрос соответствовал документации. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 минута | 60 запросов | 1 секунда | 5 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
data | { add?: number[]; delete?: number[]; } | Request body data |
data.add? | number[] | - |
data.delete? | number[] | - |
options? | { id: number; } | Query parameters |
options.id? | number | - |
Returns
Promise<void>
Успешно
Deprecated
This method will be disabled by Wildberries API on February 2, 2026. Use updateAuctionNm() for type 9 campaigns instead.
See
- https://dev.wildberries.ru/release-notes?id=388 Release notes
- PromotionModule.updateAuctionNm New method
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.createAutoUpdatenm({}, {}); // February 2, 2026
console.log(result);updateAuctionNm()
updateAuctionNm(data: {
nms: {
advert_id: number;
nms: {
add?: unknown;
delete?: number[];
};
}[];
}): Promise<{
nms: {
advert_id: number;
nms: {
added: number[];
deleted: number[];
};
}[];
}>;Defined in: modules/promotion/index.ts:432
Изменение списка карточек товаров в кампаниях
Метод добавляет и удаляет карточки товаров в кампаниях. <br><br> Для кампаний в статусах 4, 9 и 11. <br><br> Для добавляемых товаров устанавливается текущая минимальная ставка. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 1 запрос | 1 секунда | 1 запрос | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
data | { nms: { advert_id: number; nms: { add?: unknown; delete?: number[]; }; }[]; } | Request body data |
data.nms | { advert_id: number; nms: { add?: unknown; delete?: number[]; }; }[] | - |
Returns
Promise<{ nms: { advert_id: number; nms: { added: number[]; deleted: number[]; }; }[]; }>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.updateAuctionNm({});
console.log(result);getAdvCount()
getAdvCount(): Promise<{
all?: number;
adverts?: {
type?: number;
status?: number;
count?: number;
};
}>;Defined in: modules/promotion/index.ts:456
Количество медиакампаний
Метод возвращает количество медиакампаний продавца с группировкой по статусам. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 10 запросов | 100 миллисекунд | 10 запросов | </div>
Returns
Promise<{ all?: number; adverts?: { type?: number; status?: number; count?: number; }; }>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getAdvCount();
console.log(result);getAdvAdverts()
getAdvAdverts(options?: {
status?: number;
type?: number;
limit?: number;
offset?: number;
order?: string;
direction?: string;
}): Promise<{
advertId?: number;
name?: string;
brand?: string;
type?: number;
status?: number;
createTime?: string;
endTime?: string;
}[]>;Defined in: modules/promotion/index.ts:483
Список медиакампаний
Метод возвращает список всех медиакампаний продавца по их типам и статусам. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 10 запросов | 100 миллисекунд | 10 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { status?: number; type?: number; limit?: number; offset?: number; order?: string; direction?: string; } | Query parameters |
options.status? | number | - |
options.type? | number | - |
options.limit? | number | - |
options.offset? | number | - |
options.order? | string | - |
options.direction? | string | - |
Returns
Promise<{ advertId?: number; name?: string; brand?: string; type?: number; status?: number; createTime?: string; endTime?: string; }[]>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getAdvAdverts({});
console.log(result);getAdvAdvert()
getAdvAdvert(options?: {
id: number;
}): Promise<{
advertId?: number;
name?: string;
brand?: string;
type?: number;
status?: number;
createTime?: string;
extended?: {
reason?: string;
expenses?: number;
from?: string;
to?: string;
updated_at?: string;
price?: number;
budget?: number;
operation?: number;
contract_id?: number;
};
items?: {
id?: number;
name?: string;
status?: number;
place?: number;
budget?: number;
daily_limit?: number;
category_name?: string;
cpm?: number;
url?: string;
advert_type?: number;
created_at?: string;
updated_at?: string;
date_from?: string;
date_to?: string;
nms?: number[];
bottomText1?: string;
bottomText2?: string;
message?: string;
additionalSettings?: number;
receiversCount?: number;
subject_id?: number;
subject_name?: string;
action_name?: string;
show_hours?: {
From?: number;
To?: number;
}[];
Erid?: string;
}[];
}>;Defined in: modules/promotion/index.ts:532
Информация о медиакампании
Метод возвращает информацию о кампании WB Медиа. Вместо карточек товаров в медиакампаниях продвигаются рекламные баннеры продавца на сайте и в приложении WB. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 10 запросов | 100 миллисекунд | 10 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { id: number; } | Query parameters |
options.id? | number | - |
Returns
Promise<{ advertId?: number; name?: string; brand?: string; type?: number; status?: number; createTime?: string; extended?: { reason?: string; expenses?: number; from?: string; to?: string; updated_at?: string; price?: number; budget?: number; operation?: number; contract_id?: number; }; items?: { id?: number; name?: string; status?: number; place?: number; budget?: number; daily_limit?: number; category_name?: string; cpm?: number; url?: string; advert_type?: number; created_at?: string; updated_at?: string; date_from?: string; date_to?: string; nms?: number[]; bottomText1?: string; bottomText2?: string; message?: string; additionalSettings?: number; receiversCount?: number; subject_id?: number; subject_name?: string; action_name?: string; show_hours?: { From?: number; To?: number; }[]; Erid?: string; }[]; }>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getAdvAdvert({});
console.log(result);getAdvFullstats()
getAdvFullstats(options?: {
ids: string;
beginDate: string;
endDate: string;
}): Promise<ResponseFullStats>;Defined in: modules/promotion/index.ts:644
Статистика кампаний
Метод формирует статистику для кампаний независимо от типа. <br><br> Максимальный период в запросе — 31 день. <br><br> Для кампаний в статусах 7, 9 и 11. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 минута | 3 запроса | 20 секунд | 1 запрос | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { ids: string; beginDate: string; endDate: string; } | Query parameters |
options.ids? | string | - |
options.beginDate? | string | - |
options.endDate? | string | - |
Returns
Promise<ResponseFullStats>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getAdvFullstats({});
console.log(result);getStatsKeywords()
getStatsKeywords(options?: {
advert_id: number;
from: string;
to: string;
}): Promise<V0KeywordsStatisticsResponse>;Defined in: modules/promotion/index.ts:671
Статистика по ключевым фразам
Метод формирует статистику по ключевым фразам из поисковой строки: количество просмотров товара и затраты по одной ключевой фразе. Подходит для кампаний c единой и ручной ставкой. <br><br> Статистика формируется за каждый день, когда кампания была активна. В одном запросе можно получить данные максимум за 7 дней. <br> Данные обновляются каждый час. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 4 запроса | 250 миллисекунд | 4 запроса | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { advert_id: number; from: string; to: string; } | Query parameters |
options.advert_id? | number | - |
options.from? | string | - |
options.to? | string | - |
Returns
Promise<V0KeywordsStatisticsResponse>
Успешно
Deprecated
This endpoint is deprecated. Use alternative methods for keyword statistics.
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getStatsKeywords({});
console.log(result);createAdvStat()
createAdvStat(data:
| RequestWithDate
| RequestWithInterval
| RequestWithCampaignID[]): Promise<
| StatInterval
| StatDate
| Stat[]>;Defined in: modules/promotion/index.ts:697
Статистика медиакампаний
Метод формирует статистику кампаний сервиса WB Медиа. Статистику можно группировать по датам и/или интервалам. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 1 секунда | 10 запросов | 100 миллисекунд | 10 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
data | | RequestWithDate | RequestWithInterval | RequestWithCampaignID[] | Request body data |
Returns
Promise< | StatInterval | StatDate | Stat[]>
Успешно
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.createAdvStat({});
console.log(result);getCalendarPromotions()
getCalendarPromotions(options?: {
startDateTime: string;
endDateTime: string;
allPromo: boolean;
limit?: number;
offset?: number;
}): Promise<unknown>;Defined in: modules/promotion/index.ts:722
Список акций
Метод возвращает список акций в WB с датами и временем проведения. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца для всех методов категории <strong>Календарь акций</strong>: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 6 секунд | 10 запросов | 600 миллисекунд | 5 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { startDateTime: string; endDateTime: string; allPromo: boolean; limit?: number; offset?: number; } | Query parameters |
options.startDateTime? | string | - |
options.endDateTime? | string | - |
options.allPromo? | boolean | - |
options.limit? | number | - |
options.offset? | number | - |
Returns
Promise<unknown>
Response data
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getCalendarPromotions({});
console.log(result);getPromotionsDetails()
getPromotionsDetails(options?: {
promotionIDs: string;
}): Promise<unknown>;Defined in: modules/promotion/index.ts:750
Детальная информация об акциях
Метод возвращает подробную информацию об акции по ID. <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца для всех методов категории <strong>Календарь акций</strong>: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 6 секунд | 10 запросов | 600 миллисекунд | 5 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { promotionIDs: string; } | Query parameters |
options.promotionIDs? | string | - |
Returns
Promise<unknown>
Response data
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getPromotionsDetails({});
console.log(result);getPromotionsNomenclatures()
getPromotionsNomenclatures(options?: {
promotionID: number;
inAction: boolean;
limit?: number;
offset?: number;
}): Promise<unknown>;Defined in: modules/promotion/index.ts:772
Список товаров для участия в акции
Метод формирует список товаров, подходящих для участия в акции. Эти товары можно добавить в акцию с помощью отдельного метода. <div class="description_important"> Данный метод неприменим для автоакций. </div> <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца для всех методов категории <strong>Календарь акций</strong>: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 6 секунд | 10 запросов | 600 миллисекунд | 5 запросов | </div>
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { promotionID: number; inAction: boolean; limit?: number; offset?: number; } | Query parameters |
options.promotionID? | number | - |
options.inAction? | boolean | - |
options.limit? | number | - |
options.offset? | number | - |
Returns
Promise<unknown>
Response data
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.getPromotionsNomenclatures({});
console.log(result);createPromotionsUpload()
createPromotionsUpload(): Promise<unknown>;Defined in: modules/promotion/index.ts:798
Добавить товар в акцию
Метод создаёт задание на загрузку товара в акцию.<br> Состояние загрузки можно проверить с помощью отдельных методов. <div class="description_important"> Данный метод неприменим для автоакций. </div> <div class="description_limit"> <a href="/openapi/api-information#tag/Vvedenie/Limity-zaprosov">Лимит запросов</a> на один аккаунт продавца для всех методов категории <strong>Календарь акций</strong>: | Период | Лимит | Интервал | Всплеск | | --- | --- | --- | --- | | 6 секунд | 10 запросов | 600 миллисекунд | 5 запросов | </div>
Returns
Promise<unknown>
Response data
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const result = await sdk.promotion.createPromotionsUpload();
console.log(result);getPromotionAdverts()
getPromotionAdverts(ids: number[]): Promise<GetAdverts>;Defined in: modules/promotion/index.ts:831
Получить информацию о кампаниях (устаревший метод)
Метод возвращает информацию о рекламных кампаниях по их идентификаторам.
Parameters
| Parameter | Type | Description |
|---|---|---|
ids | number[] | Массив идентификаторов кампаний |
Returns
Promise<GetAdverts>
Информация о кампаниях
Deprecated
Будет удалён 2 февраля 2026. Используйте getAdvertsV2() вместо этого.
See
- https://dev.wildberries.ru/release-notes?id=388 Release notes
- PromotionModule.getAdvertsV2 Новый метод
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const adverts = await sdk.promotion.getPromotionAdverts([12345, 67890]);
console.log(adverts);getAuctionAdverts()
getAuctionAdverts(params?: {
status?: number;
type?: number;
}): Promise<GetAdverts>;Defined in: modules/promotion/index.ts:864
Получить список аукционных кампаний (устаревший метод)
Метод возвращает список рекламных кампаний типа "аукцион".
Parameters
| Parameter | Type | Description |
|---|---|---|
params? | { status?: number; type?: number; } | Параметры фильтрации |
params.status? | number | - |
params.type? | number | - |
Returns
Promise<GetAdverts>
Список аукционных кампаний
Deprecated
Будет удалён 2 февраля 2026. Используйте getAdvertsV2() вместо этого.
See
- https://dev.wildberries.ru/release-notes?id=388 Release notes
- PromotionModule.getAdvertsV2 Новый метод
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Example
const adverts = await sdk.promotion.getAuctionAdverts({ status: 9 });
console.log(adverts);getNormqueryStats()
getNormqueryStats(data: V0GetNormQueryStatsRequest): Promise<V0GetNormQueryStatsResponse>;Defined in: modules/promotion/index.ts:904
Статистика поисковых кластеров
Метод возвращает статистику по поисковым кластерам за указанный период. Можно использовать только для кампаний с моделью оплаты cpm — за показы.
Rate limit: 10 requests per minute, 6 second interval, burst 20
Parameters
| Parameter | Type | Description |
|---|---|---|
data | V0GetNormQueryStatsRequest | Request body with date range and campaign/product items |
Returns
Promise<V0GetNormQueryStatsResponse>
Statistics for search clusters
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
https://dev.wildberries.ru/openapi/promotion#tag/Statistika/paths/~1adv~1v0~1normquery~1stats/post
Example
const stats = await sdk.promotion.getNormqueryStats({
from: '2025-10-07',
to: '2025-10-08',
items: [{ advert_id: 1825035, nm_id: 983512347 }]
});
console.log(stats.stats);getNormqueryBids()
getNormqueryBids(data: V0GetNormQueryBidsRequest): Promise<V0GetNormQueryBidsResponse>;Defined in: modules/promotion/index.ts:934
Список ставок поисковых кластеров
Метод возвращает список поисковых кластеров со ставками по ID кампаний и артикулам WB.
Rate limit: 5 requests per second, 200ms interval, burst 10
Parameters
| Parameter | Type | Description |
|---|---|---|
data | V0GetNormQueryBidsRequest | Request body with campaign/product items |
Returns
Promise<V0GetNormQueryBidsResponse>
List of search cluster bids
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
Example
const bids = await sdk.promotion.getNormqueryBids({
items: [{ advert_id: 1825035, nm_id: 983512347 }]
});
console.log(bids.bids);setNormqueryBids()
setNormqueryBids(data: V0SetNormQueryBidsRequest): Promise<void>;Defined in: modules/promotion/index.ts:969
Установить ставки для поисковых кластеров
Метод устанавливает ставки на поисковые кластеры. Можно использовать только для кампаний с ручной ставкой и моделью оплаты cpm — за показы.
Rate limit: 2 requests per second, 500ms interval, burst 4
Parameters
| Parameter | Type | Description |
|---|---|---|
data | V0SetNormQueryBidsRequest | Request body with bids to set |
Returns
Promise<void>
void on success
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
Example
await sdk.promotion.setNormqueryBids({
bids: [{
advert_id: 1825035,
nm_id: 983512347,
norm_query: 'Фраза 1',
bid: 1000
}]
});deleteNormqueryBids()
deleteNormqueryBids(data: V0SetNormQueryBidsRequest): Promise<void>;Defined in: modules/promotion/index.ts:1002
Удалить ставки поисковых кластеров
Метод удаляет ставки с поисковых кластеров. Можно использовать только для кампаний с ручной ставкой и моделью оплаты cpm — за показы.
Rate limit: 5 requests per second, 200ms interval, burst 10
Parameters
| Parameter | Type | Description |
|---|---|---|
data | V0SetNormQueryBidsRequest | Request body with bids to delete |
Returns
Promise<void>
void on success
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
Example
await sdk.promotion.deleteNormqueryBids({
bids: [{
advert_id: 1825035,
nm_id: 983512347,
norm_query: 'Фраза 1',
bid: 1000
}]
});getNormqueryMinus()
getNormqueryMinus(data: V0GetNormQueryMinusRequest): Promise<V0GetNormQueryMinusResponse>;Defined in: modules/promotion/index.ts:1030
Список минус-фраз кампаний
Метод возвращает список минус-фраз по ID кампаний и артикулам WB.
Rate limit: 5 requests per second, 200ms interval, burst 10
Parameters
| Parameter | Type | Description |
|---|---|---|
data | V0GetNormQueryMinusRequest | Request body with campaign/product items |
Returns
Promise<V0GetNormQueryMinusResponse>
List of minus-phrases
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
Example
const minusPhrases = await sdk.promotion.getNormqueryMinus({
items: [{ advert_id: 1825035, nm_id: 983512347 }]
});
console.log(minusPhrases.items);setNormqueryMinus()
setNormqueryMinus(data: V0SetMinusNormQueryRequest): Promise<void>;Defined in: modules/promotion/index.ts:1062
Установка и удаление минус-фраз
Метод устанавливает и удаляет минус-фразы в кампаниях с ручной ставкой и моделью оплаты cpm — за показы. Отправка пустого массива удаляет все минус-фразы.
Rate limit: 5 requests per second, 200ms interval, burst 10
Parameters
| Parameter | Type | Description |
|---|---|---|
data | V0SetMinusNormQueryRequest | Request body with minus-phrases to set |
Returns
Promise<void>
void on success
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
Example
await sdk.promotion.setNormqueryMinus({
advert_id: 1825035,
nm_id: 983512347,
norm_queries: ['Фраза 1', 'Фраза 2']
});getAdvertsV2()
getAdvertsV2(options?: {
ids?: string;
statuses?: string;
payment_type?: "cpm" | "cpc";
}): Promise<GetAdvertsV2Response>;Defined in: modules/promotion/index.ts:1109
Информация о кампаниях (V2)
Метод возвращает информацию о рекламных кампаниях с единой или ручной ставкой по их статусам, типам оплаты и ID. Replaces deprecated v1 endpoints.
Данные синхронизируются с базой раз в 3 минуты. Статусы кампаний меняются раз в минуту. Ставки кампаний меняются раз в 30 секунд.
Rate limit: 5 requests per second, 200ms interval, burst 5
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | { ids?: string; statuses?: string; payment_type?: "cpm" | "cpc"; } | Query parameters for filtering campaigns |
options.ids? | string | Campaign IDs, comma-separated (max 50) |
options.statuses? | string | Campaign statuses: -1 (deleted), 4 (ready), 7 (finished), 8 (cancelled), 9 (active), 11 (paused) |
options.payment_type? | "cpm" | "cpc" | Payment type: cpm (per impressions) or cpc (per click) |
Returns
Promise<GetAdvertsV2Response>
List of campaigns with bid_type (auto/manual) and bids in kopecks
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
Since
3.4.0 — Return type changed from GetAdverts to GetAdvertsV2Response
See
https://dev.wildberries.ru/docs/openapi/promotion#tag/Kampanii/paths/~1api~1advert~1v2~1adverts/get
Example
const campaigns = await sdk.promotion.getAdvertsV2({
ids: '12345,23456',
statuses: '9,11',
payment_type: 'cpm',
});
for (const advert of campaigns.adverts) {
console.log(advert.id, advert.bid_type, advert.status);
for (const nm of advert.nm_settings) {
console.log(` nmId=${nm.nm_id} search=${nm.bids_kopecks.search} reco=${nm.bids_kopecks.recommendations}`);
}
}getBidsMinV2()
getBidsMinV2(data: {
advert_id: number;
nm_ids: number[];
payment_type: "cpm" | "cpc";
placement_types: ("search" | "combined" | "recommendation")[];
}): Promise<{
bids: {
nm_id: number;
bids: {
type: PlacementType;
value: number;
}[];
}[];
}>;Defined in: modules/promotion/index.ts:1149
Минимальные ставки для карточек товаров (V1 API)
Метод возвращает минимальные ставки для карточек товаров в копейках по типу оплаты и местам размещения. Replaces deprecated v0 endpoint.
Rate limit: 20 requests per minute, 3 second interval, burst 5
Parameters
| Parameter | Type | Description |
|---|---|---|
data | { advert_id: number; nm_ids: number[]; payment_type: "cpm" | "cpc"; placement_types: ("search" | "combined" | "recommendation")[]; } | Request body with campaign ID, product IDs, payment type, and placement types |
data.advert_id | number | - |
data.nm_ids | number[] | - |
data.payment_type | "cpm" | "cpc" | - |
data.placement_types | ("search" | "combined" | "recommendation")[] | - |
Returns
Promise<{ bids: { nm_id: number; bids: { type: PlacementType; value: number; }[]; }[]; }>
Minimum bids for products by placement type (in kopecks)
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
Example
const minBids = await sdk.promotion.getBidsMinV2({
advert_id: 98765432,
nm_ids: [12345678, 87654321],
payment_type: 'cpm',
placement_types: ['combined', 'search', 'recommendation']
});
console.log(minBids.bids);getBidsRecommendations()
getBidsRecommendations(params: GetBidsRecommendationsParams): Promise<BidsRecommendationsResponse>;Defined in: modules/promotion/index.ts:1202
Рекомендуемые ставки для карточек товаров и поисковых кластеров
Метод возвращает рекомендуемые ставки для карточек товаров и поисковых кластеров кампании. Только для кампаний с типом оплаты cpm (за показы).
Данные синхронизируются с базой раз в 3 минуты. Для приостановленных кампаний normQueries может быть пустым массивом.
Rate limit: 5 requests per minute, 12-second interval, burst 5
Parameters
| Parameter | Type | Description |
|---|---|---|
params | GetBidsRecommendationsParams | Campaign ID and WB article ID |
Returns
Promise<BidsRecommendationsResponse>
Recommended bids: base (card-level) and normQueries (per search cluster)
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When nmId does not belong to campaign or params invalid (400)
Throws
When network request fails or times out
Since
3.4.0
See
Example
const reco = await sdk.promotion.getBidsRecommendations({
advertId: 29081652,
nmId: 148190095,
});
for (const nq of reco.normQueries) {
console.log(`${nq.normQuery}: min=${nq.reachMin.bidKopecks} med=${nq.reachMedium.bidKopecks} max=${nq.reachMax.bidKopecks}`);
}updateBidsV2()
updateBidsV2(data: {
bids: {
advert_id: number;
nm_bids: {
nm_id: number;
bid_kopecks: number;
placement: "search" | "recommendations" | "combined";
}[];
}[];
}): Promise<{
bids: {
advert_id: number;
nm_bids: {
nm_id: number;
bid_kopecks: number;
placement: string;
}[];
}[];
}>;Defined in: modules/promotion/index.ts:1244
Изменение ставок в кампаниях (V1 API)
Метод меняет ставки карточек товаров по артикулам WB в кампаниях с единой или ручной ставкой. Для кампаний в статусах 4, 9 и 11. Replaces deprecated v0 endpoint.
Rate limit: 5 requests per second, 200ms interval, burst 5
Parameters
| Parameter | Type | Description |
|---|---|---|
data | { bids: { advert_id: number; nm_bids: { nm_id: number; bid_kopecks: number; placement: "search" | "recommendations" | "combined"; }[]; }[]; } | Request body with bids in kopecks |
data.bids | { advert_id: number; nm_bids: { nm_id: number; bid_kopecks: number; placement: "search" | "recommendations" | "combined"; }[]; }[] | - |
Returns
Promise<{ bids: { advert_id: number; nm_bids: { nm_id: number; bid_kopecks: number; placement: string; }[]; }[]; }>
Updated bids
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
Example
const result = await sdk.promotion.updateBidsV2({
bids: [{
advert_id: 12345,
nm_bids: [{
nm_id: 13335157,
bid_kopecks: 250,
placement: 'recommendations'
}]
}]
});
console.log(result.bids);getCampaignCount()
getCampaignCount(): Promise<GetCampaignCountResponse>;Defined in: modules/promotion/index.ts:1306
Получение списков кампаний
Возвращает списки всех рекламных кампаний продавца с их ID. Кампании сгруппированы по типу и статусу, у каждой указана дата последнего изменения.
Rate limit:
| Период | Лимит | Интервал | Всплеск |
|---|---|---|---|
| 1 сек | 5 запросов | 200 мс | 5 запросов |
Returns
Promise<GetCampaignCountResponse>
Списки кампаний по типам и статусам
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
See
https://dev.wildberries.ru/openapi/promotion#tag/Kampanii
Example
const campaigns = await sdk.promotion.getCampaignCount();
console.log(`Total campaigns: ${campaigns.all}`);
for (const group of campaigns.adverts || []) {
console.log(`Type ${group.type}, Status ${group.status}: ${group.count} campaigns`);
}createCampaign()
createCampaign(data: CreateCampaignRequest): Promise<number>;Defined in: modules/promotion/index.ts:1342
Создание кампании
Метод создаёт рекламную кампанию с единой или ручной ставкой. Возвращает ID созданной кампании.
Rate limit:
| Период | Лимит | Интервал | Всплеск |
|---|---|---|---|
| 1 мин | 5 запросов | 12 сек | 5 запросов |
Parameters
| Parameter | Type | Description |
|---|---|---|
data | CreateCampaignRequest | Данные для создания кампании |
Returns
Promise<number>
ID созданной кампании
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
See
https://dev.wildberries.ru/openapi/promotion#tag/Sozdanie-kampanij
Example
const campaignId = await sdk.promotion.createCampaign({
name: 'My Campaign',
nms: [12345678, 87654321],
bid_type: 'manual',
payment_type: 'cpm',
placement_types: ['search', 'recommendations']
});
console.log(`Created campaign with ID: ${campaignId}`);getSupplierSubjects()
getSupplierSubjects(params?: GetSupplierSubjectsParams): Promise<
| SupplierSubject[]
| null>;Defined in: modules/promotion/index.ts:1376
Список предметов продавца
Метод возвращает список предметов, для которых можно создать кампанию. Возвращает null, если нет товаров для создания кампаний.
Rate limit:
| Период | Лимит | Интервал | Всплеск |
|---|---|---|---|
| 1 мин | 5 запросов | 12 сек | 5 запросов |
Parameters
| Parameter | Type | Description |
|---|---|---|
params? | GetSupplierSubjectsParams | Параметры фильтрации |
Returns
Promise< | SupplierSubject[] | null>
Список предметов или null
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
See
https://dev.wildberries.ru/openapi/promotion#tag/Sozdanie-kampanij
Example
const subjects = await sdk.promotion.getSupplierSubjects({ payment_type: 'cpm' });
if (subjects) {
for (const subject of subjects) {
console.log(`${subject.name}: ${subject.count} products`);
}
}getSupplierNms()
getSupplierNms(subjectIds: number[]): Promise<SupplierNmItem[]>;Defined in: modules/promotion/index.ts:1408
Список карточек товаров продавца
Метод возвращает список карточек товаров по указанным предметам. Используется для получения артикулов WB для добавления в кампанию.
Rate limit:
| Период | Лимит | Интервал | Всплеск |
|---|---|---|---|
| 1 мин | 5 запросов | 12 сек | 5 запросов |
Parameters
| Parameter | Type | Description |
|---|---|---|
subjectIds | number[] | Массив ID предметов |
Returns
Promise<SupplierNmItem[]>
Список карточек товаров
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
See
https://dev.wildberries.ru/openapi/promotion#tag/Sozdanie-kampanij
Example
const products = await sdk.promotion.getSupplierNms([123, 456]);
for (const product of products) {
console.log(`${product.title} (nmId: ${product.nm})`);
}startCampaign()
startCampaign(id: number): Promise<void>;Defined in: modules/promotion/index.ts:1440
Запуск кампании
Метод запускает кампании в статусах:
4— готова к запуску11— на паузе
Rate limit:
| Период | Лимит | Интервал | Всплеск |
|---|---|---|---|
| 1 сек | 5 запросов | 200 мс | 5 запросов |
Parameters
| Parameter | Type | Description |
|---|---|---|
id | number | ID кампании |
Returns
Promise<void>
void
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When campaign is in wrong status (400)
See
https://dev.wildberries.ru/openapi/promotion#tag/Upravlenie-kampaniyami
Example
await sdk.promotion.startCampaign(12345);
console.log('Campaign started successfully');pauseCampaign()
pauseCampaign(id: number): Promise<void>;Defined in: modules/promotion/index.ts:1470
Пауза кампании
Метод ставит кампании на паузу. Работает только для кампаний в статусе:
9— активна
Rate limit:
| Период | Лимит | Интервал | Всплеск |
|---|---|---|---|
| 1 сек | 5 запросов | 200 мс | 5 запросов |
Parameters
| Parameter | Type | Description |
|---|---|---|
id | number | ID кампании |
Returns
Promise<void>
void
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When campaign is in wrong status (400)
See
https://dev.wildberries.ru/openapi/promotion#tag/Upravlenie-kampaniyami
Example
await sdk.promotion.pauseCampaign(12345);
console.log('Campaign paused successfully');getMinusPhrases()
getMinusPhrases(request: GetMinusPhrasesRequest): Promise<GetMinusPhrasesResponse>;Defined in: modules/promotion/index.ts:1507
Получить минус-фразы для кампаний
Возвращает список минус-фраз по ID кампаний и артикулам WB.
nm_id по типу кампании:
- Type 8 (устаревший): nm_id=0 для всей кампании
- Type 9 (актуальный): nm_id = реальный артикул WB
Rate limit: 5 requests per second, 200ms interval, burst 10
Parameters
| Parameter | Type | Description |
|---|---|---|
request | GetMinusPhrasesRequest | Запрос с массивом items (max 100) |
Returns
Promise<GetMinusPhrasesResponse>
Promise<GetMinusPhrasesResponse>
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
Example
const result = await sdk.promotion.getMinusPhrases({
items: [{ advert_id: 123456, nm_id: 789012 }]
});
console.log(result.items[0].norm_queries); // ['фраза1', 'фраза2']setMinusPhrases()
setMinusPhrases(request: SetMinusPhrasesRequest): Promise<void>;Defined in: modules/promotion/index.ts:1552
Установить минус-фразы для кампании
Устанавливает минус-фразы в кампаниях с ручной ставкой и CPM.
ВАЖНО: Отправка пустого массива norm_queries УДАЛЯЕТ ВСЕ минус-фразы!
nm_id по типу кампании:
- Type 8: nm_id=0 для настроек всей кампании
- Type 9: nm_id = реальный артикул WB
Rate limit: 5 requests per second, 200ms interval, burst 10
Parameters
| Parameter | Type | Description |
|---|---|---|
request | SetMinusPhrasesRequest | Запрос (max 1000 norm_queries) |
Returns
Promise<void>
Promise<void>
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
Example
// Установить минус-фразы
await sdk.promotion.setMinusPhrases({
advert_id: 123456,
nm_id: 789012,
norm_queries: ['нежелательная фраза', 'другая фраза']
});
// Удалить ВСЕ минус-фразы
await sdk.promotion.setMinusPhrases({
advert_id: 123456,
nm_id: 789012,
norm_queries: [] // УДАЛЯЕТ ВСЕ!
});getSearchClusterStats()
getSearchClusterStats(request: GetSearchClusterStatsRequest): Promise<GetSearchClusterStatsResponse>;Defined in: modules/promotion/index.ts:1595
Получить статистику поисковых кластеров
Возвращает статистику по поисковым кластерам за период.
Поддерживает кампании cpm и cpc. Для cpc-кампаний поля views, ctr, cpm отсутствуют в ответе.
nm_id по типу кампании:
- Type 8: nm_id=0 для агрегированной статистики
- Type 9: nm_id = реальный артикул WB
Rate limit: 10 requests per minute, 6 second interval, burst 20
Parameters
| Parameter | Type | Description |
|---|---|---|
request | GetSearchClusterStatsRequest | Запрос с периодом и items (max 100) |
Returns
Promise<GetSearchClusterStatsResponse>
Promise<GetSearchClusterStatsResponse>
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
https://dev.wildberries.ru/openapi/promotion#tag/Statistika/paths/~1adv~1v0~1normquery~1stats/post
Example
const stats = await sdk.promotion.getSearchClusterStats({
from: '2026-02-01',
to: '2026-02-09',
items: [{ advert_id: 123456, nm_id: 789012 }]
});
// stats.stats[0].stats[0].norm_query = "фраза"
// stats.stats[0].stats[0].views = 1949updateBids()
updateBids(data: UpdateBidsRequest): Promise<UpdateBidsResponse>;Defined in: modules/promotion/index.ts:1640
Изменение ставок в кампаниях (V1 API с копейками)
Меняет ставки карточек товаров по артикулам WB в кампаниях с единой или ручной ставкой. Для кампаний в статусах 4, 9 и 11.
ВАЖНО: Ставки указываются в КОПЕЙКАХ (bid_kopecks), не в рублях!
Rate limit: 5 requests per second, 200ms interval, burst 5
Parameters
| Parameter | Type | Description |
|---|---|---|
data | UpdateBidsRequest | Request body with bids in kopecks |
Returns
Promise<UpdateBidsResponse>
Updated bids
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
Example
const result = await sdk.promotion.updateBids({
bids: [{
advert_id: 12345,
nm_bids: [{
nm_id: 13335157,
bid_kopecks: 250, // = 2.50 RUB
placement: 'recommendations'
}]
}]
});updateCampaignProducts()
updateCampaignProducts(data: UpdateCampaignProductsRequest): Promise<UpdateCampaignProductsResponse>;Defined in: modules/promotion/index.ts:1675
Управление товарами в кампаниях
Добавляет и удаляет карточки товаров в кампаниях типа 9. Для кампаний в статусах 4, 9 и 11. Для добавляемых товаров устанавливается текущая минимальная ставка.
Rate limit: 1 request per second, 1000ms interval, burst 1
Parameters
| Parameter | Type | Description |
|---|---|---|
data | UpdateCampaignProductsRequest | Request body with campaigns and products to add/delete |
Returns
Promise<UpdateCampaignProductsResponse>
Results of product updates
Throws
When API key is invalid (401/403)
Throws
When rate limit exceeded (429)
Throws
When request data is invalid (400/422)
Throws
When network request fails or times out
See
Example
const result = await sdk.promotion.updateCampaignProducts({
campaigns: [{
advert_id: 12345,
add_nms: [111, 222],
delete_nms: [333]
}]
});