NodeJS модуль. Работает через приватное API Wildberries.


npm i @rrrublev/wb-private-api
Библиотека использует внутреннее API Wildberries, для доступа к которому требуется токен x_wbaas_token. Авторизация на сайте не нужна.
Как получить:
- Откройте wildberries.ru в браузере, дождитесь полной загрузки страницы
- Откройте DevTools (
F12) → вкладка Console
- Вставьте и выполните содержимое файла
scripts/get-wb-token.js
- Скопируйте выведенную строку JSON и сохраните в файл
.wbaas_token в корне проекта
Токен действителен ~14 дней. По истечении повторите процедуру.
Использование токена в коде:
// Вариант 1 — файл .wbaas_token подхватывается автоматически
const wbapi = new WBPrivateAPI({ destination: Constants.DESTINATIONS.MOSCOW });
// Вариант 2 — передать токен явно
const wbapi = new WBPrivateAPI({
destination: Constants.DESTINATIONS.MOSCOW,
wbaasToken: "ВАШ_ТОКЕН"
});
// Вариант 3 — установить после создания
wbapi.setToken("ВАШ_ТОКЕН");
Вывод данных о первом товаре из поисковой выдачи
import { WBPrivateAPI, Constants } from "@rrrublev/wb-private-api";
const destination = Constants.DESTINATIONS.MOSCOW;
const wbapi = new WBPrivateAPI({ destination });
const catalog = await wbapi.search("HotWheels", 2);
const product = catalog.products[0];
const stocks = await product.getStocks();
const feedbacks = await product.getFeedbacks();
const { items: questions } = await product.getQuestions();
Получение всех товаров поставщика
import { WBPrivateAPI, Constants } from "@rrrublev/wb-private-api";
const wbapi = new WBPrivateAPI({ destination: Constants.DESTINATIONS.MOSCOW });
const supplierId = 845298;
const total = await wbapi.getSupplierProductCount(supplierId);
console.log(`Всего товаров: ${total}`);
// pageCount = 0 — все страницы (до 100), pageCount = 3 — только первые 3
const catalog = await wbapi.getSupplierCatalogAll(supplierId, 3);
console.log(`Получено: ${catalog.products.length}`);
console.log(`Страниц: ${catalog.pages}`);
new WBPrivateAPI({ destination, wbaasToken? })
| Параметр |
Тип |
Описание |
destination |
object |
Направление доставки из Constants.DESTINATIONS |
wbaasToken |
string |
Токен. Если не передан — читается из .wbaas_token |
| Метод |
Возвращает |
Описание |
search(keyword, pageCount?, retries?, filters?) |
WBCatalog |
Поиск товаров по ключевому слову. pageCount = 0 — все страницы (до 100) |
keyHint(query) |
array |
Поисковые подсказки WB |
searchSimilarByNm(productId) |
object |
Похожие товары (как в разделе «Похожие товары» на WB) |
| Метод |
Возвращает |
Описание |
getListOfProducts(productIds) |
array |
Данные по массиву артикулов |
getDeliveryDataByNms(productIds, retries?) |
array |
Данные о доставке по массиву артикулов |
getPromos() |
array |
Текущие промо-акции на WB |
| Метод |
Возвращает |
Описание |
getSupplierInfo(sellerId) |
object |
Информация о поставщике |
getSupplierShipment(sellerId) |
object |
Данные об отгрузке поставщика |
getSupplierProductCount(supplierId) |
number |
Общее количество товаров поставщика |
getSupplierCatalogAll(supplierId, pageCount?, retries?) |
WBCatalog |
Все товары поставщика с постраничным перебором |
getSupplierCatalogPage(supplierId, page?, retries?) |
array |
Товары поставщика с указанной страницы |
| Метод |
Возвращает |
Описание |
getBrandProductCount(brandId) |
number |
Общее количество товаров бренда |
getBrandCatalogPage(brandId, page?, retries?) |
array |
Товары бренда с указанной страницы |
| Метод |
Описание |
setToken(token) |
Устанавливает токен x_wbaas_token |
Объект, возвращаемый методами search() и getSupplierCatalogAll().
| Свойство |
Тип |
Описание |
products |
WBProduct[] |
Массив товаров |
pages |
number |
Количество страниц |
totalProducts |
number |
Общее количество товаров в выдаче |
| Метод |
Возвращает |
Описание |
page(number) |
WBProduct[] |
Товары с заданной страницы (нумерация с 1) |
getPosition(productId) |
number |
Позиция товара по артикулу. -1 если не найден |
// Из поисковой выдачи — WBProduct создаётся автоматически внутри WBCatalog
const product = catalog.products[0];
// По артикулу напрямую
const product = await WBProduct.create(12345678);
| Свойство |
Тип |
Описание |
totalStocks |
number |
Суммарный остаток по всем складам (требует предварительного вызова getStocks()) |
currentPrice |
number |
Текущая цена товара |
| Метод |
Возвращает |
Описание |
getStocks() |
array |
Остатки на складах |
getPromo() |
object |
Участие в промо-акции |
getFeedbacks() |
WBFeedback[] |
Все отзывы о товаре |
getQuestions() |
object |
Все вопросы о товаре. Возвращает { items, totalQuestions, fetchedQuestions, truncated } |
getVideo(quality?) |
object |
Видео товара. quality по умолчанию "1440p". Возвращает { hasVideo, playlistUrl, hls, mp4Preview, duration, chunks } |
| Метод |
Возвращает |
Описание |
getPhotos(size?) |
string[] |
Ссылки на фото в отзыве. size: "min" (по умолчанию) или "full" |
Based on glmn/wb-private-api by Stanislav Gelman.
Licensed under ISC.