Kaspi.kz API

Every Kaspi product with every merchant's price and delivery, per city

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.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a Kaspi.kz endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
K
/kaspi/v1

5 active endpoints, on 1 and 2 credit tiers.

  • POST/kaspi/v1/search
  • POST/kaspi/v1/product/detail
  • POST/kaspi/v1/product/offers
  • POST/kaspi/v1/product/reviews
  • POST/kaspi/v1/seller/detail

What Kaspi.kz endpoints does ReefAPI ship?

5 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

5 endpoints

search

2 cr

Search Kaspi Магазин by keyword or browse a category, with Kaspi's five sort orders and its o…

required
optional
query, category, filters, sort, page, city, max_rotations

product/detail

2 cr

One Kaspi product by id or URL.

required
optional
product_id, url, city, offers_limit, max_rotations

product/offers

1 cr

Every merchant offer for one Kaspi product in a city, paged.

required
optional
product_id, url, city, sort, page, limit, max_rotations

product/reviews

1 cr

Reviews of one Kaspi product, paged.

required
optional
product_id, url, sort, filter, page, limit, max_rotations

seller/detail

1 cr

A Kaspi merchant's public profile.

required
seller_id
optional
city, max_rotations

Every parameter, every allowed value →

Kaspi.kz API

3 of 5 endpoints, ready to run

View docs ↗

One page of Kaspi products: product id, title, brand, images, price in KZT, Kaspi bonus and instalment plan, rating and review count, category path and delivery speed. Page 1 also returns the total, the filters with counts and the category tree.

2 credits0 required · 6 optional
POST/kaspi/v1/search
ok3276 ms · 12 records · sample
{
  "ok": true,
  "meta": {
    "api": "kaspi",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 3275.6,
    "record_count": 12,
    "cache_hit": false
  },
  "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": ":price:до 10 000 т",
            "label": "до 10 000 т",
            "count": 0,
            "active": false
          },
          {
            "id": ":price:10 000 - 49 999 т",
            "label": "10 000 - 49 999 т",
            "count": 0,
            "active": false
          },
          {
            "id": ":price:50 000 - 99 999 т",
            "label": "50 000 - 99 999 т",
            "count": 0,
            "active": false
          }
        ]
      },
      {
        "key": "manufacturerName",
        "title": "Бренд",
        "type": "multiselect",
        "values": [
          {
            "id": ":manufacturerName:Apple",
            "label": "Apple",
            "count": 1001,
            "active": false
          }
        ]
      },
      {
        "key": "Smartphones*Series",
        "title": "Все модели",
        "type": "multiselect",
        "values": [
          {
            "id": ":Smartphones*Series:Apple iPhone 13",
            "label": "Apple iPhone 13",
            "count": 14,
            "active": false
          },
          {
            "id": ":Smartphones*Series:Apple iPhone 13 Pro",
            "label": "Apple iPhone 13 Pro",
            "count": 9,
            "active": false
          },
          {
            "id": ":Smartphones*Series:Apple iPhone 13 Pro Max",
            "label": "Apple iPhone 13 Pro Max",
            "count": 2,
            "active": false
          }
        ]
      }
    ],
    "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": "Алматы"
    }
  }
}
Real response, fetched from the live endpoint with the parameters on the left — trimmed to the first few rows. Press Try it for the untrimmed response.

How the Kaspi.kz API works

Kaspi.kz is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 252 engines.

02
Call
POST /kaspi/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Find a product, then see who sells it cheapest in your city

A search row is a product, not an offer. The second call lists the merchants selling it, with the delivery dates for the city you pass.

01search
POST/kaspi/v1/search
{"query": "iphone 15", "sort": "price_asc"}

12 products in Kaspi's price order. Take results[].product_id. price is Kaspi's listing figure; bonus and instalment are separate fields.

02offers
POST/kaspi/v1/product/offers
{"product_id": "<results[0].product_id>", "city": "nur-sultan", "limit": 50}

Every merchant offer, cheapest first, with seller rating, pre-discount price where shown and delivery dates for Astana. offers_total says how many merchants there are.

The live cheapest price and delivery promise per merchant for one city, in two calls, with the Kaspi bonus never mixed into the price.

request
curl -X POST https://api.reefapi.com/kaspi/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"iphone"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "kaspi",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

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.

Which market, which price, what the city changes, and what Kaspi leaves out

kaspi.kz only: one country, one currency, 320 cities. Measured on 2026-09-15 across 31 searches, 14 products in 13 categories and 6 product pages compared against the page itself. Three of these lines go against us.

One market: Kazakhstan, prices in KZT

This API reads kaspi.kz. There is no country parameter because there is no other storefront. The city parameter takes any of Kaspi's 320 cities by code or id.

A row is a product; offers are separate

search and product/detail describe the catalogue product. product/offers lists the merchants selling it, each with its own price, rating and delivery. Clothes and shoes come as colour groups: group_id is the group, product_id is always a real product, and variants lists every size and colour.

Price, bonus and instalment kept apart

price is the tenge price, bonus_amount is Kaspi's cashback, installment is the monthly plan. On 6 product pages compared against the page, the cheapest price, the offer count and the rating matched on 6 of 6.

Against us: the search price can trail the live offers

Search rows carry Kaspi's listing figure. On 14 products it matched the cheapest live offer on 8 and was 1 to 90 KZT higher on the rest. product/detail price_min and product/offers are live.

Against us: the city changes delivery, not price

In Almaty, Astana and Shymkent the offer prices for five products were identical. Delivery dates and how many offers arrive tomorrow did change (34, 19 and 18 of 54 for one iPhone), and so can the number of merchants delivering.

Filters are checked, not trusted

Filter ids come from available_filters with their counts. A filter Kaspi silently ignores is reported in ignored_filters. Smartphones went from 8,401 to 951 with the Samsung filter, and every row was Samsung.

Against us: no barcodes, stock counts or Kazakh titles

The product, offer and review data Kaspi serves to its own pages has no GTIN, no stock quantity, no separate Kaspi Red price and no Kazakh-language title, so those fields do not exist here. Instalment plans are on search rows only.

What people build with Kaspi.kz

The jobs this data is most often used for.

5

endpoints

1/2

credits per call

01

Brands and distributors in Kazakhstan track how many merchants sell their products on Kaspi, at what price, and who is cheapest.

02

Merchants monitor competing offers and delivery promises for their SKUs in the cities they ship to.

03

Market researchers pull category listings with Kaspi's filters, prices, ratings and review counts.

04

Catalog teams collect specifications, variants and images for products they list on Kaspi.

What Kaspi.kz data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 252 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/kaspi/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"iphone"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/kaspi/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "query": "iphone"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Kaspi.kz.

Get a free key →
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.

91 E-commerce & Marketplaces APIs on the same key

One key, one credit pool, one response envelope. If you are pulling Kaspi.kz, you are one call away from the rest of the category — no second contract, no second integration.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 251 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-15.