API

Kaspi API: товары и офферы продавцов в JSON

Здесь важно различать два разных API. Официальный Kaspi для продавцов и Kaspi Pay решают свои задачи: заказы, выплаты, ваш собственный магазин. Этот API отвечает на другой вопрос — что происходит на витрине: кто ещё продаёт тот же товар, по какой цене в конкретном городе и что пишут в отзывах. Кабинет продавца для этого не нужен.

Эндпоинты

endpointЧто возвращаетОбязательные
searchПоиск по ключевому слову или обход категории с пятью сортировками Kaspi и его собственными фильтрами.все необязательные
product/detailОдна карточка по id или URL: название, бренд, изображения, путь категории, полные характеристики и описание.все необязательные
product/offersГлавное здесь: все офферы продавцов по одному товару в выбранном городе, постранично — продавец с рейтингом и числом отзывов, цена и условия доставки.все необязательные
product/reviewsОтзывы по товару, постранично: звёзды, дата, текст, плюсы и минусы, счётчик полезности и фотографии.все необязательные
seller/detailПубличный профиль продавца: название, логотип, рейтинг, число отзывов, статус в Kaspi и доля выполненных заказов.seller_id

Каждый вызов тарифицируется в кредитах. Неудачные и заблокированные вызовы бесплатны.

Рабочий пример

Цена на Kaspi зависит от города, поэтому запрос офферов без города отвечает не на тот вопрос. Сначала найдите товар, затем запросите офферы с нужным городом.

Запрос
curl -X POST https://api.reefapi.com/kaspi/v1/product/offers \
  -H "x-api-key: ВАШ_КЛЮЧ" \
  -H "content-type: application/json" \
  -d '{"product_id": "106523607", "city": "Алматы"}'
Ответ (сокращён)
{
  "ok": true,
  "data": {
    "offers": [
      {
        "seller_name": "...",
        "seller_rating": 4.9,
        "price": 389990,
        "delivery": "..."
      }
    ]
  },
  "meta": { "record_count": 24, "cache_hit": false, "mode": "live" }
}

Вместо собственного парсера Kaspi

Парсер kaspi.kz написать можно, и на GitHub такие есть. Сложность не в первом запросе, а в том, что витрина Kaspi зависит от города: один и тот же товар показывает разные офферы и разные цены, и парсер, не учитывающий город, тихо собирает неверные данные — выглядят они при этом совершенно нормально.

Здесь город — обычный параметр, а обслуживание на нашей стороне: меняется схема — правим мы, срабатывает блокировка — возвращается ошибка, и такой вызов бесплатен.

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

Ограничения и честные замечания

  • Это не официальный API Kaspi и не Kaspi Pay; партнёрства с Kaspi у нас нет.
  • Цена и состав офферов зависят от города — без указания города вы получите не «среднюю» цену, а выдачу по умолчанию.
  • Если продавец не публикует остаток или условие доставки, поле приходит null; мы ничего не достраиваем.
  • Кэша нет: каждый вызов живой.