В API Яндекс Маркета устаревший GET списка цен планируется отключить 5 апреля 2027 года, а с 18 января его работа может быть нестабильной. Замена — POST по тому же пути, но переход требует проверки структуры данных и области цен.

Документация проверена 16 октября 2026 года. Это дата редакционной проверки, а не объявления миграции. Материал посвящён чтению цен, а не изменению стоимости товаров.

Почему одной замены GET на POST недостаточно

Оба метода используют путь v2/campaigns/{campaignId}/offer-prices. Однако старый ответ обозначает идентификатор товара полем id, новый — offerId. В новом запросе список конкретных SKU передаётся в теле offerIds. Если такой список задан, документация запрещает одновременно заполнять pageToken и limit.

Редакционная рекомендация — найти не только вызов API, но и код, который сохраняет ответ. Если обработчик продолжит искать id, успешный ответ может превратиться в строки без связи с товаром. Исправление HTTP-метода и изменение модели данных нужно принимать вместе.

Сначала определите, какие цены нужны

Метод POST для campaignId предназначен для уникальных цен отдельных магазинов. Для общих цен всех магазинов документация направляет к POST v2/businesses/{businessId}/offer-mappings. Поэтому отсутствие ожидаемой записи нельзя сразу трактовать как потерю цены: сначала проверяют выбранную область.

В рабочем задании перечислите магазины, где используются индивидуальные цены, и товары с общими ценами. Для контрольного сравнения нужны оба сценария. Иначе тест на одном магазине может скрыть ошибку, которая проявится только в другой части кабинета.

Как провести проверку без изменения цен

Сохраните результат прежнего чтения для небольшой выборки и сравните с новым методом. Сопоставляйте по SKU и смыслу полей, а не по порядку строк. Полезно включить товар со скидкой, позицию с недавно изменённой ценой и SKU, которого нет в выбранном магазине. Ожидаемый результат последнего сценария следует выяснить по фактическому ответу, а не подставлять нулевую цену.

Отдельно проверьте полноту выгрузки и переход по страницам, если используете списочный режим. Ограничение размера пакетов цен остаётся самостоятельным условием и не отменяется сменой метода.

Когда миграцию можно принять

Критерий готовности — контрольные цены правильно связаны с товарами и магазинами, а зависимые отчёты показывают ожидаемые значения. Сам HTTP 200 этого не подтверждает. Зафиксируйте новую схему, результат сравнения и место настройки метода, чтобы следующий запуск не вернулся к старой реализации.

Планировать переход разумно до периода нестабильности, сохранив время на исправление обнаруженных расхождений. После него контролируйте ошибки и полноту данных. Если проблема связана с идентификаторами области, поможет разбор businessId и campaignId; они обозначают разные уровни кабинета.