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

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

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

Возвращает данные об остатках товаров на складе кабинета.

Метод подходит, только если в кабинете нет групп складов

Если в кабинете есть группы складов, используйте метод POST v2/campaigns/{campaignId}/offers/stocks. Что такое группы складов и зачем они нужны.

⚙️ Лимит: 500 запросов в минуту

Request

POST

https://api.partner.market.yandex.ru/v3/businesses/{businessId}/offers/stocks

Path parameters

Name

Description

businessId

Type: integer

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

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

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

Min value: 1

Query parameters

Name

Description

limit

Type: integer

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

Default: 100

Min value: 1

Max value: 200

pageToken

Type: string

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

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

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

Example: ``

Body

application/json
{
  "partnerWarehouseId": 1,
  "archived": true,
  "offerIds": [
    "example"
  ]
}

Name

Description

partnerWarehouseId

Type: integer

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

Чтобы узнать идентификатор склада, воспользуйтесь запросом POST v3/businesses/{businessId}/warehouses.

Min value: 1

archived

Type: boolean

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

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

offerIds

Type: ShopSku[] | null

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

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

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

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

  • pageToken
  • limit
  • archived

Min items: 1

Max items: 500

Unique items: true

Example
[
  "example"
]

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": {
    "partnerWarehouseId": 1,
    "offers": [
      {
        "offerId": "example",
        "stocks": [
          null
        ],
        "updatedAt": "2025-01-01T00:00:00Z"
      }
    ],
    "paging": {
      "nextPageToken": "example"
    }
  }
}

Type: object

All of 2 types
  • Type: ApiResponse

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

    Example
    {
      "status": "OK"
    }
    
  • Type: object

    result

    Type: GetStocksOnPartnerWarehousesDTO

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

    Example
    {
      "partnerWarehouseId": 1,
      "offers": [
        {
          "offerId": "example",
          "stocks": [
            {
              "type": "FIT",
              "count": 0
            }
          ],
          "updatedAt": "2025-01-01T00:00:00Z"
        }
      ],
      "paging": {
        "nextPageToken": "example"
      }
    }
    
    Example
    {
      "result": {
        "partnerWarehouseId": 1,
        "offers": [
          {
            "offerId": "example",
            "stocks": [
              {}
            ],
            "updatedAt": "2025-01-01T00:00:00Z"
          }
        ],
        "paging": {
          "nextPageToken": "example"
        }
      }
    }
    

ApiResponseStatusType

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

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

Type: string

Enum: OK, ERROR

ApiResponse

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

Name

Description

status

Type: ApiResponseStatusType

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

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

Enum: OK, ERROR

Example
{
  "status": "OK"
}

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
}

PartnerWarehouseOfferDTO

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

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

updatedAt

Type: string<date-time>

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

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

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

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

PackagingForwardScrollingPagerDTO

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

Name

Description

nextPageToken

Type: string

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

Example: example

Example
{
  "nextPageToken": "example"
}

GetStocksOnPartnerWarehousesDTO

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

Name

Description

offers

Type: PartnerWarehouseOfferDTO[]

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

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

partnerWarehouseId

Type: integer

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

Min value: 1

paging

Type: PackagingForwardScrollingPagerDTO

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

Example
{
  "nextPageToken": "example"
}
Example
{
  "partnerWarehouseId": 1,
  "offers": [
    {
      "offerId": "example",
      "stocks": [
        {
          "type": "FIT",
          "count": 0
        }
      ],
      "updatedAt": "2025-01-01T00:00:00Z"
    }
  ],
  "paging": {
    "nextPageToken": "example"
  }
}

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