Структура и содержание отчетов могут изменяться без предварительного уведомления
Например, может добавиться новая колонка или поменяться название листа.
Отчет «Цены на рынке»
Deprecated
Метод доступен для всех моделей.
Если вы используете API-Key-токен, для вызова метода необходим один из доступов в списке
- pricing — Управление ценами
- promotion — Продвижение товаров
- finance-and-accounting — Просмотр финансовой информации и отчётности
- all-methods — Полное управление кабинетом
Какой метод использовать вместо устаревшего
Запускает генерацию отчета «Цены на рынке».
В отчете возвращается информация только по 50 000 товаров. Если у вас их больше, используйте фильтры.
Данные в этом отчете постоянно обновляются
Поэтому информация в нем и в кабинете продавца на Маркете на странице Цены может отличаться.
Узнать статус генерации и получить ссылку на готовый отчет можно с помощью запроса GET v2/reports/info/{reportId}.
Пояснение к колонкам отчета:
Лист Отчет "Цены на рынке" (файл business_prices_v2_report)
|
Название колонки в CSV |
Название колонки в JSON |
Название колонки в XLSX |
Тип значения |
|
SHOP_SKU |
shopSku |
SKU |
string |
|
OFFER |
offer |
Товар на Маркете |
string |
|
CATEGORY |
category |
Категория |
string |
|
MERCH_PRICE_WITH_PROMOS |
merchPriceWithPromos |
Ваша цена (Со скидками за ваш счёт, ₽) |
integer |
|
MERCH_PRICE_WITH_PROMOS |
merchPriceWithPromos |
Со скидками за ваш счёт, ₽ |
integer |
|
MERCH_PRICE |
merchPrice |
Ваша цена, ₽ |
integer |
|
PRICE_GREEN_THRESHOLD |
priceGreenThreshold |
Порог для привлекательной цены, ₽ |
integer |
|
HOW_MUCH_TO_REDUCE |
howMuchToReduce |
На сколько снизить (до привлекательной цены, ₽) |
integer |
|
PRICE_RED_THRESHOLD |
priceRedThreshold |
Порог для умеренно привлекательной цены, ₽ |
integer |
|
ON_DISPLAY |
onDisplay |
На витрине, ₽ |
integer |
|
SHOWS_FOR_30_DAYS |
showsFor30Days |
Показы товара за 30 дней |
integer |
|
SALES_COUNT_FOR_30_DAYS |
salesCountFor30Days |
Продажи за 30 дней, шт. |
integer |
|
SALES_FOR_30_DAYS |
salesFor30Days |
Продажи за 30 дней, ₽ |
integer |
|
MINIMUM_PRICE_ON_MARKETPLACES |
minimumPriceOnMarketplaces |
Минимальная на рынке, ₽ |
integer |
|
MARKETPLACE_WITH_BEST_PRICE_WITHOUT_MARKET |
marketplaceWithBestPriceWithoutMarket |
Площадка с лучшей ценой (без учёта Маркета) |
string |
|
PRICE_VALUE_OUTSIDE_MARKET |
priceValueOutsideMarket |
Цена на этой площадке, ₽ |
integer |
|
PRICE_VALUE_ON_MARKET |
priceValueOnMarket |
Цена в этом магазине, ₽ |
integer |
|
SHOP_WITH_BEST_PRICE_ON_MARKET |
shopWithBestPriceOnMarket |
Магазин с лучшей ценой на Маркете |
string |
|
COMPARISON_OF_YOUR_PRICES_ON_MARKETPLACES |
comparisonOfYourPricesOnMarketplaces |
Сравнение ваших цен на площадках |
string |
|
PRICE |
price |
Цена, ₽ |
integer |
| ⚙️ Лимит: 100 запросов в час |
|---|
Request
POST
https://api.partner.market.yandex.ru/v2/reports/prices/generate
Query parameters
|
Name |
Description |
|
format |
Type: ReportFormatType Формат отчета или документа. Формат отчета:
Default: Enum: |
ReportFormatType
Формат отчета:
FILE— файл с электронной таблицей (XLSX).CSV— ZIP-архив с CSV-файлами на каждый лист отчета.JSON— ZIP-архив с JSON-файлами на каждый лист отчета.
Type: string
Default: FILE
Enum: FILE, CSV, JSON
Body
application/json
{
"businessId": 1,
"campaignId": 1,
"categoryIds": [
0
],
"creationDateFrom": "2025-01-01",
"creationDateTo": "2025-01-01"
}
|
Name |
Description |
|
businessId |
Type: BusinessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом GET v2/campaigns. ℹ️ Что такое кабинет и магазин на Маркете Min value: Example: |
|
campaignId |
Type: CampaignId Идентификатор кампании (магазина) — технический идентификатор, который представляет ваш магазин в системе Яндекс Маркета при работе через API. Он однозначно связывается с вашим магазином, но предназначен только для автоматизированного взаимодействия. Его можно узнать с помощью запроса GET v2/campaigns или найти в кабинете продавца на Маркете. Нажмите на иконку вашего аккаунта → Настройки и в меню слева выберите API и модули:
⚠️ Не путайте его с:
Min value: Example: |
|
categoryIds |
Type: integer[] | null Фильтр по категориям на Маркете. Min items: Unique items: Example
|
|
creationDateFrom |
Type: string<date> Фильтр по времени добавления первой информации о товаре — начало периода. Формат даты: Example: |
|
creationDateTo |
Type: string<date> Фильтр по времени добавления первой информации о товаре — окончание периода. Формат даты: Example: |
BusinessId
Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом GET v2/campaigns.
ℹ️ Что такое кабинет и магазин на Маркете
Type: integer
Min value: 1
CampaignId
Идентификатор кампании (магазина) — технический идентификатор, который представляет ваш магазин в системе Яндекс Маркета при работе через API. Он однозначно связывается с вашим магазином, но предназначен только для автоматизированного взаимодействия.
Его можно узнать с помощью запроса GET v2/campaigns или найти в кабинете продавца на Маркете. Нажмите на иконку вашего аккаунта → Настройки и в меню слева выберите API и модули:
- блок Идентификатор кампании;
- вкладка Лог запросов → выпадающий список в блоке Показывать логи.
⚠️ Не путайте его с:
- идентификатором магазина, который отображается в личном кабинете продавца;
- рекламными кампаниями.
Type: integer
Min value: 1
Responses
200 OK
В ответ приходит идентификатор, который позволяет узнавать статус генерации и скачать готовый отчет.
Body
application/json
{
"status": "OK",
"result": {
"reportId": "example",
"estimatedGenerationTime": 0
}
}
Type: object
All of 2 types
-
Type: ApiResponse
Стандартная обертка для ответов сервера.
Example
{ "status": "OK" } -
Type: object
result
Type: GenerateReportDTO
Идентификатор, который понадобится для отслеживания статуса генерации и получения готового отчета или документа.
Example
{ "reportId": "example", "estimatedGenerationTime": 0 }Example
{ "result": { "reportId": "example", "estimatedGenerationTime": 0 } }
ApiResponseStatusType
Тип ответа. Возможные значения:
OK— ошибок нет.ERROR— при обработке запроса произошла ошибка.
Type: string
Enum: OK, ERROR
ApiResponse
Стандартная обертка для ответов сервера.
|
Name |
Description |
|
status |
Type: ApiResponseStatusType Тип ответа. Возможные значения:
Enum: |
Example
{
"status": "OK"
}
GenerateReportDTO
Идентификатор, который понадобится для отслеживания статуса генерации и получения готового отчета или документа.
|
Name |
Description |
|
estimatedGenerationTime |
Type: integer Ожидаемая продолжительность генерации в миллисекундах. |
|
reportId |
Type: string Идентификатор, который понадобится для отслеживания статуса генерации и получения готового отчета или документа. Example: |
Example
{
"reportId": "example",
"estimatedGenerationTime": 0
}
400 Bad Request
Запрос содержит неправильные данные. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
ApiErrorDTO
Общий формат ошибки.
|
Name |
Description |
|
code |
Type: string Код ошибки. Example: |
|
message |
Type: string Описание ошибки. Example: |
Example
{
"code": "example",
"message": "example"
}
ApiErrorResponse
Стандартная обертка для ошибок сервера.
Type: object
All of 2 types
-
Type: ApiResponse
Стандартная обертка для ответов сервера.
Example
{ "status": "OK" } -
Type: object
errors
Type: ApiErrorDTO[] | null
Список ошибок.
Min items:
1Example
[ { "code": "example", "message": "example" } ]Example
{ "errors": [ { "code": "example", "message": "example" } ] }
Example
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
401 Unauthorized
В запросе не указаны данные для авторизации. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
403 Forbidden
Данные для авторизации неверны или доступ к ресурсу запрещен. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
420 Method Failure
Превышено ограничение на доступ к ресурсу. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
500 Internal Server Error
Внутренняя ошибка Маркета. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
No longer supported, please use an alternative and newer version.