Информация об остатках и оборачиваемости

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

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

Возвращает данные об остатках товаров (для всех моделей) и об оборачиваемости товаров (для модели FBY).

По умолчанию данные по оборачивамости не возращаются

Чтобы они были в ответе, передавайте true в поле withTurnover.

Для модели FBY: информация об остатках может возвращаться с нескольких складов Маркета, у которых будут разные warehouseId. Получить список складов Маркета можно с помощью метода GET v2/warehouses.

Для модели FBS: в ответе может вернуться не только партнерский склад, но и склад возвратов Маркета. Это возможно, если возврат поступил в указанную продавцом точку возвратов и долго не был забран.

Ограничение для параметра limit

Не передавайте значение больше 200.

⚙️ Лимит: 100 000 товаров в минуту

Request

POST

https://api.partner.market.yandex.ru/v2/campaigns/{campaignId}/offers/stocks

Path parameters

Name

Description

campaignId

Type: integer

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

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

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

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

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

Min value: 1

Query parameters

Name

Description

limit

Type: integer

Количество значений на одной странице.

Min value: 1

page_token

Type: string

Идентификатор страницы c результатами.

Если параметр не указан, возвращается первая страница.

Рекомендуем передавать значение выходного параметра nextPageToken, полученное при последнем запросе.

Если задан page_token и в запросе есть параметры page и pageSize, они игнорируются.

Example: eyBuZXh0SWQ6IDIzNDIgfQ==

Body

application/json
{
  "stocksWarehouseId": 1,
  "hasStocks": true,
  "withTurnover": false,
  "archived": true,
  "offerIds": [
    "example"
  ]
}

Name

Description

archived

Type: boolean

Фильтр по нахождению в архиве.

Передайте true, чтобы получить информацию об остатках товаров, которые находятся в архиве. Если фильтр не заполнен или передано false, в ответе возвращается информация о товарах, которые не находятся в архиве.

hasStocks

Type: boolean

Только для модели FBY

Фильтр по наличию товаров. Используйте только вместе со stocksWarehouseId.

Передайте false, чтобы получить информацию о товарах, которых нет в наличие. При значении true возвращаются данные о товарах, которые есть на указанном складе.

offerIds

Type: ShopSku[] | null

Фильтр по вашим SKU товаров.

Возвращается информация об остатках всех переданных SKU, включая товары в архиве.

Такой список возвращается только целиком

Если вы запрашиваете информацию по конкретным SKU, не заполняйте:

  • page_token
  • limit
  • archived
  • stocksOnWarehouse

Min items: 1

Max items: 500

Unique items: true

Example
[
  "example"
]

stocksWarehouseId

Type: integer

Идентификатор склада.

Если параметр указан, возвращаются только товары на переданном складе.

Для модели FBY: получить список складов Маркета можно с помощью метода GET v2/warehouses.

Min value: 1

withTurnover

Type: boolean

Только для модели FBY

Возвращать ли информацию по оборачиваемости.

Значение по умолчанию: false. Если информация нужна, передайте значение true.

Default: false

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"
}

Type: object

ApiResponseStatusType

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

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

Type: string

Enum: OK, ERROR

ApiResponse

Стандартная обертка для ответов сервера.

Name

Description

status

Type: ApiResponseStatusType

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

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

Enum: OK, ERROR

Example
{
  "status": "OK"
}

ForwardScrollingPagerDTO

Идентификатор следующей страницы.

Name

Description

nextPageToken

Type: string

Идентификатор следующей страницы результатов.

Example: example

Example
{
  "nextPageToken": "example"
}

ScrollingPagerDTO

Информация о страницах результатов.

Type: object

All of 2 types
  • Type: ForwardScrollingPagerDTO

    Идентификатор следующей страницы.

    Example
    {
      "nextPageToken": "example"
    }
    
  • Type: object

    prevPageToken

    Type: string

    Идентификатор предыдущей страницы результатов.

    Example: example

    Example
    {
      "prevPageToken": "example"
    }
    
Example
{
  "nextPageToken": "example"
}

TurnoverType

Оценка оборачиваемости.

enum Диапазон оборачиваемости Комментарий
LOW turnoverDays ≥ 120
ALMOST_LOW 100 ≤ turnoverDays < 120
HIGH 45 ≤ turnoverDays < 100
VERY_HIGH 0 ≤ turnoverDays < 45
NO_SALES Продаж нет.
FREE_STORE Любое значение. Платить за хранение товаров этой категории не требуется.

