# Kaspi KZ Scraper: Prices, Sellers & Price Drops | Парсер Каспи (`getascraper/kaspi-product-scraper`) Actor

Kaspi.kz scraper (парсер Каспи, Kaspi Магазин, бағалар): search by keyword, category or product link in 6 cities. Get prices, Kaspi bonus, installments, ratings, stock and seller offers, go beyond 24 results, and track price drops on a schedule. Excel, CSV, JSON.

- **URL**: https://apify.com/getascraper/kaspi-product-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Automation
- **Features:** Limited permissions
- **Stats:** 20 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.66 / 1,000 products

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🛒 Kaspi KZ Scraper: Prices, Sellers & Price Drops | Парсер Каспи

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;margin-bottom:0">
<tr>
<td colspan="4" style="padding:14px 18px;background:#FEECEA;border:none;border-top:3px solid #CB3A2C;border-left:1px solid #F6C9C3;border-right:1px solid #F6C9C3;color:#1C1917;border-radius:10px 10px 0 0">
<span style="font-size:16px;font-weight:700;color:#1C1917">Kaspi Магазин is one of nine sources in this suite.</span> <span style="font-size:15px;color:#57534E">Point this Actor at a keyword, category or product link and a city to get Kaspi's live price, bonus price, installment, rating, stock, and sellers for every result.</span>
</td>
</tr>
<tr>
<td colspan="4" style="padding:10px 14px;background:#CB3A2C;border:none;border-left:1px solid #F6C9C3;border-right:1px solid #F6C9C3;color:#FFFFFF">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">RUSSIAN AND CIS MARKETPLACE COMPARISON</span>
<span style="color:#FFFFFF;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Yandex Market, Uzum, Kaspi, Detmir, KazanExpress, Avito, and combined multi-source feeds</span>
</td>
</tr>
<tr>
<td style="padding:10px 12px;border:none;border-left:1px solid #F6C9C3;border-bottom:1px solid #F6C9C3;vertical-align:top;width:25.0%;background:#FEECEA;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-10fHdoY606iuOSBxW-c9IxdmQMZ9-kaspikz-b61bfaed_%281%29.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/kaspi-product-scraper" style="color:#CB3A2C;text-decoration:none;font-weight:700;font-size:13px">Kaspi Store</a></span><br>
<span style="color:#CB3A2C;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
<td style="padding:10px 12px;border:none;border-left:1px solid #F6C9C3;border-bottom:1px solid #F6C9C3;vertical-align:top;width:25.0%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-mv4U91rg37OMvpU5Q-Zt8kLRohfB-images_%2815%29.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/magnit-market-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Magnit Market</a></span><br>
<span style="color:#57534E;font-size:11px">KazanExpress product search</span>
</td>
<td style="padding:10px 12px;border:none;border-left:1px solid #F6C9C3;border-bottom:1px solid #F6C9C3;vertical-align:top;width:25.0%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-ak0bX877AFSDpo34D-aSoHuunoYT-ChatGPT_Image_Jul_18__2026__09_38_35_AM.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/ru-marketplace-search" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">RU Search</a></span><br>
<span style="color:#57534E;font-size:11px">Combined WB, Avito, Yandex search</span>
</td>
<td style="padding:10px 12px;border:none;border-left:1px solid #F6C9C3;border-right:1px solid #F6C9C3;border-bottom:1px solid #F6C9C3;vertical-align:top;width:25.0%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-chw3kJMcT4ixSsdNp-gYiQl8sC6B-ChatGPT_Image_Jul_18__2026__09_38_44_AM.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/ru-marketplace-seller-intel" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">RU Seller Intel</a></span><br>
<span style="color:#57534E;font-size:11px">Combined seller dossiers</span>
</td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-top:0;margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#FEECEA;border:1px solid #F6C9C3;border-top:none;color:#1C1917">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Know every Kaspi.kz price without opening a single product page.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Pull live prices, the Kaspi bonus price, installments, ratings, stock, and every seller's offer straight from Kaspi.kz (Kaspi Магазин), Kazakhstan's #1 marketplace. Search in Russian or Kazakh, across 6 cities, and watch prices drop between runs.</span>
</td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-top:0">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F0DEDB;vertical-align:top;border-top:none;color:#1C1917;border-radius:0 0 0 10px">
<span style="font-size:15px;font-weight:800;color:#B3261E">💳 Kaspi bonus</span><br>
<span style="font-size:12px;color:#57534E">The real net price after bonus, on every product</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F0DEDB;border-left:none;vertical-align:top;border-top:none;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#B3261E">🏙️ 6 cities</span><br>
<span style="font-size:12px;color:#57534E">Prices and stock per city, Almaty to Aktau</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F0DEDB;border-left:none;vertical-align:top;border-top:none;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#B3261E">🏪 Sellers</span><br>
<span style="font-size:12px;color:#57534E">Every merchant's price, rating, and delivery</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F0DEDB;border-left:none;vertical-align:top;border-top:none;color:#1C1917;border-radius:0 0 10px 0">
<span style="font-size:15px;font-weight:800;color:#B3261E">📉 Price drops</span><br>
<span style="font-size:12px;color:#57534E">New, cheaper, pricier, and out-of-stock flags</span>
</td>
</tr>
</table>

