Skip to content

Создать отчёт ​

http
POST /api/v2/nm-report/downloads

База: https://seller-analytics-api.wildberries.ru · Модуль: analytics · Раздел: Аналитика продавца CSV · Документация спецификации ↗

Метод создаёт задание на генерацию отчёта с расширенной аналитикой продавца.

Вы можете создать CSV-версии отчётов по воронке продаж или параметрам поиска с группировкой по: * артикулам WB * предметам, брендам и ярлыкам В отчётах по воронке продаж можно группировать данные по дням, неделям или месяцам.

Также можете создать CSV-версии отчётов по текстам поисковых запросов и остаткам.

Каждый новый отчёт должен иметь уникальный ID.

Не используйте одинаковые ID для разных отчётов — это может привести к ошибкам при генерации

Набор параметров запроса в объекте params зависит от типа отчёта. Чтобы получить описание параметров, выберите тип отчёта в раскрывающемся списке в описании параметра reportType.

Параметры includeSubstitutedSKUs и includeSearchTexts не могут одновременно иметь значение false.

Если не удалось получить отчёт, можно создать повторное задание на генерацию. Также можно получить список и проверить статусы отчётов.

Данные отчётов обновляются 1 раз в 2 часа.

Отчёты по остаткам — типы STOCK_HISTORY_REPORT_CSV и STOCK_HISTORY_DAILY_CSV — можно создать без подписки Джем

Лимит запросов на один профиль продавца:

ТипПериодЛимитИнтервалВсплеск
Персональный1 мин3 запроса20 сек3 запроса
Сервисный1 мин3 запроса20 сек3 запроса
Базовый с секретом1 мин3 запроса20 сек3 запроса
Базовый1 ч1 запрос1 ч1 запрос

Тело запроса ​

application/json — схема object, необязательно

  • один из вариантов: SalesFunnelItemReq, SalesFunnelGroupReq, SearchReportGroupReq, SearchReportItemReq, SearchReportTextReq, InventoryMetricsReportReq, InventoryHistoryReportReq

Ответы ​

КодОписаниеСхема
200УспешноNmReportCreateReportResponse
400Неправильный запросPostV2NmReportDownloadsResponse400
401Не авторизованobject
402Требуется платёжobject
403Доступ запрещёнErrorObject
429Слишком много запросовobject

Структура 200:

  • data string — Уведомление, что началась генерация отчёта

Структура 400:

  • title string — Заголовок ошибки
  • detail string — Детали ошибки
  • requestId string — Уникальный ID запроса
  • origin string — ID внутреннего сервиса WB

Структура 401:

  • title string — Заголовок ошибки
  • detail string — Детали ошибки
  • code string — Внутренний код ошибки
  • requestId string — Уникальный ID запроса
  • origin string — ID внутреннего сервиса WB
  • status number — HTTP статус-код
  • statusText string — Расшифровка HTTP статус-кода
  • timestamp string — Дата и время запроса

Структура 402:

Структура 403:

  • title string — Заголовок ошибки
  • detail string — Детали ошибки
  • requestId string — Уникальный ID запроса
  • origin string — ID внутреннего сервиса WB

Структура 429:

  • один из вариантов: response429Download, response429DownloadDaily

Примеры вызова ​

Аргументы показаны именами параметров — подставьте свои значения. Языки, в клиенте которых этой операции нет, не показаны.

python
from wb_api_client.analytics import Configuration, ApiClient
from wb_api_client.analytics.api import AnalyticsApi

cfg = Configuration(access_token="<ваш JWT WB>")
api = AnalyticsApi(ApiClient(cfg))

result = api.post_v2_nm_report_downloads(post_v2_nm_report_downloads_request=...)
print(result)
ts
import {
  Configuration,
  AnalyticsApi,
} from "@valeryverkhoturov/wb-api-client/analytics";

const cfg = new Configuration({});
cfg.setAccessToken("<ваш JWT WB>");
const api = new AnalyticsApi(cfg);

const { data } = await api.postV2NmReportDownloads(postV2NmReportDownloadsRequest);
console.log(data);
go
import (
	"context"
	"fmt"

	wbanalytics "github.com/ValeryVerkhoturov/wb-api-client-go/analytics"
)

cfg := wbanalytics.NewConfiguration()
cfg.SetAccessToken("<ваш JWT WB>")
client := wbanalytics.NewAPIClient(cfg)

result, _, err := client.AnalyticsAPI.PostV2NmReportDownloads(context.Background()).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("<ваш JWT WB>"));
AnalyticsApi api = new AnalyticsApi(client);

System.out.println(api.postV2NmReportDownloads(postV2NmReportDownloadsRequest));
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('<ваш JWT WB>'));
$api = new AnalyticsApi(new Client(), $config);

print_r($api->postV2NmReportDownloads());
bsl
#Использовать "wb-api-client"

Настройки = Новый Конфигурация();
Настройки.УстановитьТокен("<ваш JWT WB>");
Клиент = Новый AnalyticsApi(Настройки);

Сообщить(Клиент.PostV2NmReportDownloads(Тело).Тело);
csharp
using ValeryVerkhoturov.WbApiClient.Analytics.Api;
using ValeryVerkhoturov.WbApiClient.Analytics.Client;

var config = new Configuration();
config.AccessTokenSecret = new SecretString("<ваш JWT WB>");
var api = new AnalyticsApi(config);

Console.WriteLine(api.PostV2NmReportDownloads());
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("<ваш JWT WB>");

    let result = analytics_api::post_v2_nm_report_downloads(&cfg, post_v2_nm_report_downloads_request).await;
    println!("{:#?}", result);
}

Распространяется под лицензией Apache 2.0.