Type: string

Enum: LOW, ALMOST_LOW, HIGH, VERY_HIGH, NO_SALES, FREE_STORE

TurnoverDTO

Информация об оборачиваемости товара.

Подробнее о хранении и оборачиваемости товаров читайте в Справке Маркета для продавцов.

Name

Description

turnover

Type: TurnoverType

Оценка оборачиваемости.

Оценка оборачиваемости.

|enum|Диапазон оборачиваемости|Комментарий| |-|-|-| |LOW|turnoverDays ≥ 120|| |ALMOST_LOW|100 ≤ turnoverDays < 120|| |HIGH|45 ≤ turnoverDays < 100|| |VERY_HIGH|0 ≤ turnoverDays < 45|| |NO_SALES|—|Продаж нет.| |FREE_STORE|Любое значение.|Платить за хранение товаров этой категории не требуется.|

Enum: LOW, ALMOST_LOW, HIGH, VERY_HIGH, NO_SALES, FREE_STORE

turnoverDays

Type: number

Значение в днях.

Example
{
  "turnover": "LOW",
  "turnoverDays": 0.5
}

WarehouseStockType

Тип остатков товаров на складе:

  • AVAILABLE (соответствует типу «Доступный к заказу» в отчете «Остатки на складе» в кабинете продавца на Маркете) — товар, доступный для продажи.

  • DEFECT (соответствует типу «Брак») — товар с браком.

  • EXPIRED (соответствует типу «Просрочен») — товар с истекшим сроком годности.

  • FIT (соответствует типу «Годный») — товар, который доступен для продажи или уже зарезервирован.

  • FREEZE — товар, который зарезервирован для заказов.

  • QUARANTINE (соответствует типу «Карантин») — товар, временно недоступный для продажи (например, товар перемещают из одного помещения склада в другое).

  • UTILIZATION — товар, который будет утилизирован.

Type: string

Enum: FIT, FREEZE, AVAILABLE, QUARANTINE, UTILIZATION, DEFECT, EXPIRED

WarehouseStockDTO

Информация об остатках товара.

Name

Description

count

Type: integer

Значение остатков.

type

Type: WarehouseStockType

Тип остатков.

Тип остатков товаров на складе:

  • AVAILABLE (соответствует типу «Доступный к заказу» в отчете «Остатки на складе» в кабинете продавца на Маркете) — товар, доступный для продажи.

  • DEFECT (соответствует типу «Брак») — товар с браком.

  • EXPIRED (соответствует типу «Просрочен») — товар с истекшим сроком годности.

  • FIT (соответствует типу «Годный») — товар, который доступен для продажи или уже зарезервирован.

  • FREEZE — товар, который зарезервирован для заказов.

  • QUARANTINE (соответствует типу «Карантин») — товар, временно недоступный для продажи (например, товар перемещают из одного помещения склада в другое).

  • UTILIZATION — товар, который будет утилизирован.

Enum: FIT, FREEZE, AVAILABLE, QUARANTINE, UTILIZATION, DEFECT, EXPIRED

Example
{
  "type": "FIT",
  "count": 0
}

WarehouseOfferDTO

Информация об остатках товара.

Name

Description

offerId

Type: ShopSku

Ваш SKU — идентификатор товара в вашей системе.

Правила использования SKU:

  • У каждого товара SKU должен быть свой.

  • Уже заданный SKU нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге.

SKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов.

Важно

Пробельные символы в начале и конце значения автоматически удаляются. Например, " SKU123 " и "SKU123" будут обработаны как одинаковые значения.

Что такое SKU и как его назначать

Min length: 1

Max length: 255

Pattern: ^(?=.*\S.*)[^\x00-\x08\x0A-\x1f\x7f]{1,255}$

Example: example

stocks

Type: WarehouseStockDTO[]

Информация об остатках.

Example
[
  {
    "type": "FIT",
    "count": 0
  }
]

turnoverSummary

Type: TurnoverDTO

Информация об оборачиваемости.

Информация об оборачиваемости товара.

Подробнее о хранении и оборачиваемости товаров читайте в Справке Маркета для продавцов.

Example
{
  "turnover": "LOW",
  "turnoverDays": 0.5
}

updatedAt

