Структура и содержание отчетов могут изменяться без предварительного уведомления

Например, может добавиться новая колонка или поменяться название листа.

Отчет по остаткам на складах

Метод доступен для моделей: FBY, FBS, Экспресс и DBS.

Если вы используете API-Key-токен, для вызова метода необходим один из доступов в списке

Запускает генерацию отчета по остаткам на складах. Что это за отчет

Какая информация вернется:

  • Для модели FBY, если указать campaignId, — об остатках на складах Маркета.
  • Для остальных моделей, если указать campaignId, — об остатках на соответствующем складе магазина.
  • Для остальных моделей, если указать businessId, — об остатках на всех складах магазинов в кабинете, кроме FBY. Используйте фильтр campaignIds, чтобы указать определенные магазины.

⚠️ Не передавайте одновременно campaignId и businessId.

Узнать статус генерации и получить ссылку на готовый отчет можно с помощью запроса GET v2/reports/info/{reportId}.

Пояснение к колонкам отчета:

Лист Остатки на складе (файл stocks_on_warehouses)

Название колонки в CSV

Название колонки в JSON

Название колонки в XLSX

Тип значения

SHOP_SKU

shopSku

SSKU

string

ARTICLE

article

Ваш SKU

string

MARKET_SKU

marketSku

SKU на Яндексе

integer

PRODUCT_NAME

productName

Название товара

string

VALID

valid

Годный

integer

RESERVED

reserved

Резерв

integer

AVAILABLE_FOR_ORDER

availableForOrder

Доступно для заказа

integer

QUARANTINE

quarantine

Карантин

integer

UTILIZATION

utilization

Передан на утилизацию

integer

DEFECT

defect

Брак

integer

EXPIRED

expired

Просрочен

integer

LENGTH

length

Длина, см

integer

WIDTH

width

Ширина, см

integer

HEIGHT

height

Высота, см

integer

WEIGHT

weight

Вес, кг

number

WAREHOUSE

warehouse

Склад

string

SELLING_STATUS

sellingStatus

Статус продаж

string

RECOMMENDATIONS

recommendations

Рекомендации

string

TURNOVER

turnover

Оборачиваемость за \d{2}.\d{2}.\d{2}-\d{2}.\d{2}.\d

string

Пояснение к колонкам отчета:

Лист Список товаров (файл mass_shared_stocks)

Название колонки в CSV

Название колонки в JSON

Название колонки в XLSX

Тип значения

ERRORS

errors

Критичные ошибки

string

WARNINGS

warnings

Некритичные ошибки

string

SHOP_SKU

shopSku

Ваш SKU *

string

PRODUCT_NAME

productName

Название товара

string

COUNT

count

Доступное количество товара *

integer

Пояснение к колонкам отчета:

Лист Остатки на складах (файл stocks_business)

Название колонки в CSV

Название колонки в JSON

Название колонки в XLSX

Тип значения

ERRORS

errors

Критичные ошибки

string

SHOP_SKU

shopSku

Ваш SKU *

string

PRODUCT_NAME

productName

Название товара

string

PLACEMENT_TYPE

placementType

Модель работы

string

WAREHOUSE_AND_SHOP

warehouseAndShop

Склад *

string

COUNT

count

Доступно для заказа *

integer

RESERVE

reserve

Резерв

integer

PRICE

price

Цена

string

STATUS

status

Статус

string

COMMENT

comment

Примечание

string

⚙️ Лимит: 100 запросов в час

Request

POST

https://api.partner.market.yandex.ru/v2/reports/stocks-on-warehouses/generate

Query parameters

Name

Description

format

Type: ReportFormatType

Формат отчета или документа.

Формат отчета:

  • FILE — файл с электронной таблицей (XLSX).
  • CSV — ZIP-архив с CSV-файлами на каждый лист отчета.
  • JSON — ZIP-архив с JSON-файлами на каждый лист отчета.

Default: FILE

Enum: FILE, CSV, JSON

ReportFormatType

Формат отчета:

  • FILE — файл с электронной таблицей (XLSX).
  • CSV — ZIP-архив с CSV-файлами на каждый лист отчета.
  • JSON — ZIP-архив с JSON-файлами на каждый лист отчета.

