Яндекс Маркет Partner API: Остатки, Продажи, Цены, Акции
Исследование актуальных API endpoints Яндекс Маркет для интеграции с GWPTD Analytics. Дата исследования: 2026-02-10 API проверен: 200 OK (Api-Key токен, scope ALL_METHODS) Business: ООО "ГЛОБАЛ ВОТЧ ПАРЦ ТРЕЙДИНГ РУС" (ID: 1069358)
Содержание
- Общая информация
- Остатки и оборачиваемость
- Заказы (детальная информация)
- Продажи и аналитика (Reports)
- Цены (Prices)
- Акции (Promos)
- Склады и справочники
- Сводная таблица endpoint'ов
- План интеграции для GWPTD
- Источники
1. Общая информация
- Base URL:
https://api.partner.market.yandex.ru - HTTP методы: GET, POST, PUT, DELETE (RESTful)
- Content-Type:
application/json - Документация: https://yandex.ru/dev/market/partner-api/doc/ru/
- OpenAPI spec: https://github.com/yandex-market/yandex-market-partner-api
- Telegram: @yandex_market_api
Аутентификация — Api-Key
Api-Key: ACMA:7TTXY2e6mpcZL2l73IqiDKIXGLvecSDEpXlygvW9:464c1281
ВАЖНО: Используется заголовок
Api-Key, НЕAuthorization: Bearer! Ошибка с 403 ранее была из-за использования неправильного заголовка.
Проверка токена:
POST /v2/auth/token
Возвращает имя токена и scopes. Лимит: 100 запросов/час.
Ключевые идентификаторы
| Идентификатор | Значение | Описание |
|---|---|---|
| businessId | 1069358 | ID кабинета (ООО "ГЛОБАЛ ВОТЧ ПАРЦ ТРЕЙДИНГ РУС") |
| clientId | 300478521 | ID клиента Яндекс |
Кампании (магазины)
| campaignId | Название | Модель | Статус |
|---|---|---|---|
| 22027612 | ГЛОБАЛ ВОТЧ ПАРЦ ТРЕЙДИНГ | FBS | Активен, есть заказы и остатки |
| 61824486 | ООО "ГЛОБАЛ ВОТЧ ПАРЦ ТРЕЙДИНГ РУС" | FBY | Активен, остатки пока 0 |
| 103780352 | ЭКСПРЕСС_не работает | FBS | Неактивен |
| 127095630 | Экспресс 2 | FBS | Активен |
Лимиты
| Endpoint | Лимит |
|---|---|
| Проверка токена | 100 запросов/час |
| Остатки | 100 000 товаров/мин |
| Заказы (stats/orders) | 1 000 000 заказов/час |
2. Остатки и оборачиваемость
2.1. Получить остатки и оборачиваемость — ПРОВЕРЕНО 200 OK
POST /v2/campaigns/{campaignId}/offers/stocks
Возвращает остатки (FBY, FBS, Экспресс, DBS) и оборачиваемость (только FBY).
Query parameters:
| Параметр | Тип | Описание |
|---|---|---|
limit | int | Записей на странице (max 200!) |
page_token | string | Курсор пагинации (nextPageToken) |
Body:
{
"stocksWarehouseId": 90723,
"hasStocks": true,
"withTurnover": false,
"archived": false,
"offerIds": ["GW0575G4", "W1160G7-1"]
}
| Параметр | Тип | Описание |
|---|---|---|
stocksWarehouseId | int | Фильтр по складу |
hasStocks | bool | Только FBY: true = только с остатками |
withTurnover | bool | Только FBY: вернуть оборачиваемость (default false) |
archived | bool | Включить архивные товары |
offerIds | string[] | Фильтр по SKU (1-500, unique). Если указан, игнорируются limit/page_token/archived |
Ответ (проверено):
{
"status": "OK",
"result": {
"paging": {"nextPageToken": "eyBuZXh0SWQ6..."},
"warehouses": [
{
"warehouseId": 90723,
"offers": [
{
"offerId": "12.AB2-06530S",
"stocks": [
{"type": "FIT", "count": 9},
{"type": "AVAILABLE", "count": 9}
],
"turnoverSummary": {
"turnover": "VERY_HIGH",
"turnoverDays": 30.5
}
}
]
}
]
}
}
Типы остатков (WarehouseStockType):
| Тип | Описание |
|---|---|
AVAILABLE | Доступен к заказу |
FIT | Годный (доступен + зарезервирован) |
FREEZE | Зарезервирован для заказов |
QUARANTINE | Карантин (временно недоступен) |
DEFECT | Брак |
EXPIRED | Просрочен |
UTILIZATION | На утилизации |
Оборачиваемость (TurnoverType, только FBY):
| Enum | Диапазон | Оценка |
|---|---|---|
VERY_HIGH | 0-45 дней | Отлично |
HIGH | 45-100 дней | Хорошо |
ALMOST_LOW | 100-120 дней | Почти низкая |
LOW | 120+ дней | Низкая |
NO_SALES | — | Нет продаж |
FREE_STORE | любое | Бесплатное хранение |
2.2. Обновить остатки (FBS)
PUT /v2/campaigns/{campaignId}/offers/stocks
Передаёт актуальные остатки для FBS. Маркет синхронизирует каждые 5 минут.
3. Заказы (детальная информация)
3.1. Детальная статистика по заказам — ПРОВЕРЕНО 200 OK
POST /v2/campaigns/{campaignId}/stats/orders
Возвращает детальную информацию по заказам. Лимит: 1 000 000 заказов/час.
Данные могут появиться с задержкой до 40 минут. Для получения без задержки:
POST /v1/businesses/{businessId}/orders
Query parameters:
| Параметр | Тип | Описание |
|---|---|---|
limit | int | Макс 200 заказов на страницу |
page_token | string | Курсор пагинации |
Body:
{
"dateFrom": "2026-01-01",
"dateTo": "2026-02-10",
"updateFrom": "2026-02-09",
"updateTo": "2026-02-10",
"orders": [54063043969],
"statuses": ["DELIVERED"],
"hasCis": false
}
| Параметр | Тип | Описание |
|---|---|---|
dateFrom/dateTo | date | Период создания (YYYY-MM-DD). Нельзя с updateFrom/To |
updateFrom/updateTo | datetime | Период обновления (ISO 8601). Нельзя с dateFrom/To |
orders | int[] | Фильтр по ID заказов |
statuses | string[] | Фильтр по статусам |
hasCis | bool | Только товары с маркировкой |
Ответ (реальные данные GWPTD):
{
"status": "OK",
"result": {
"orders": [
{
"id": 54063043969,
"creationDate": "2026-02-10",
"statusUpdateDate": "2026-02-10T19:20:01.743+03:00",
"status": "CANCELLED_BEFORE_PROCESSING",
"paymentType": "POSTPAID",
"fake": false,
"deliveryRegion": {"id": 47, "name": "Нижний Новгород"},
"items": [
{
"offerName": "GUESS Наручные часы GW0575G4",
"marketSku": 103723629502,
"shopSku": "GW0575G4",
"count": 1,
"prices": [
{"type": "MARKETPLACE", "costPerItem": 5848.0, "total": 5848.0},
{"type": "BUYER", "costPerItem": 17352.0, "total": 17352.0}
],
"warehouse": {"id": 90723, "name": "ГЛОБАЛ ВОТЧ ПАРЦ ТРЕЙДИНГ РУС ООО"}
}
],
"buyerType": "PERSON",
"currency": "RUR"
}
]
}
}
Статусы заказов:
| Статус | Описание |
|---|---|
PROCESSING | В обработке |
DELIVERY | На доставке |
DELIVERED | Доставлен |
CANCELLED_BEFORE_PROCESSING | Отменён до обработки |
CANCELLED_IN_DELIVERY | Отменён на доставке |
CANCELLED_IN_PROCESSING | Отменён при обработке |
PENDING | Ожидает |
UNPAID | Не оплачен |
RETURNED | Возвращён |
UNKNOWN | Неизвестный |
3.2. Заказы без задержки (уровень бизнеса)
POST /v1/businesses/{businessId}/orders
Те же данные, но без 40-минутной задержки. businessId = 1069358.
3.3. Список заказов (REST)
GET /v2/campaigns/{campaignId}/orders
GET /v2/campaigns/{campaignId}/orders/{orderId}
PUT /v2/campaigns/{campaignId}/orders/{orderId}/status
4. Продажи и аналитика (Reports)
Все отчёты асинхронные: POST → получить reportId → GET для скачивания.
Генерация отчётов
| Endpoint | Описание |
|---|---|
POST /reports/shows-sales/generate | Аналитика продаж (показы, клики, заказы, выручка) |
POST /reports/sales-geography/generate | География продаж по регионам |
POST /reports/key-indicators/generate | Ключевые показатели бизнеса |
POST /reports/goods-turnover/generate | Оборачиваемость товаров |
POST /reports/orders/generate | Отчёт по заказам |
POST /reports/goods-realization/generate | Отчёт по реализации |
POST /reports/united-netting/generate | Отчёт по платежам |
POST /reports/prices/generate | Цены на рынке (сравнение с конкурентами) |
POST /reports/united-marketplace-services/generate | Стоимость услуг (обновлён 18.12.2025) |
Получение готового отчёта
GET /reports/{reportId}
Статистика по товарам
POST /v2/campaigns/{campaignId}/stats/skus
5. Цены (Prices)
Уровень бизнеса (все магазины)
POST /businesses/{businessId}/prices — установить цены
GET /businesses/{businessId}/prices — получить текущие цены
Уровень магазина (конкретный campaignId)
POST /campaigns/{campaignId}/offers/prices — установить цены
GET /campaigns/{campaignId}/offers/prices — получить текущие цены
6. Акции (Promos)
GET /campaigns/{campaignId}/promos — список акций
GET /campaigns/{campaignId}/promos/{promoId}/offers — товары в акции
POST /campaigns/{campaignId}/promos/{promoId}/offers — добавить товары
DELETE /campaigns/{campaignId}/promos/{promoId}/offers — удалить товары
7. Склады и справочники
Склады
GET /v2/warehouses — склады Маркета (FBY)
GET /v2/campaigns/{campaignId}/warehouses — склады продавца
Наши склады (проверено):
| warehouseId | campaignId | Модель | Описание |
|---|---|---|---|
| 90723 | 22027612 | FBS | ГЛОБАЛ ВОТЧ ПАРЦ ТРЕЙДИНГ РУС ООО |
| 147 | 61824486 | FBY | Склад Маркета |
Справочники
GET /v2/regions — справочник регионов
GET /v2/tariffs — тарифы
GET /v2/campaigns — список магазинов (campaignId)
Вопросы о товарах (с 04.02.2026)
POST /v1/businesses/{businessId}/goods-questions — получить вопросы
POST /v1/businesses/{businessId}/goods-questions/answer — ответить на вопрос
8. Сводная таблица endpoint'ов
Для ежедневного сбора данных GWPTD
| Задача | Endpoint | Приоритет |
|---|---|---|
| Остатки FBS | POST /v2/campaigns/22027612/offers/stocks | P0 |
| Остатки FBY | POST /v2/campaigns/61824486/offers/stocks | P0 |
| Заказы (детали) | POST /v2/campaigns/{campaignId}/stats/orders | P0 |
| Заказы (без задержки) | POST /v1/businesses/1069358/orders | P0 |
| Цены | GET /businesses/1069358/prices | P1 |
| Аналитика продаж | POST /reports/shows-sales/generate | P1 |
| География продаж | POST /reports/sales-geography/generate | P1 |
| Обновление цен | POST /businesses/1069358/prices | P2 |
| Акции | GET /campaigns/{campaignId}/promos | P2 |
| Оборачиваемость FBY | POST /v2/campaigns/61824486/offers/stocks (withTurnover=true) | P2 |
9. План интеграции для GWPTD
Архитектура
YandexMarketApiService (PHP, Laravel)
├── authenticate() → Api-Key header (без OAuth, без refresh)
├── getCampaigns() → GET /v2/campaigns
├── getStocks(campaignId) → POST /v2/campaigns/{id}/offers/stocks
├── getOrders(campaignId) → POST /v2/campaigns/{id}/stats/orders
├── getOrdersFast(businessId) → POST /v1/businesses/{id}/orders
├── getPrices(businessId) → GET /businesses/{id}/prices
├── updatePrices(businessId) → POST /businesses/{id}/prices
├── getWarehouses() → GET /v2/warehouses
├── generateReport(type) → POST /reports/{type}/generate
├── getReport(reportId) → GET /reports/{reportId}
└── getPromos(campaignId) → GET /campaigns/{id}/promos
Ключевые моменты
- Api-Key токен — НЕ нужен refresh, бессрочный (scope ALL_METHODS)
- Два campaignId — FBS (22027612) и FBY (61824486), обходить оба
- Пагинация — курсорная (nextPageToken), limit max 200 для остатков
- Задержка заказов — до 40 минут через stats/orders, без задержки через businesses/{id}/orders
- Отчёты асинхронные — POST → reportId → GET
- Остатки FBS пока небольшие — GUESS 9 шт, POLICE 10 шт и др.
- FBY остатки = 0 — но будут
10. Источники
Официальная документация
Swagger / OpenAPI
Telegram
- @yandex_market_api — официальный канал обновлений API
Локальная документация (docx)
ЯМ-Получение информации о токене авторизации.docx— POST /v2/auth/token, scopes, Api-Key formatЯМ-Детальная информация по заказам.docx— POST /v2/campaigns/{id}/stats/orders, все поляЯМ-Информация об остатках и оборачиваемости.docx— POST /v2/campaigns/{id}/offers/stocks, turnover