Checking Kaspi.kz prices one product at a time takes all afternoon. This Actor does it in seconds. Point it at a keyword like "iphone", "холодильник", or "қыздырғыш", a category link, or a product link, pick a city, and get clean rows from [Kaspi Магазин](https://kaspi.kz/shop/): price, Kaspi bonus, installment, rating, stock, delivery, and optionally every seller's offer. Schedule it and it flags what got cheaper.

### 🔍 What does Kaspi Product Scraper do?

It reads the public Kaspi.kz catalog and returns the data buyers actually act on. For every product you get the current price, the price after Kaspi bonus, credit and installment options, star rating, review count, stock status, delivery time, brand, category, and the merchant holding the best price. Turn on seller offers to see every merchant selling the product with their price, rating, and delivery. Turn on price tracking to compare each run with the last one. Everything lands as flat rows you can download as Excel, CSV, or JSON, or send straight to a Google Sheet.

Kaspi shows only 24 products per search. Deep search splits a search by price band, brand, and sort order so you can collect far more of a category, and filters (brand, price, rating, reviews, in stock) keep only the rows you want.

### 💡 Who is it for?

"I resell on Kaspi, so I pull live competitor prices before I set mine."

"I research Kazakhstan retail, so I need pricing and assortment across cities in one export."

"I sell my own brand on Kaspi, so I check my products' prices, ratings, and stock in one run."

"I build a price or deals tool, so I feed fresh Kaspi.kz data into my database on a schedule."

"I want to know the moment a competitor undercuts me, so I track price changes on a schedule."

### 🚀 How to use it

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:16px 14px;width:33%;background:#FEECEA;border:1px solid #F6C9C3;border-radius:10px 0 0 10px;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#F14635;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Add your keywords</span><br>
<span style="font-size:12px;color:#57534E">Keywords, category or product links, then a city.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FEECEA;border:1px solid #F6C9C3;border-left:none;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#F14635;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run or schedule</span><br>
<span style="font-size:12px;color:#57534E">Start once, or schedule it to track price drops.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FEECEA;border:1px solid #F6C9C3;border-left:none;border-radius:0 10px 10px 0;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#F14635;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Export anywhere</span><br>
<span style="font-size:12px;color:#57534E">Excel, CSV, JSON, Google Sheets, or Slack.</span>
</td>
</tr>
</table>

### ⚙️ Input

| Field | Type | Required | Description |
|---|---|---|---|
| `searchQueries` | array of text | No | Keywords to search on Kaspi.kz, in Russian, Kazakh or English, e.g. "iphone", "холодильник". A Kaspi product ID returns that exact product. |
| `startUrls` | array of URLs | No | Kaspi.kz search, category, or product links, e.g. https://kaspi.kz/shop/c/smartphones/. |
| `city` | enum | No | City for prices, Kaspi bonus, stock, and delivery: Almaty, Astana, Shymkent, Karaganda, Aktobe, or Aktau. |
| `sort` | enum | No | Popular (default), newest, cheapest, most expensive, or highest rated. |
| `brands` | array of text | No | Only these brands, as Kaspi shows them. Each brand runs as its own search. |
| `minPrice` / `maxPrice` | integer | No | Price range in tenge. |
| `minRating` / `minReviews` | number / integer | No | Keep only well-rated or well-reviewed products. |
| `inStockOnly` | boolean | No | Skip products that are not in stock. |
| `officialPartnerOnly` | boolean | No | Keep only official brand partner offers. |
| `maxItems` | integer | No | Maximum total product rows returned. 0 means unlimited (free plan runs are capped at 100). |
| `maxPagesPerQuery` | integer | No | Result pages per search. Kaspi serves up to 24 top products per search. |
| `deepSearch` | boolean | No | Collect beyond the 24-result window by splitting each search by price band, brand, and sort order. |
| `includeOffers` | boolean | No | Add every seller's offer for each product. |
| `offersLimit` | integer | No | How many of the cheapest sellers to list per product. |
| `trackChanges` | boolean | No | Compare each product with the previous run of the same monitor. |
| `monitorScope` | text | No | Name of the monitor, so separate schedules keep separate histories. |
| `onlyChanges` | boolean | No | With tracking on, save only new products and price or stock changes. |
| `proxyConfiguration` | object | No | Proxy settings. The default is reliable for Kaspi; leave it as is. |

### 📦 Output

Each row is one product, with price, Kaspi bonus, rating, and stock, plus sellers and change flags when you turn them on. Download as JSON, CSV, or Excel.

```json
[
  {
    "productId": "145467625",
    "title": "Смартфон Apple iPhone 17 Pro 256Gb NanoSIM+eSIM оранжевый",
    "brand": "Apple",
    "url": "https://kaspi.kz/p/apple-iphone-17-pro-256gb-nanosim-esim-oranzhevyi-145467625/?c=750000000",
    "price": 638588,
    "priceFormatted": "638 588 ₸",
    "priceWithBonus": 619431,
    "bonusAmount": 19157,
    "creditMonthlyPrice": 26608,
    "monthlyInstallment": "26 608 ₸",
    "rating": 4.9,
    "reviewsQuantity": 2434,
    "inStock": true,
    "stockCount": 1,
    "deliveryDuration": "TODAY",
    "category": [
      "Телефоны и гаджеты",
      "Смартфоны"
    ],
    "brandOfficialPartner": false,
    "loanAvailable": true,
    "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"
    ],
    "bestMerchantId": "234005",
    "listedAt": "2025-09-10T03:46:20.657Z",
    "cityId": "750000000",
    "cityName": "Алматы",
    "currency": "KZT",
    "query": "iphone",
    "scrapedAt": "2026-10-22T23:56:22.731Z",
    "offersCount": 73,
    "minOfferPrice": 638524,
    "offers": [
      {
        "merchantId": "234005",
        "merchantName": "ALPHA",
        "merchantRating": 4.9,
        "merchantReviewsQuantity": 220,
        "price": 638524,
        "deliveryDuration": "TODAY",
        "deliveryDate": "2026-10-23T09:00:00.000+00:00",
        "kaspiDelivery": true
      },
      {
        "merchantId": "540017",
        "merchantName": "FORTUNA",
        "merchantRating": 4.9,
        "merchantReviewsQuantity": 130,
        "price": 638527,
        "deliveryDuration": "TODAY",
        "deliveryDate": "2026-10-23T09:00:00.000+00:00",
        "kaspiDelivery": true
      }
    ],
    "changeType": "new",
    "lowestPriceSeen": 638588,
    "highestPriceSeen": 638588,
    "firstSeenAt": "2026-10-22T23:56:04.159Z",
    "lastChangedAt": "2026-10-22T23:56:04.159Z"
  }
]
```

### 📊 Data table

| Field | Type | Description |
|---|---|---|
| `productId` | string | Kaspi product ID. |
| `title` | string | Product name. |
| `brand` | string | Product brand. |
| `brandOfficialPartner` | boolean | Whether the brand's official store is the seller. |
| `url` | string | Link to the product page. |
| `price` | number | Current price in tenge. |
| `priceFormatted` | string | Price formatted for display, with the ₸ symbol. |
| `priceWithBonus` | number | Price after Kaspi bonus deduction. |
| `creditMonthlyPrice` | number | Monthly credit payment. |
| `monthlyInstallment` | string | Monthly installment amount. |
| `loanAvailable` | boolean | Whether Kaspi financing is offered on this product. |
| `rating` | number | Average customer rating. |
| `reviewsQuantity` | number | Number of customer reviews. |
| `inStock` | boolean | Whether the product is available. |
| `stockCount` | number | Units in stock. |
| `deliveryDuration` | string | Delivery speed, e.g. TODAY or TOMORROW. |
| `category` | array of text | Category path. |
| `image` | string | Main product image URL. |
| `images` | array of text | All available product image URLs. |
| `bestMerchantId` | string | ID of the merchant holding the best price. |
| `bonusAmount` | number | Tenge saved by the Kaspi bonus (price minus price with bonus). |
| `listedAt` | string | When the product was first listed on Kaspi. |
| `offersCount` | number | Number of sellers offering the product (seller offers on). |
| `minOfferPrice` / `maxOfferPrice` | number | Lowest seller price, and the highest when all sellers fit in one answer (seller offers on). |
| `offers` | array | Cheapest sellers with merchant ID, name, rating, price, and delivery (seller offers on). |
| `changeType` | string | new, priceDown, priceUp, outOfStock, backInStock, or unchanged (tracking on). |
| `previousPrice` | number | Price at the previous run (tracking on). |
| `priceChange` / `priceChangePct` | number | Change in tenge and percent (tracking on). |
| `lowestPriceSeen` / `highestPriceSeen` | number | Lowest and highest price seen across runs (tracking on). |
| `firstSeenAt` / `lastChangedAt` | string | When the monitor first saw the product and when it last changed (tracking on). |
| `cityId` | string | City code the row was collected for. |
| `cityName` | string | City the prices apply to. |
| `currency` | string | Price currency (KZT). |
| `query` | string | The keyword that returned this product. |
| `scrapedAt` | string | Timestamp of when the row was collected. |

### 💰 Pricing

Pricing is pay per result. You only pay for the product rows the Actor actually returns, so an empty run costs nothing. Seller offers, deep search, and price tracking are included in the same per-row price. There are no subscriptions and no minimum spend. Run it once for a one-off export, or schedule it and only pay for the products you collect.

### ⭐ Enjoying Kaspi KZ Scraper?

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:20px 24px 14px;background:#FEECEA;border:1px solid #F6C9C3;border-left:5px solid #F14635;border-radius:10px 10px 0 0;color:#1C1917">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">If this Actor saved you an afternoon, leave a quick review.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other Kazakhstan sellers, resellers, and researchers find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#CB3A2C;border:1px solid #CB3A2C;border-left:5px solid #CB3A2C;border-top:none;border-radius:0 0 10px 10px;text-align:center;color:#1C1917">
<a href="https://apify.com/getascraper/kaspi-product-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ✨ Tips

- Kaspi returns the top 24 products per search. Turn on deep search and raise Max items to collect much more of a category.
- Prices, Kaspi bonus, and stock differ by city, so run the same keywords across cities to compare.
- To watch prices, turn on price tracking, give the monitor a name, and schedule the run. Add "Only save changes" to pay only for products that moved.
- Search in Russian or Kazakh, whichever matches how you think about the product.

### ❓ FAQ

##### Как узнать цены и Kaspi бонус на Kaspi.kz?

Add your keywords, pick a city, and run the Actor. Each product comes back with its price, the price after Kaspi bonus, installment options, rating, and stock.

##### Қазақ тілінде іздеуге бола ма?

Yes. Search keywords work in both Kazakh and Russian, and results include Russian product names and categories.

##### How many products can it return per keyword?

Kaspi serves up to 24 top products per search. Deep search splits the search by price band, brand, and sort order to reach far more, and category links let you start from a whole category.

##### How do I track Kaspi price drops?

Turn on "Track price changes between runs", name the monitor, and schedule the run. Every row is marked new, priceDown, priceUp, outOfStock, backInStock, or unchanged, with the previous price and the change in percent.

##### Does it include seller offers?

Yes. Turn on "Include seller offers" to get the number of sellers, the lowest and highest price, and the cheapest sellers with their rating, price, and delivery. Customer review text is not included.

##### Do I need a Kaspi account?

No. The Actor reads only public product and price data. No login or account required.

##### Is it legal to scrape Kaspi.kz?

This Actor collects publicly available product and pricing data that Kaspi already displays on its own pages. You are responsible for following Kaspi's terms of service and any applicable data-protection laws in your jurisdiction.

### 🔗 Other actors

- [Wildberries Product Catalog Scraper](https://apify.com/getascraper/wildberries-scraper) ↗ - product search and catalog data from Wildberries.
- [Yandex Market Scraper](https://apify.com/getascraper/yandex-market-scraper) ↗ - product listings and prices from Yandex Market.
- [Uzum Scraper](https://apify.com/getascraper/uzum-scraper) ↗ - marketplace product, price, and rating data from Uzbekistan's Uzum.
- [Magnit Market Scraper](https://apify.com/getascraper/magnit-market-scraper) ↗ - product and price data from KazanExpress/Magnit Market.
- [Detmir Scraper](https://apify.com/getascraper/detmir-scraper) ↗ - product listings and prices from Detmir (Детский Мир).

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/kaspi-product-scraper/changelog.md

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on Kaspi.kz, in Russian, Kazakh or English, e.g. 'iphone', 'холодильник', 'қыздырғыш'. A Kaspi product ID also works and returns that exact product.

## `startUrls` (type: `array`):

Kaspi.kz search links (https://kaspi.kz/shop/search/?text=iphone), category links (https://kaspi.kz/shop/c/smartphones/) or product links (https://kaspi.kz/shop/p/...-113137790/). Category and product links give the same rows as keywords.

## `city` (type: `string`):

Kaspi city. Prices, Kaspi bonus, stock, and delivery vary by city.

## `sort` (type: `string`):

Which products Kaspi returns first. Each order surfaces a different top slice of the results.

## `brands` (type: `array`):

Only products of these brands, written as Kaspi shows them, e.g. 'Apple', 'Samsung'. Each brand runs as its own search, so you get a full result slice per brand.

## `minPrice` (type: `integer`):

Skip products cheaper than this price in tenge. Leave empty for no minimum.

## `maxPrice` (type: `integer`):

Skip products more expensive than this price in tenge. Leave empty for no maximum.

## `minRating` (type: `number`):

Only products rated at least this many stars (0 to 5). Leave empty for no minimum.

## `minReviews` (type: `integer`):

Only products with at least this many reviews. Leave empty for no minimum.

## `inStockOnly` (type: `boolean`):

Skip products that are not in stock in the chosen city.

## `officialPartnerOnly` (type: `boolean`):

Keep only products offered by an official brand partner.

## `maxItems` (type: `integer`):

Hard limit on total product rows returned across all keywords and links. Set 0 for unlimited (free plan runs are capped at 100).

## `maxPagesPerQuery` (type: `integer`):

Result pages fetched per search (12 products per page). Kaspi serves up to 2 pages (24 top products) per search; turn on Deep search below to reach more.

## `deepSearch` (type: `boolean`):

Kaspi shows only 24 products per search. Turn this on to split each search by price band, brand and sort order and collect far more of the catalog. Uses more requests, so set Max items to the volume you want.

## `includeOffers` (type: `boolean`):

Add every merchant selling the product: offer count, lowest and highest price, and the cheapest sellers with rating, price and delivery. Runs slower because it adds one lookup per product.

## `offersLimit` (type: `integer`):

How many of the cheapest sellers to list per product when seller offers are on.

## `trackChanges` (type: `boolean`):

Remember each product's price and stock under the monitor name below and mark every row as new, priceDown, priceUp, outOfStock, backInStock or unchanged, with the previous price, change in tenge and percent, and lowest and highest price seen. Schedule the run to monitor prices.

## `monitorScope` (type: `string`):

Name of this monitor. Use a different name for each schedule so their histories do not mix, e.g. 'iphones-almaty'.

## `onlyChanges` (type: `boolean`):

With price tracking on, save only new products and products whose price or stock changed. Unchanged products are skipped and not charged.

## `proxyConfiguration` (type: `object`):

Proxy settings. The default starts on datacenter proxy and switches to Kazakhstan residential only if Kaspi keeps refusing; leave it as is for the most reliable results.

## Actor input object example

```json
{
  "searchQueries": [
    "iphone"
  ],
  "startUrls": [],
  "city": "750000000",
  "sort": "relevance",
  "brands": [],
  "inStockOnly": false,
  "officialPartnerOnly": false,
  "maxItems": 25,
  "maxPagesPerQuery": 2,
  "deepSearch": false,
  "includeOffers": false,
  "offersLimit": 5,
  "trackChanges": false,
  "monitorScope": "default",
  "onlyChanges": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "iphone"
    ],
    "startUrls": [],
    "city": "750000000",
    "sort": "relevance",
    "brands": [],
    "inStockOnly": false,
    "officialPartnerOnly": false,
    "maxItems": 25,
    "maxPagesPerQuery": 2,
    "deepSearch": false,
    "includeOffers": false,
    "offersLimit": 5,
    "trackChanges": false,
    "monitorScope": "default",
    "onlyChanges": false,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/kaspi-product-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQueries": ["iphone"],
    "startUrls": [],
    "city": "750000000",
    "sort": "relevance",
    "brands": [],
    "inStockOnly": False,
    "officialPartnerOnly": False,
    "maxItems": 25,
    "maxPagesPerQuery": 2,
    "deepSearch": False,
    "includeOffers": False,
    "offersLimit": 5,
    "trackChanges": False,
    "monitorScope": "default",
    "onlyChanges": False,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/kaspi-product-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "iphone"
  ],
  "startUrls": [],
  "city": "750000000",
  "sort": "relevance",
  "brands": [],
  "inStockOnly": false,
  "officialPartnerOnly": false,
  "maxItems": 25,
  "maxPagesPerQuery": 2,
  "deepSearch": false,
  "includeOffers": false,
  "offersLimit": 5,
  "trackChanges": false,
  "monitorScope": "default",
  "onlyChanges": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/kaspi-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/kaspi-product-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/10fHdoY606iuOSBxW/builds/zwDh684YAh8bIHuN4/openapi.json
