Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Kaspi.kz API page →
E-commerce & Marketplaces

Kaspi.kz API & Scraper

The Kaspi API turns Kaspi Магазин (kaspi.kz), Kazakhstan's largest marketplace, into clean JSON in five actions: search, product/detail, product/offers, product/reviews and seller/detail.

5 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

search takes a keyword or a Kaspi category, applies Kaspi's own filters (brand, price band and the category's attributes, each returned with its value id and count), offers the site's five sort orders and pages 12 products at a time. Each row carries the product id, title, brand, images, the price in tenge, the Kaspi bonus amount and the instalment plan kept apart from the price, the rating and review count, the category path and the delivery speed. product/detail adds the full specification table, the description, every colour and size variant with its own product id, the exact average with the 1-5 breakdown, and the merchant offers cheapest first. product/offers pages through all of them: seller with rating and review count, price, pre-discount price where the merchant shows one, and courier, pickup and postomat dates for the city you pass. In a live check on 2026-09-15 across 14 products in 13 categories, title, price, offers, rating and specifications were filled on 14 of 14, and on 6 product pages compared against the page itself the title, the cheapest price, the offer count and the rating matched on all 6. Prices are KZT. No Kaspi account, no browser, one ReefAPI key and the standard { ok, data, meta, error } envelope.

Reference

One Kaspi product has many prices, and only one of them is what you pay

A Kaspi listing card shows a price, a Kaspi bonus and a monthly instalment side by side. The API keeps them apart: price (tenge), bonus_amount (cashback credited after purchase), price_after_bonus and installment {months, monthly_payment}. product/detail then reads the live merchant offers, so price_min is the cheapest offer right now.

Productpricebonus / instalmentLive offers
Apple iPhone 17 Pro 256Gb (145467625)676,136 KZT in search, 676,121 cheapest live offerbonus 20,284 · 24 × 28,17374 merchants
Concept Silver shampoo 300 ml (103659955)3,179 KZT48 merchants
LEGO Ninjago 71862 (168565602)7,200 KZT2 merchants
Leadbros HD-400W fridge (121431315)279,990 KZT1 merchant

