Market NinjaMarket Ninja

История цен

Когда достаточно текущей цены из ответа поиска, а когда нужен отдельный запрос истории — с примером анализа динамики.

Текущая цена уже у вас есть

Каждый товар в ответе GET /products и GET /products/{id} уже содержит массив prices — по одной записи на каждую фактически встреченную тройку (страна, регион, статус авторизации):

"prices": [
  {
    "country_code": "ru",
    "region_code": null,
    "user_auth_status": "anonymous",
    "price": 7093,
    "old_price": 8651,
    "currency": "RUB",
    "recorded_at": "2026-08-02T23:21:53.185302+00:00"
  }
]
country_code отражает страновой домен маркетплейса (например, .ru/.kz/.by/.am у Wildberries) — один и тот же товар может стоить по-разному в разных странах, поэтому это отдельное измерение, не сводимое к region_code (более точный, часто отсутствующий признак — сохранённый адрес доставки).
Отдельный запрос к GET /products/{id}/price-history нужен только для анализа динамики — если вам достаточно знать текущую цену, он не нужен вовсе.

Когда нужна история

GET /products/{id}/price-history возвращает полную временную серию наблюдений — для построения графика, отслеживания частоты изменений или расчёта средней цены за период.

curl -G -H "Authorization: Bearer mn_live_..." \
  "https://data.marketninja.ru/v1/products/e86bee19-9cc9-4a83-b9cc-6b61f1209d90/price-history" \
  --data-urlencode "from=2026-08-01T00:00:00Z" \
  --data-urlencode "to=2026-08-02T23:59:59Z"
{
  "data": [
    { "price": 7093, "old_price": 8651, "recorded_at": "2026-08-02T23:21:53.185302+00:00", "...": "..." },
    { "price": 6993, "old_price": 8688, "recorded_at": "2026-08-01T01:03:17.999423+00:00", "...": "..." }
  ],
  "meta": { "total": 2, "page": 1, "page_size": 100 }
}

from и to необязательны — без них вернётся вся доступная история товара, от новых записей к старым. Если нужна конкретная страна, регион или тип покупателя (гость или авторизованный) — добавьте country_code, region_code и/или user_auth_status.

Периодический мониторинг

Для отслеживания цены во времени не нужно хранить локальную копию всей истории — опрашивайте эндпоинт периодически (например, раз в день) с from, равным времени последнего успешного опроса, и добавляйте только новые записи в свою базу:

# Пример: получить только записи с момента последней проверки
curl -G -H "Authorization: Bearer mn_live_..." \
  "https://data.marketninja.ru/v1/products/e86bee19-9cc9-4a83-b9cc-6b61f1209d90/price-history" \
  --data-urlencode "from=2026-08-02T23:21:53Z"
id товара не меняется — как и в остальных сценариях, сохраните его после первого поиска (см. Обзор API) и не повторяйте GET /products при каждой проверке.

Last updated on

On this page