Структура и содержание отчетов могут изменяться без предварительного уведомления
Например, может добавиться новая колонка или поменяться название листа.
Отчет по географии продаж
Метод доступен для всех моделей.
Если вы используете API-Key-токен, для вызова метода необходим один из доступов в списке
- finance-and-accounting — Просмотр финансовой информации и отчётности
- all-methods — Полное управление кабинетом
Запускает генерацию отчета по географии продаж. Что это за отчет
Узнать статус генерации и получить ссылку на готовый отчет можно с помощью запроса GET v2/reports/info/{reportId}.
Пояснение к колонкам отчета:
Лист География продаж (файл sales_geography)
|
Название колонки в CSV |
Название колонки в JSON |
Название колонки в XLSX |
Тип значения |
|
OFFER_ID |
offerId |
Информация о товарах/Ваш SKU |
string |
|
OFFER_NAME |
offerName |
Информация о товарах/Название товара |
string |
|
CATEGORY |
category |
Информация о товарах/Категория |
string |
|
EXPENSES_ON_DELIVERY_IN_RUSSIA |
expensesOnDeliveryInRussia |
Доля локальных продаж и ваши расходы/Расходы на доставку по России |
number |
|
LOCAL_SALES |
localSales |
Доля локальных продаж и ваши расходы/Локальных продаж |
integer |
|
DELIVERED_ITEMS |
deliveredItems |
Доля локальных продаж и ваши расходы/Товаров доставлено |
integer |
|
CLUSTER_MOSCOW |
clusterMoscow |
Сколько товаров доставлено в конкретные кластеры/Москва |
integer |
|
CLUSTER_ROSTOV_ON_DON |
clusterRostovOnDon |
Сколько товаров доставлено в конкретные кластеры/Ростов-на-Дону |
integer |
|
CLUSTER_EKATERINBURG |
clusterEkaterinburg |
Сколько товаров доставлено в конкретные кластеры/Екатеринбург |
integer |
|
CLUSTER_SAINT_PETERSBURG |
clusterSaintPetersburg |
Сколько товаров доставлено в конкретные кластеры/Санкт-Петербург |
integer |
|
CLUSTER_SAMARA |
clusterSamara |
Сколько товаров доставлено в конкретные кластеры/Самара |
integer |
| ⚙️ Лимит: 100 запросов в час |
|---|
Request
POST
https://api.partner.market.yandex.ru/v2/reports/sales-geography/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,
"dateFrom": "2025-08-22",
"dateTo": "2025-09-22",
"categoryIds": [
0
],
"offerIds": [
"example"
]
}
|
Name |
Description |
|
businessId |
Type: BusinessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом GET v2/campaigns. ℹ️ Что такое кабинет и магазин на Маркете Min value: Example: |
|
dateFrom |
Type: PeriodDateFrom Начало периода, включительно. Формат даты: Example: |
|
dateTo |
Type: PeriodDateTo Конец периода, включительно. Формат даты: Example: |
|
categoryIds |
Type: integer[] | null Идентификаторы категорий. Min items: Max items: Unique items: Example
|
|
offerIds |
Type: ShopSku[] | null Идентификаторы товаров. Min items: Max items: Unique items: Example
|
BusinessId
Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом GET v2/campaigns.
ℹ️ Что такое кабинет и магазин на Маркете
Type: integer
Min value: 1
PeriodDateFrom
Начало периода, включительно.
Формат даты: ГГГГ-ММ-ДД.
Type: string<date>
Example: 2025-08-22
PeriodDateTo
Конец периода, включительно.
Формат даты: ГГГГ-ММ-ДД.
Type: string<date>
Example: 2025-09-22
ShopSku
Ваш SKU — идентификатор товара в вашей системе.
Правила использования SKU:
-
У каждого товара SKU должен быть свой.
-
Уже заданный SKU нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге.
SKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов.
Важно
Пробельные символы в начале и конце значения автоматически удаляются. Например, " SKU123 " и "SKU123" будут обработаны как одинаковые значения.
Что такое SKU и как его назначать
Type: string
Min length: 1
Max length: 255
Pattern: ^(?=.*\S.*)[^\x00-\x08\x0A-\x1f\x7f]{1,255}$
Example: example
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.