The search price comes from Kaspi's listing index and can trail the live offers by a few tenge: on 14 products checked it matched the cheapest live offer on 8 and was 1 to 90 KZT higher on the rest. Use product/detail price_min or product/offers when the exact figure matters.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/kaspi/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "iphone"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "kaspi",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 5556.6,
    "record_count": 12,
    "bytes": 202024,
    "cache_hit": false,
    "city": "almaty",
    "pagination": {
      "page": 1,
      "page_size": 12,
      "total": 1001,
      "has_more": true
    }
  },
  "data": {
    "results": [
      {
        "position": 1,
        "product_id": "145467625",
        "group_id": null,
        "title": "Apple iPhone 17 Pro 256Gb NanoSIM+eSIM оранжевый",
        "brand": "Apple",
        "url": "https://kaspi.kz/shop/p/apple-iphone-17-pro-256gb-nanosim-esim-oranzhevyi-145467625/?c=750000000",
        "image": "https://resources.cdn-kaspi.kz/img/m/p/p18/p96/64168413.png?format=preview-large",
        "images": [
          "https://resources.cdn-kaspi.kz/img/m/p/p18/p96/64168413.png?format=preview-large",
          "https://resources.cdn-kaspi.kz/img/m/p/p29/p1e/64464409.jpg?format=preview-large",
          "https://resources.cdn-kaspi.kz/img/m/p/pfc/p95/64168414.png?format=preview-large"
        ],
        "price": 669479,
        "currency": "KZT",
        "bonus_amount": 20084,
        "price_after_bonus": 649395,
        "installment": {
          "months": 24,
          "monthly_payment": 27895
        },
        "credit_available": true,
        "rating": 4.9,
        "rating_scale": 5,
        "review_count": 2155,
        "category_id": "00003",
        "category_path": [
          "Телефоны и гаджеты",
          "Смартфоны"
        ],
        "delivery_duration": "EXPRESS",
        "has_variants": false,
        "brand_official_partner": false,
        "top_merchant_id": "12484078",
        "stickers": [],
        "sold_by_unit": "PIECES",
        "unit_label": "шт",
        "listed_at": "2025-09-10T03:46:20Z"
      },
      {
        "position": 2,
        "product_id": "145467562",
        "group_id": null,
        "title": "Apple iPhone 17 Pro 256Gb NanoSIM+eSIM серебристый",
        "brand": "Apple",
        "url": "https://kaspi.kz/shop/p/apple-iphone-17-pro-256gb-nanosim-esim-serebristyi-145467562/?c=750000000",
        "image": "https://resources.cdn-kaspi.kz/img/m/p/pb3/p40/64168003.png?format=preview-large",
        "images": [
          "https://resources.cdn-kaspi.kz/img/m/p/pb3/p40/64168003.png?format=preview-large",
          "https://resources.cdn-kaspi.kz/img/m/p/pd4/p66/64464588.jpg?format=preview-large",
          "https://resources.cdn-kaspi.kz/img/m/p/p7b/p40/64168005.png?format=preview-large"
        ],
        "price": 706899,
        "currency": "KZT",
        "bonus_amount": 21206,
        "price_after_bonus": 685693,
        "installment": {
          "months": 24,
          "monthly_payment": 29455
        },
        "credit_available": true,
        "rating": 5,
        "rating_scale": 5,
        "review_count": 2347,
        "category_id": "00003",
        "category_path": [
          "Телефоны и гаджеты",
          "Смартфоны"
        ],
        "delivery_duration": "EXPRESS",
        "has_variants": false,
        "brand_official_partner": false,
        "top_merchant_id": "13192006",
        "stickers": [],
        "sold_by_unit": "PIECES",
        "unit_label": "шт",
        "listed_at": "2025-09-10T03:45:22Z"
      },
      {
        "position": 3,
        "product_id": "145468241",
        "group_id": null,
        "title": "Apple iPhone 17 Pro Max 256Gb NanoSIM+eSIM оранжевый",
        "brand": "Apple",
        "url": "https://kaspi.kz/shop/p/apple-iphone-17-pro-max-256gb-nanosim-esim-oranzhevyi-145468241/?c=750000000",
        "image": "https://resources.cdn-kaspi.kz/img/m/p/p24/p88/64170090.png?format=preview-large",
        "images": [
          "https://resources.cdn-kaspi.kz/img/m/p/p24/p88/64170090.png?format=preview-large",
          "https://resources.cdn-kaspi.kz/img/m/p/ped/p29/64476207.jpg?format=preview-large",
          "https://resources.cdn-kaspi.kz/img/m/p/p41/p88/64170091.png?format=preview-large"
        ],
        "price": 728848,
        "currency": "KZT",
        "bonus_amount": 21865,
        "price_after_bonus": 706983,
        "installment": {
          "months": 24,
          "monthly_payment": 30369
        },
        "credit_available": true,
        "rating": 4.9,
        "rating_scale": 5,
        "review_count": 2049,
        "category_id": "00003",
        "category_path": [
          "Телефоны и гаджеты",
          "Смартфоны"
        ],
        "delivery_duration": "EXPRESS",
        "has_variants": false,
        "brand_official_partner": false,
        "top_merchant_id": "8888000",
        "stickers": [],
        "sold_by_unit": "PIECES",
        "unit_label": "шт",
        "listed_at": "2025-09-10T04:00:37Z"
      }
    ],
    "count": 12,
    "page": 1,
    "page_size": 12,
    "total_results": 1001,
    "total_pages": 84,
    "sort": "relevance",
    "query": "iphone",
    "applied_filters": [],
    "ignored_filters": [],
    "available_filters": [
      {
        "key": "price",
        "title": "Цена",
        "type": "multiselect",
        "values": [
          {
            "id": "[trimmed-depth]",
            "label": "[trimmed-depth]",
            "count": "[trimmed-depth]",
            "active": "[trimmed-depth]"
          },
          {
            "id": "[trimmed-depth]",
            "label": "[trimmed-depth]",
            "count": "[trimmed-depth]",
            "active": "[trimmed-depth]"
          },
          {
            "id": "[trimmed-depth]",
            "label": "[trimmed-depth]",
            "count": "[trimmed-depth]",
            "active": "[trimmed-depth]"
          }
        ]
      },
      {
        "key": "manufacturerName",
        "title": "Бренд",
        "type": "multiselect",
        "values": [
          {
            "id": "[trimmed-depth]",
            "label": "[trimmed-depth]",
            "count": "[trimmed-depth]",
            "active": "[trimmed-depth]"
          }
        ]
      },
      {
        "key": "Smartphones*Series",
        "title": "Все модели",
        "type": "multiselect",
        "values": [
          {
            "id": "[trimmed-depth]",
            "label": "[trimmed-depth]",
            "count": "[trimmed-depth]",
            "active": "[trimmed-depth]"
          },
          {
            "id": "[trimmed-depth]",
            "label": "[trimmed-depth]",
            "count": "[trimmed-depth]",
            "active": "[trimmed-depth]"
          },
          {
            "id": "[trimmed-depth]",
            "label": "[trimmed-depth]",
            "count": "[trimmed-depth]",
            "active": "[trimmed-depth]"
          }
        ]
      }
    ],
    "categories": [
      {
        "category": "Smartphones and gadgets",
        "title": "Телефоны и гаджеты",
        "count": 1001,
        "active": false,
        "depth": 0
      },
      {
        "category": "Smartphones",
        "title": "Смартфоны",
        "count": 1001,
        "active": true,
        "depth": 1
      }
    ],
    "category": "Smartphones",
    "category_title": "Смартфоны",
    "completions": [
      "17",
      "13",
      "16"
    ],
    "sponsored_dropped": 0,
    "duplicate_rows_dropped": 0,
    "page_notice": null,
    "city": {
      "id": "750000000",
      "code": "almaty",
      "name": "Almaty",
      "name_ru": "Алматы"
    }
  }
}
Actions

