Item Data
http
POST /api/v2/stocks-report/products/productsBase URL: https://seller-analytics-api.wildberries.ru · Module: analytics · Section: Stocks Report · Specification doc ↗
Forms a dataset for inventory by items.
You can get data for individual items as well as for the entire report if there are no filters in the query: nmIDs, subjectID, brandName, tagID.
The report data is updated once every 2 hours.
Request limit per one seller account:
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 min | 3 requests | 20 s | 3 requests |
| Service | 1 min | 3 requests | 20 s | 3 requests |
| Base with secret | 1 min | 3 requests | 20 s | 3 requests |
| Base | 1 h | 2 requests | 30 min | 1 request |
Request body
application/json — schema TableItemRequest, required
nmIDsinteger<int64>[]— List of WB item numbers for filteringsubjectIDinteger<int32>— Subcategory IDbrandNamestring— BrandtagIDinteger<int64>— Label IDcurrentPeriodPeriodInv(required)startstring(required) — Start date of the period. No later thanend. No earlier than 3 months from todayendstring(required) — End date of the period. No earlier than 3 months from today
stockTypeStockType(required)skipDeletedNmboolean(required) — Skip deleted itemsorderByTableOrderBy(required)fieldTableGroupField(required)modeOrderByMode(required)
availabilityFiltersstring[](required) — Item availability: -deficient— Low stock -actual— Selling well -balanced— Selling steadily -nonActual— Selling poorly -nonLiquid— Struggling -invalidData— Not calculatedlimitinteger<int64>— Number of groups in the responseoffsetinteger<int64>(required) — From which element to start outputting data
Responses
| Code | Description | Schema |
|---|---|---|
200 | Success | PostV2StocksReportProductsProductsResponse200 |
400 | Bad request | ErrorObject400 |
401 | Unauthorized | object |
402 | Payment required | object |
403 | Access denied | ErrorObject403 |
429 | Too many requests | object |
Structure 200:
dataTableItemResponseitemsTableItemSt[]— Set of item datanmIDinteger<int64>— WB item numberisDeletedboolean— Is the item deletedsubjectNamestring— Subcategory namenamestring— Item namevendorCodestring— Seller item numberbrandNamestring— BrandmainPhotostring— Link to the main photohasSizesboolean— Does the item have sizes. The item has no size variations when it is represented by '"techSize":"0"', indicating a single, uniform size for the item.metricsobject— Item metricsordersCountinteger<int64>— Items orderedordersSuminteger<int64>— Total order valueavgOrdersnumber<float64>— Average daily ordersavgOrdersByMonthFloatGraphByPeriodItem[]— Average monthly ordersstartstring— Beginning of the monthendstring— End of the monthvaluenumber<float64>— Average items ordered
buyoutCountinteger<int64>— Items purchasedbuyoutSuminteger<int64>— Total purchase valuebuyoutPercentinteger<int64>— Purchase ratestockCountinteger<int64>— Current inventorystockSuminteger<int64>— Current inventory valuesaleRateobject— Current DSI. Special cases: 1)"hours":-1— infinite duration 2)"hours":-2— zero duration 3)"hours":-3— uncalculated durationdaysinteger<int32>— Number of dayshoursinteger<int32>— Number of hours
avgStockTurnoverobject— Average DSI. Special cases: 1)"hours":-1— infinite duration 2)"hours":-2— zero duration 3)"hours":-3— uncalculated durationdaysinteger<int32>— Number of dayshoursinteger<int32>— Number of hours
toClientCountinteger<int64>— On the way to userfromClientCountinteger<int64>— On the way from userofficeMissingTimeobject— Out-of-stock time. Special cases: 1)"hours":-1— infinite duration 2)"hours":-2— zero duration 3)"hours":-3— uncalculated duration 4)"hours":-4— absence during the entire perioddaysinteger<int32>— Number of dayshoursinteger<int32>— Number of hours
lostOrdersCountnumber<float64>— Lost orders. Special cases: 1. Value less than0and is not-2— the value is not calculated 2. Value is-2— zero valuelostOrdersSumnumber<float64>— Lost order value. Special cases: 1. Value less than0and is not-2— the value is not calculated 2. Value is-2— zero valuelostBuyoutsCountnumber<float64>— Lost sales. Special cases: 1. Value less than0and is not-2— the value is not calculated 2. Value is-2— zero valuelostBuyoutsSumnumber<float64>— Lost sales value. Special cases: 1. Value less than0and is not-2— the value is not calculated 2. Value is-2— zero valuecurrentPriceobject— Current priceminPriceinteger<int64>— Minimal seller price with seller discount (excluding WB Club discount)maxPriceinteger<int64>— Maximal seller price with seller discount (excluding WB Club discount)
availabilitystring=deficient|actual|balanced|nonActual|nonLiquid|invalidData— Item availability: -deficient— Low stock -actual— Selling well -balanced— Selling steadily -nonActual— Selling poorly -nonLiquid— Struggling -invalidData— Struggling
currencyCurrency
Structure 400:
titlestring— Error titledetailstring— Error detailsrequestIdstring— Unique request IDoriginstring— Internal WB service ID
Structure 401:
titlestring— Error titledetailstring— Error detailscodestring— Internal error coderequestIdstring— Unique request IDoriginstring— WB internal service IDstatusnumber— HTTP status codestatusTextstring— Text of the HTTP status codetimestampstring— Request date and time
Structure 402:
titlestring— Error titledetailstring— Error details. The error is only returned to services from the Solutions for business Catalog
Structure 403:
titlestring— Error titledetailstring— Error detailsrequestIdstring— Unique request IDoriginstring— Internal WB service ID
Structure 429:
titlestring— Error titledetailstring— Error detailscodestring— Internal error coderequestIdstring— Unique request IDoriginstring— WB internal service IDstatusnumber— HTTP status codestatusTextstring— Text of the HTTP status codetimestampstring— Request date and time
Call examples
Arguments are shown as parameter names — substitute your own values. Languages whose client does not expose this operation are omitted.
python
from wb_api_client.analytics import Configuration, ApiClient
from wb_api_client.analytics.api import AnalyticsApi
cfg = Configuration(access_token="<your WB JWT>")
api = AnalyticsApi(ApiClient(cfg))
result = api.post_v2_stocks_report_products_products(table_item_request=...)
print(result)ts
import {
Configuration,
AnalyticsApi,
} from "@valeryverkhoturov/wb-api-client/analytics";
const cfg = new Configuration({});
cfg.setAccessToken("<your WB JWT>");
const api = new AnalyticsApi(cfg);
const { data } = await api.postV2StocksReportProductsProducts(tableItemRequest);
console.log(data);go
import (
"context"
"fmt"
wbanalytics "github.com/ValeryVerkhoturov/wb-api-client-go/analytics"
)
cfg := wbanalytics.NewConfiguration()
cfg.SetAccessToken("<your WB JWT>")
client := wbanalytics.NewAPIClient(cfg)
result, _, err := client.AnalyticsAPI.PostV2StocksReportProductsProducts(context.Background()).TableItemRequest(tableItemRequest).Execute()
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", result)java
import io.github.valeryverkhoturov.wbapi.analytics.ApiClient;
import io.github.valeryverkhoturov.wbapi.analytics.SecretString;
import io.github.valeryverkhoturov.wbapi.analytics.api.AnalyticsApi;
ApiClient client = new ApiClient();
client.setAccessToken(new SecretString("<your WB JWT>"));
AnalyticsApi api = new AnalyticsApi(client);
System.out.println(api.postV2StocksReportProductsProducts(tableItemRequest));php
use ValeryVerkhoturov\WbApiClient\Analytics\Configuration;
use ValeryVerkhoturov\WbApiClient\Analytics\SecretString;
use ValeryVerkhoturov\WbApiClient\Analytics\Api\AnalyticsApi;
use GuzzleHttp\Client;
$config = (new Configuration())
->setAccessTokenSecret(new SecretString('<your WB JWT>'));
$api = new AnalyticsApi(new Client(), $config);
print_r($api->postV2StocksReportProductsProducts($table_item_request));bsl
#Использовать "wb-api-client"
Настройки = Новый Конфигурация();
Настройки.УстановитьТокен("<your WB JWT>");
Клиент = Новый AnalyticsApi(Настройки);
Сообщить(Клиент.PostV2StocksReportProductsProducts(Тело).Тело);csharp
using ValeryVerkhoturov.WbApiClient.Analytics.Api;
using ValeryVerkhoturov.WbApiClient.Analytics.Client;
var config = new Configuration();
config.AccessTokenSecret = new SecretString("<your WB JWT>");
var api = new AnalyticsApi(config);
Console.WriteLine(api.PostV2StocksReportProductsProducts(tableItemRequest));rust
use wb_api_client::analytics::apis::{configuration::Configuration, analytics_api};
#[tokio::main]
async fn main() {
let mut cfg = Configuration::new();
cfg.set_access_token("<your WB JWT>");
let result = analytics_api::post_v2_stocks_report_products_products(&cfg, table_item_request).await;
println!("{:#?}", result);
}