# Kaspi.kz Products Scraper - Prices, Ratings & Reviews (`rishideva/kaspi-products-scraper`) Actor

Kaspi.kz products for any search query and any of 248 cities in Kazakhstan: price, sale price, rating, reviews count, stock, delivery, brand, category and links. Export to Excel, CSV, JSON.

- **URL**: https://apify.com/rishideva/kaspi-products-scraper.md
- **Developed by:** [Rishi Deva](https://apify.com/rishideva) (community)
- **Categories:** E-commerce, Lead generation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.50 / 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.

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 Products Scraper — Prices, Ratings & Reviews

Get a clean table of **Kaspi.kz** products for any search query and any city in Kazakhstan: price, sale price, rating, number of reviews, stock, delivery time, brand, category and direct links. No browser, no login, no coding.

**По-русски — ниже ⬇️**

### What you get

| Field | Example |
|---|---|
| `title` | Смартфон Apple iPhone 16 128Gb черный |
| `price` / `salePrice` | 1399990 / 1399990 (KZT) |
| `priceMinusBonus` | 1357991 |
| `rating` / `reviewsCount` | 4.8 / 7 |
| `stock` | 1 |
| `deliveryDuration` | TODAY |
| `brand`, `category` | Apple, Телефоны и гаджеты / Смартфоны |
| `position` | place in Kaspi search results |
| `url`, `reviewsUrl`, `imageUrl` | links to the product, its reviews and photo |
| `city`, `query`, `scrapedAt` | what and where was searched, and when |

Export to Excel, CSV, JSON or Google Sheets, or call it via API.

### Who uses it

- **Kaspi sellers** — watch competitors' prices and your position in search every morning (use Apify Schedules).
- **Brands and distributors** — monitor retail prices across cities.
- **Analysts and agencies** — research the Kazakhstan e-commerce market.

### Input

```json
{
  "queries": ["iphone 15", "чайник"],
  "city": "Астана",
  "maxItems": 100
}
```

- **queries** — what to search, exactly as in the Kaspi search box.
- **city** — prices and stock differ by city (e.g. the same iPhone can cost differently in Almaty and Astana). 248 cities and towns: use the name (Алматы, Астана, Шымкент, Караганда…) or the 9-digit Kaspi city code.
- **maxItems** — maximum products per query.

### Pricing

Pay only for products you get: **$1.50 per 1,000 products**. If Kaspi is unreachable, the run fails honestly and nothing is charged.

### Notes

- Data is collected from public Kaspi.kz search pages through residential proxies.
- Results follow Kaspi's own search order and may change during the day.
- Grocery items (Kaspi Magnum) are fully covered for Almaty; in other cities grocery results may be limited.

***

## Парсер товаров Kaspi.kz — цены, рейтинги, отзывы

Таблица товаров **Kaspi.kz** по любому запросу и в любом городе Казахстана: цена, цена со скидкой, рейтинг, количество отзывов, наличие, срок доставки, бренд, категория и ссылки. Без браузера, без входа в аккаунт, без программирования.

### Для кого

- **Продавцы на Kaspi** — каждое утро смотреть цены конкурентов и свою позицию в поиске (Apify Schedules — запуск по расписанию).
- **Бренды и дистрибьюторы** — контроль розничных цен по городам.
- **Аналитики и агентства** — исследование рынка e-commerce Казахстана.

### Что указать

- **queries** — что искать, как в строке поиска Kaspi;
- **city** — город (цены и наличие отличаются): название или 9-значный код Kaspi, 248 городов и посёлков;
- **maxItems** — сколько товаров максимум на запрос.

### Цена

Оплата только за полученные товары: **$1.50 за 1000 товаров**. Если Kaspi недоступен, запуск честно завершается ошибкой и ничего не списывается.

Экспорт в Excel, CSV, JSON, Google Sheets или через API.

# Actor input Schema

## `queries` (type: `array`):

What to search on Kaspi.kz, one query per line - exactly as you would type it in the Kaspi search box. Russian, Kazakh or English. / Что искать на Kaspi.kz, по одному запросу в строке.

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

Prices and stock on Kaspi depend on the city. Use the city name as on Kaspi (Алматы, Астана, Шымкент, Караганда, Актобе, Атырау, Актау, Павлодар, Тараз, Костанай, Усть-Каменогорск, Семей, Кызылорда, Уральск, Петропавловск...) or its 9-digit Kaspi code. 248 cities and towns supported. / Город: цены и наличие зависят от города.

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

Stop after this many products for each query (search order, as on Kaspi). / Сколько товаров собрать максимум на каждый запрос.

## Actor input object example

```json
{
  "queries": [
    "iphone 15",
    "чайник"
  ],
  "city": "Алматы",
  "maxItems": 100
}
```

# Actor output Schema

## `results` (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 = {
    "queries": [
        "iphone 15",
        "чайник"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("rishideva/kaspi-products-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 = { "queries": [
        "iphone 15",
        "чайник",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("rishideva/kaspi-products-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 '{
  "queries": [
    "iphone 15",
    "чайник"
  ]
}' |
apify call rishideva/kaspi-products-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rishideva/kaspi-products-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/YSLUmvwxo7z3FDMsb/builds/2yy8tFMBYYZ63pG5z/openapi.json