Type: string<date-time>

Дата и время последнего обновления информации об остатках.

Формат даты и времени: ISO 8601 со смещением относительно UTC. Например, 2023-11-21T00:42:42+03:00.

Example: 2025-01-01T00:00:00Z

Example
{
  "offerId": "example",
  "turnoverSummary": {
    "turnover": "LOW",
    "turnoverDays": 0.5
  },
  "stocks": [
    {
      "type": "FIT",
      "count": 0
    }
  ],
  "updatedAt": "2025-01-01T00:00:00Z"
}

WarehouseOffersDTO

Информация об остатках товаров на складе.

Name

Description

offers

Type: WarehouseOfferDTO[]

Информация об остатках.

Example
[
  {
    "offerId": "example",
    "turnoverSummary": {
      "turnover": "LOW",
      "turnoverDays": 0.5
    },
    "stocks": [
      {
        "type": "FIT",
        "count": 0
      }
    ],
    "updatedAt": "2025-01-01T00:00:00Z"
  }
]

warehouseId

Type: integer

Идентификатор склада.

Для модели FBY: возвращается идентификатор склада Маркета.

Для модели FBS: может возвращаться идентификатор как партнерского склада, так и склада возвратов Маркета.

Example
{
  "warehouseId": 0,
  "offers": [
    {
      "offerId": "example",
      "turnoverSummary": {
        "turnover": "LOW",
        "turnoverDays": 0.5
      },
      "stocks": [
        {
          "type": "FIT",
          "count": 0
        }
      ],
      "updatedAt": "2025-01-01T00:00:00Z"
    }
  ]
}

GetWarehouseStocksDTO

Список складов с информацией об остатках на каждом из них.

Name

Description

warehouses

Type: WarehouseOffersDTO[]

Страница списка складов.

Для модели FBY: может содержать несколько складов Маркета.

Для модели FBS: может содержать как партнерский склад, так и склад возвратов Маркета.

Example
[
  {
    "warehouseId": 0,
    "offers": [
      {
        "offerId": "example",
        "turnoverSummary": {
          "turnover": "LOW",
          "turnoverDays": 0.5
        },
        "stocks": [
          {}
        ],
        "updatedAt": "2025-01-01T00:00:00Z"
      }
    ]
  }
]

paging

Type: ScrollingPagerDTO

Информация о страницах результатов.

Example
{
  "nextPageToken": "example"
}
Example
{
  "paging": {
    "nextPageToken": "example"
  },
  "warehouses": [
    {
      "warehouseId": 0,
      "offers": [
        {
          "offerId": "example",
          "turnoverSummary": {},
          "stocks": [
            null
          ],
          "updatedAt": "2025-01-01T00:00:00Z"
        }
      ]
    }
  ]
}

400 Bad Request

Запрос содержит неправильные данные. Подробнее об ошибке

Body

application/json
{
  "status": "OK"
}

Type: object

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"
}

401 Unauthorized

В запросе не указаны данные для авторизации. Подробнее об ошибке

Body

application/json
{
  "status": "OK"
}

Type: object

403 Forbidden

Данные для авторизации неверны или доступ к ресурсу запрещен. Подробнее об ошибке

Body

application/json
{
  "status": "OK"
}

Type: object

420 Method Failure

Превышено ограничение на доступ к ресурсу. Подробнее об ошибке

Body

application/json
{
  "status": "OK"
}

Type: object

500 Internal Server Error

Внутренняя ошибка Маркета. Подробнее об ошибке

Body

application/json
{
  "status": "OK"
}

Type: object

pathParams:
  - description: "Идентификатор кампании (магазина) — технический идентификатор, который представляет ваш магазин в системе Яндекс Маркета при работе через API. Он однозначно связывается с вашим магазином, но предназначен только для автоматизированного взаимодействия.\n\nЕго можно узнать с помощью запроса [GET\_v2/campaigns](../../reference/campaigns/getCampaigns.md) или найти в кабинете продавца на Маркете. Нажмите на иконку вашего аккаунта → **Настройки** и в меню слева выберите **API и модули**:\n\n* блок **Идентификатор кампании**;\n* вкладка **Лог запросов** → выпадающий список в блоке **Показывать логи**.\n\n⚠️ Не путайте его с:\n- идентификатором магазина, который отображается в личном кабинете продавца;\n- рекламными кампаниями.\n"
    name: campaignId
    in: path
    required: true
    schema:
      type: integer
      format: int64
      minimum: 1