What the Kaspi.kz API does

ActionDescriptionConcrete use caseKey params
searchSearch Kaspi Магазин by keyword or browse a category, with Kaspi's five sort orders and its own filters (brand, price band, category-specific attributes). 12 products a page: product id, title, brand, URL, images, price in KZT, Kaspi bonus amount, instalment plan, rating and review count, category path, delivery speed. Page 1 also returns the total, the filter list with counts and the category tree.Pricing teams call search to search Kaspi Магазин by keyword or browse a category, with Kaspi's five sort orders and its o….query, category, filters, sort, page, ...
product/detailOne Kaspi product by id or URL: title, brand, images, category path, full specifications, description, variants (colour / size with their product ids), exact rating with 1-5 breakdown and counts, the cheapest price across merchants and the first page of merchant offers with price, pre-discount price, seller rating and delivery dates for the chosen city.Marketplace operators call product/detail to get one Kaspi product by id or URL.product_id, url, city, offers_limit, max_rotations
product/offersEvery merchant offer for one Kaspi product in a city, paged: seller with rating and review count, price, pre-discount price, delivery speed and dates for courier, pickup and postomat, delivery cost and free-delivery threshold, preorder days.Catalog enrichment teams call product/offers to get every merchant offer for one Kaspi product in a city, paged.product_id, url, city, sort, page, ...
product/reviewsReviews of one Kaspi product, paged: stars, date, text, pros and cons, helpful count, photos and the merchant it was bought from, plus the exact average, the 1-5 breakdown and the size of each review group. Reviewer names and order numbers are never returned.Retail analysts call product/reviews to get reviews of one Kaspi product, paged.product_id, url, sort, filter, page, ...
seller/detailA Kaspi merchant's public profile: name, logo, rating and review count, Kaspi status, the share of cancelled, returned and late orders, order-volume bracket and legal address.Pricing teams call seller/detail to get a Kaspi merchant's public profile.seller_id, city, max_rotations
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/kaspi/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"iphone"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.kaspi.search with {"query":"iphone"}.
Use cases