Type: string

Default: FILE

Enum: FILE, CSV, JSON

Body

application/json
{
  "campaignId": 1,
  "businessId": 1,
  "warehouseIds": [
    0
  ],
  "reportDate": "2025-01-01",
  "categoryIds": [
    0
  ],
  "hasStocks": true,
  "campaignIds": [
    null
  ]
}

Name

Description

businessId

Type: BusinessId

Только для моделей DBS, FBS и Экспресс

Идентификатор кабинета, по магазинам которого нужно сформировать отчет (кроме FBY-магазинов).

Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом GET v2/campaigns.

ℹ️ Что такое кабинет и магазин на Маркете

Min value: 1

Example: 1

campaignId

Type: CampaignId

Для моделей DBS, FBS и Экспресс параметр скоро станет недоступен

Для получения информации об остатках на складе магазина передайте businessId и идентификатор нужного магазина в campaignIds.

Идентификатор кампании (магазина) — технический идентификатор, который представляет ваш магазин в системе Яндекс Маркета при работе через API. Он однозначно связывается с вашим магазином, но предназначен только для автоматизированного взаимодействия.

Его можно узнать с помощью запроса GET v2/campaigns или найти в кабинете продавца на Маркете. Нажмите на иконку вашего аккаунта → Настройки и в меню слева выберите API и модули:

  • блок Идентификатор кампании;
  • вкладка Лог запросов → выпадающий список в блоке Показывать логи.

⚠️ Не путайте его с:

  • идентификатором магазина, который отображается в личном кабинете продавца;
  • рекламными кампаниями.

Min value: 1

Example: 1

campaignIds

Type: CampaignId[] | null

Фильтр по магазинам для отчета по кабинету (кроме модели FBY).

Передавайте вместе с businessId.

Min items: 1

Unique items: true

Example
[
  1
]

categoryIds

Type: integer[] | null

Фильтр по категориям на Маркете (кроме модели FBY).

Min items: 1

Unique items: true

Example
[
  0
]

hasStocks

Type: boolean

Фильтр по наличию остатков (кроме модели FBY).

reportDate

Type: string<date>

Фильтр по дате (для модели FBY). В отчет попадут данные за предшествующий дате день.

Формат даты: ГГГГ-ММ-ДД.

Example: 2025-01-01

warehouseIds

Type: integer[] | null

Фильтр по идентификаторам складов (только модель FBY). Чтобы узнать идентификатор, воспользуйтесь запросом GET v2/warehouses.

Min items: 1

Unique items: true

Example
[
  0
]

CampaignId

Идентификатор кампании (магазина) — технический идентификатор, который представляет ваш магазин в системе Яндекс Маркета при работе через API. Он однозначно связывается с вашим магазином, но предназначен только для автоматизированного взаимодействия.

Его можно узнать с помощью запроса GET v2/campaigns или найти в кабинете продавца на Маркете. Нажмите на иконку вашего аккаунта → Настройки и в меню слева выберите API и модули:

  • блок Идентификатор кампании;
  • вкладка Лог запросов → выпадающий список в блоке Показывать логи.

⚠️ Не путайте его с:

  • идентификатором магазина, который отображается в личном кабинете продавца;
  • рекламными кампаниями.

Type: integer

Min value: 1

BusinessId

Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом GET v2/campaigns.

ℹ️ Что такое кабинет и магазин на Маркете

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

Тип ответа. Возможные значения:

  • OK — ошибок нет.
  • ERROR — при обработке запроса произошла ошибка.

Enum: OK, ERROR

Example
{
  "status": "OK"
}

GenerateReportDTO

Идентификатор, который понадобится для отслеживания статуса генерации и получения готового отчета или документа.

Name

Description

estimatedGenerationTime

Type: integer

Ожидаемая продолжительность генерации в миллисекундах.

reportId

Type: string

Идентификатор, который понадобится для отслеживания статуса генерации и получения готового отчета или документа.

Example: 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: example

message

Type: string

Описание ошибки.

Example: 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: 1

    Example
    [
      {
        "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"
        }
      ]
    }
    

404 Not Found

Запрашиваемый ресурс не найден. Подробнее об ошибке

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.

Предыдущая
Следующая