Структура и содержание отчетов могут изменяться без предварительного уведомления
Например, может добавиться новая колонка или поменяться название листа.
Отчет «Цены на рынке»
Метод доступен для всех моделей.
Если вы используете 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 Формат отчета или документа. | 
ReportFormatType
Формат отчета:
- FILE— файл с электронной таблицей (XLSX).
- CSV— ZIP-архив с CSV-файлами на каждый лист отчета.
- JSON— ZIP-архив с JSON-файлами на каждый лист отчета.
| Type | Description | 
| Default:  Enum:  | 
Body
application/json
{
    "businessId": 0,
    "campaignId": 0,
    "categoryIds": [
        0
    ],
    "creationDateFrom": "string",
    "creationDateTo": "string"
}
| Name | Description | 
| businessId | Type: integer<int64> Идентификатор кабинета. В большинстве случаев обязателен. Не указывается, если задан  | 
| campaignId | Type: integer<int64> Идентификатор кампании. Передавайте, только если в кабинете есть магазины с уникальными ценами и вы хотите получить отчет для них. В этом случае передавать  Его можно узнать с помощью запроса GET v2/campaigns или найти в кабинете продавца на Маркете — нажмите на иконку вашего аккаунта → Настройки и в меню слева выберите API и модули: 
 ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах. | 
| categoryIds | Type: integer<int32>[] Фильтр по категориям на Маркете. Min value (exclusive):  Min items:  Unique items | 
| creationDateFrom | Type: string<date> Фильтр по времени добавления первой информации о товаре — начало периода. Формат даты:  | 
| creationDateTo | Type: string<date> Фильтр по времени добавления первой информации о товаре — окончание периода. Формат даты:  | 
Responses
200 OK
В ответ приходит идентификатор, который позволяет узнавать статус генерации и скачать готовый отчет.
Body
application/json
{
    "status": "OK",
    "result": {
        "reportId": "string",
        "estimatedGenerationTime": 0
    }
}
| Name | Description | 
| status* | Type: ApiResponseStatusType Тип ответа. Возможные значения: 
 Enum:  | 
| result | Type: GenerateReportDTO Идентификатор, который понадобится для отслеживания статуса генерации и получения готового отчета или документа. | 
ApiResponseStatusType
Тип ответа. Возможные значения:
- OK— ошибок нет.
- ERROR— при обработке запроса произошла ошибка.
| Type | Description | 
| Enum:  | 
GenerateReportDTO
Идентификатор, который понадобится для отслеживания статуса генерации и получения готового отчета или документа.
| Name | Description | 
| estimatedGenerationTime* | Type: integer<int64> Ожидаемая продолжительность генерации в миллисекундах. | 
| reportId* | Type: string Идентификатор, который понадобится для отслеживания статуса генерации и получения готового отчета или документа. | 
400 Bad Request
Запрос содержит неправильные данные. Подробнее об ошибке
Body
application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}
| Name | Description | 
| errors | Type: ApiErrorDTO[] Список ошибок. Min items:  | 
| status | Type: ApiResponseStatusType Тип ответа. Возможные значения: 
 Enum:  | 
ApiErrorDTO
Общий формат ошибки.
| Name | Description | 
| code* | Type: string Код ошибки. | 
| message | Type: string Описание ошибки. | 
401 Unauthorized
В запросе не указаны данные для авторизации. Подробнее об ошибке
Body
application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}
| Name | Description | 
| errors | Type: ApiErrorDTO[] Список ошибок. Min items:  | 
| status | Type: ApiResponseStatusType Тип ответа. Возможные значения: 
 Enum:  | 
403 Forbidden
Данные для авторизации неверны или доступ к ресурсу запрещен. Подробнее об ошибке
Body
application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}
| Name | Description | 
| errors | Type: ApiErrorDTO[] Список ошибок. Min items:  | 
| status | Type: ApiResponseStatusType Тип ответа. Возможные значения: 
 Enum:  | 
420 Method Failure
Превышено ограничение на доступ к ресурсу. Подробнее об ошибке
Body
application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}
| Name | Description | 
| errors | Type: ApiErrorDTO[] Список ошибок. Min items:  | 
| status | Type: ApiResponseStatusType Тип ответа. Возможные значения: 
 Enum:  | 
500 Internal Server Error
Внутренняя ошибка Маркета. Подробнее об ошибке
Body
application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}
| Name | Description | 
| errors | Type: ApiErrorDTO[] Список ошибок. Min items:  | 
| status | Type: ApiResponseStatusType Тип ответа. Возможные значения: 
 Enum:  | 
No longer supported, please use an alternative and newer version.