Who uses this API and why

  • Brands and distributors in Kazakhstan track how many merchants sell their products on Kaspi, at what price, and who is cheapest.
  • Merchants monitor competing offers and delivery promises for their SKUs in the cities they ship to.
  • Market researchers pull category listings with Kaspi's filters, prices, ratings and review counts.
  • Catalog teams collect specifications, variants and images for products they list on Kaspi.
FAQ

Questions developers ask before integrating

Does the city change the price?

It changes what you can get and when. The city parameter accepts any of Kaspi's 320 cities (almaty, nur-sultan for Astana, shymkent, karaganda and so on, or the numeric id). On 2026-09-15 the offer prices for five products were the same in Almaty, Astana and Shymkent, while delivery was not: for an iPhone 15 sold by 54 merchants, 34 offers delivered tomorrow in Almaty against 19 in Astana and 18 in Shymkent, and the number of merchants delivering can differ by city.

Why does a search row have both product_id and group_id?

Clothes and shoes are listed as one card per colour group, with an id ending in b such as 12764554b. That group id does not open a product. Every row's product_id is a real product (for example 121078529, one size of that group), and product/detail returns all the group's sizes and colours in variants, each with its own product_id: 300 for one pair of kids' sneakers.

Is the rating on a search row the same as on the product?

The count is, the average is rounded. Search rows carry Kaspi's one-decimal rating (4.9); product/detail and product/reviews return the exact average (4.95) with the 1-5 breakdown and the rating and review counts. On 14 products checked the review count matched 14 of 14.

What happens if I pass a filter Kaspi does not have?

Kaspi silently ignores it and still marks it as selected. The API checks whether the filter actually narrowed the results and lists the ones that did not in ignored_filters, so you are never told a filter applied when it did not. Valid filter ids come back in available_filters with their counts, for example the seven fixed price bands.

Are there discounts?

Per merchant. Some merchants show a pre-discount price: for the iPhone 17 Pro, 8 of 74 offers had one (811,990 down to 684,990 KZT, 16%). Those offers carry was_price and discount_percent; the rest return null rather than a made-up discount. The Kaspi bonus is cashback, not a price cut, so it is in bonus_amount and never subtracted from price.

What does Kaspi not publish?

Barcodes, stock counts, Kazakh-language titles and a separate Kaspi Red price are not in the product, offer and review data Kaspi serves to its own pages, so there are no such fields. Instalment plans appear on search rows only. Reviews come without reviewer names or order numbers by design.

What is the Kaspi.kz API?

Kaspi.kz API is a ReefAPI endpoint group for kazakhstan's #1 marketplace: products, every merchant's price and delivery per city, reviews. It returns live JSON through POST requests under /kaspi/v1.

Is the Kaspi.kz API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Kaspi.kz calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Kaspi.kz login or account?

No login to Kaspi.kz is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Kaspi.kz data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Kaspi.kz API use?

Kaspi.kz actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Kaspi.kz from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call kaspi actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Kaspi.kz API a Kaspi.kz scraper?

It is the managed alternative to a DIY Kaspi.kz scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same kazakhstan's #1 marketplace: products, every merchant's price and delivery per city, reviews back as clean JSON.

Why does my Kaspi.kz scraper keep getting blocked?

Most Kaspi.kz scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / kaspi

Kaspi.kz

Kazakhstan's #1 marketplace: products, every merchant's price and delivery per city, reviews.

base /kaspi/v15 endpoints
post/kaspi/v1/product/detail2 credits

One Kaspi product by id or URL: title, brand, images, category path, full specifications, description, variants (colour / size with their product ids), exact rating with 1-5 breakdown and counts, the cheapest price across merchants and the first page of merchant offers with price, pre-discount price, seller rating and delivery dates for the chosen city.