searchParams:
  - name: page_token
    description: >
      Идентификатор страницы c результатами.


      Если параметр не указан, возвращается первая страница.


      Рекомендуем передавать значение выходного параметра `nextPageToken`,
      полученное при последнем запросе.


      Если задан `page_token` и в запросе есть параметры `page` и `pageSize`,
      они игнорируются.
    in: query
    required: false
    example: eyBuZXh0SWQ6IDIzNDIgfQ==
    schema:
      type: string
  - name: limit
    description: |
      Количество значений на одной странице.
    in: query
    required: false
    example: 20
    schema:
      type: integer
      format: int32
      minimum: 1
headers: []
body: |-
  {
    "stocksWarehouseId": 1,
    "hasStocks": true,
    "withTurnover": false,
    "archived": true,
    "offerIds": [
      "example"
    ]
  }
schema:
  description: |
    Фильтры для запроса остатков.
  type: object
  properties:
    stocksWarehouseId:
      description: "Идентификатор склада.\n\nЕсли параметр указан, возвращаются только товары на переданном складе.\n\n**Для модели FBY:** получить список складов Маркета можно с помощью метода [GET\_v2/warehouses](../../reference/warehouses/getFulfillmentWarehouses.md).\n"
      type: integer
      format: int64
      minimum: 1
    hasStocks:
      description: >
        **Только для модели FBY**


        Фильтр по наличию товаров. Используйте только вместе со
        `stocksWarehouseId`.


        Передайте `false`, чтобы получить информацию о товарах, которых нет в
        наличие. При значении `true` возвращаются данные о товарах, которые есть
        на указанном складе.
      type: boolean
    withTurnover:
      description: >
        **Только для модели FBY**


        Возвращать ли информацию по оборачиваемости.


        Значение по умолчанию: `false`. Если информация нужна, передайте
        значение `true`.
      type: boolean
      default: false
    archived:
      description: >
        Фильтр по нахождению в архиве.


        Передайте `true`, чтобы получить информацию об остатках товаров, которые
        находятся в архиве. Если фильтр не заполнен или передано `false`, в
        ответе возвращается информация о товарах, которые не находятся в архиве.
      type: boolean
    offerIds:
      description: "Фильтр по вашим SKU товаров.\n\nВозвращается информация об остатках всех переданных SKU, включая товары в архиве.\n\n{% note warning \"Такой список возвращается только целиком\" %}\n\nЕсли вы запрашиваете информацию по конкретным SKU, не заполняйте:\n\n* `page_token`\n* `limit`\n* `archived`\n* `stocksOnWarehouse`\n\n{% endnote %}\n\n\_\n"
      type: array
      uniqueItems: true
      minItems: 1
      maxItems: 500
      nullable: true
      items:
        description: "Ваш SKU —\_идентификатор товара в вашей системе.\n\nПравила использования SKU:\n\n* У каждого товара SKU должен быть свой.\n\n* Уже заданный SKU нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге.\n\nSKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте [в Справке Маркета для продавцов](https://yandex.ru/support2/marketplace/ru/assortment/operations/edit-sku).\n\n{% note warning %}\n\nПробельные символы в начале и конце значения автоматически удаляются. Например, `\"  SKU123  \"` и `\"SKU123\"` будут обработаны как одинаковые значения.\n\n{% endnote %}\n\n[Что такое SKU и как его назначать](https://yandex.ru/support/marketplace/assortment/add/index.html#fields)\n"
        type: string
        pattern: ^(?=.*\S.*)[^\x00-\x08\x0A-\x1f\x7f]{1,255}$
        x-transform: trim
        minLength: 1
        maxLength: 255
bodyType: application/json
method: post
security:
  - type: apiKey
    name: Api-Key
    in: header
  - type: oauth2
    x-inline: true
    flows:
      implicit:
        authorizationUrl: https://oauth.yandex.ru/authorize
        scopes:
          market:partner-api: API Яндекс.Маркета / Поиска по товарам для партнеров
path: v2/campaigns/{campaignId}/offers/stocks
host: https://api.partner.market.yandex.ru

No longer supported, please use an alternative and newer version.

Среднее количество дней, за которое товар продается. Подробно об оборачиваемости рассказано в Справке Маркета для продавцов.