ParameterAllowed / rangeDescription
product_idoptionalKaspi product id (the number at the end of a product URL; search rows return it as product_id).
urloptionalAlternative to product_id: a kaspi.kz product URL.
city = almatyoptionalBuyer city: a Kaspi city code (almaty, nur-sultan = Astana, shymkent, karaganda, aktobe, taraz, pavlodar, ust-kamenogorsk, semey, atyrau, kostanai, kyzylorda, uralsk, petropavlovsk, aktau, turkestan, taldykorgan …, 320 in total) or its numeric id (750000000). Delivery promises, the set of merchants that deliver and search availability follow the city. Unknown → INVALID_PARAM.
offers_limit = 10optional1–50How many merchant offers (cheapest first) to include, 1-50.
max_rotations = 3optional1–6Advanced: how many exits to try for a difficult request (1-6, default 3).
Try in playground →
post/kaspi/v1/product/offers1 credit

Every merchant offer for one Kaspi product in a city, paged: seller with rating and review count, price, pre-discount price, delivery speed and dates for courier, pickup and postomat, delivery cost and free-delivery threshold, preorder days.

ParameterAllowed / rangeDescription
product_idoptionalKaspi product id (the number at the end of a product URL; search rows return it as product_id).
urloptionalAlternative to product_id: a kaspi.kz product URL.
city = almatyoptionalBuyer city: a Kaspi city code (almaty, nur-sultan = Astana, shymkent, karaganda, aktobe, taraz, pavlodar, ust-kamenogorsk, semey, atyrau, kostanai, kyzylorda, uralsk, petropavlovsk, aktau, turkestan, taldykorgan …, 320 in total) or its numeric id (750000000). Delivery promises, the set of merchants that deliver and search availability follow the city. Unknown → INVALID_PARAM.
sort = priceoptionalprice · rating · popularKaspi's own three offer orders.
page = 1optional1–1000Offer page, 1-based.
limit = 20optional1–50Offers per page, 1-50.
max_rotations = 3optional1–6Advanced: how many exits to try for a difficult request (1-6, default 3).
Try in playground →
post/kaspi/v1/product/reviews1 credit

Reviews of one Kaspi product, paged: stars, date, text, pros and cons, helpful count, photos and the merchant it was bought from, plus the exact average, the 1-5 breakdown and the size of each review group. Reviewer names and order numbers are never returned.

ParameterAllowed / rangeDescription
product_idoptionalKaspi product id (the number at the end of a product URL; search rows return it as product_id).
urloptionalAlternative to product_id: a kaspi.kz product URL.
sort = popularoptionalpopular · newestReview order.
filter = with_textoptionalwith_text · all · with_photos · positive · negativeWhich reviews to list; `counts` returns the size of every group.
page = 1optional1–5000Review page, 1-based.
limit = 20optional1–100Reviews per page, 1-100.
max_rotations = 3optional1–6Advanced: how many exits to try for a difficult request (1-6, default 3).
Try in playground →
post/kaspi/v1/seller/detail1 credit

A Kaspi merchant's public profile: name, logo, rating and review count, Kaspi status, the share of cancelled, returned and late orders, order-volume bracket and legal address.

ParameterAllowed / rangeDescription
seller_idrequiredKaspi merchant id, as returned in offers[].seller.id.
city = almatyoptionalBuyer city: a Kaspi city code (almaty, nur-sultan = Astana, shymkent, karaganda, aktobe, taraz, pavlodar, ust-kamenogorsk, semey, atyrau, kostanai, kyzylorda, uralsk, petropavlovsk, aktau, turkestan, taldykorgan …, 320 in total) or its numeric id (750000000). Delivery promises, the set of merchants that deliver and search availability follow the city. Unknown → INVALID_PARAM.
max_rotations = 3optional1–6Advanced: how many exits to try for a difficult request (1-6, default 3).
Try in playground →