# Kaspi Listings Scraper (`piotrv1001/kaspi-listings-scraper`) Actor

The Kaspi.kz Product Scraper extracts product listings from Kazakhstan's largest marketplace by keyword, category, or URL, capturing prices, ratings, stock, images, full specs, per-seller offers with delivery options, and customer reviews — ideal for price monitoring, repricing, and market research.

- **URL**: https://apify.com/piotrv1001/kaspi-listings-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 17 total users, 7 monthly users, 98.1% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 product listings

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🇰🇿 Kaspi.kz Product Scraper

Easily extract product data from [Kaspi.kz](https://kaspi.kz/shop) — Kazakhstan's largest e-commerce marketplace with millions of products across electronics, fashion, home goods, and more. The **Kaspi.kz Product Scraper** lets you collect structured product data for price monitoring, market research, and competitor analysis, with optional deep data: full specifications, per-seller offers, and customer reviews.

### ✨ Features

- 🔍 **Search & category scraping** — enter keywords (e.g. `iphone`) or paste Kaspi.kz category/search/product URLs.
- 🏷️ **Rich listing data** — title, brand, price (KZT), bonus-adjusted price, monthly installment, rating, review count, stock status, images, and category breadcrumb.
- 📋 **Product details** *(optional)* — full grouped specifications, description, and gallery images from each product page.
- 💰 **Seller offers** *(optional)* — the complete price ladder for each product: every marketplace seller with their price, rating, and delivery options. Perfect for price monitoring and repricing.
- ⭐ **Customer reviews** *(optional)* — up to 100 most popular reviews per product with pros/cons and the full rating histogram.
- 🏙️ **City-aware** — prices and stock on Kaspi.kz vary by city; choose Almaty, Astana, Shymkent, and more.
- ⚡ **Fast & efficient** — listing-only runs scrape hundreds of products per minute.

### 🛠️ How It Works

1. **Enter search queries** — e.g. `iphone`, `холодильник`, or any keyword, and/or paste Kaspi.kz category, search, or product URLs.
2. **Pick optional data** — toggle product details, seller offers, or reviews if you need deeper data (each adds a small per-product cost).
3. **Run the scraper** — get structured JSON results in minutes. Download as JSON, CSV, Excel, or HTML, or fetch via API.

### 📊 Sample Output Data

```json
[
    {
        "id": "145467625",
        "url": "https://kaspi.kz/shop/p/apple-iphone-17-pro-256gb-nanosim-esim-oranzhevyi-145467625/?c=750000000",
        "title": "Apple iPhone 17 Pro 256Gb NanoSIM+eSIM оранжевый",
        "image": "https://resources.cdn-kaspi.kz/img/m/p/p18/p96/64168413.png?format=preview-large",
        "brand": "Apple",
        "price": 754857,
        "priceFormatted": "754 857 ₸",
        "priceWithBonus": 732212,
        "monthlyInstallment": "31 453 ₸",
        "currency": "KZT",
        "rating": 4.9,
        "reviewsCount": 1529,
        "inStock": true,
        "category": ["Телефоны и гаджеты", "Смартфоны"],
        "images": ["https://resources.cdn-kaspi.kz/img/m/p/p18/p96/64168413.png?format=preview-large"],
        "city": "750000000",
        "offersCount": 58,
        "offers": [
            {
                "merchantId": "9439002",
                "merchantName": "SMART_STORE",
                "merchantRating": 4.9,
                "merchantReviewsCount": 18,
                "price": 754857,
                "kaspiDelivery": true,
                "deliveryOptions": { "TO_DOOR": { "deliveryCost": 995.0 } }
            }
        ],
        "reviews": [
            {
                "author": "Ануар",
                "date": "10.10.2025",
                "rating": 5,
                "text": "Отличный телефон, быстрая доставка."
            }
        ],
        "reviewsSummary": {
            "global": 4.9,
            "statistic": [{ "rate": 5, "count": 2833 }]
        }
    }
]
```

### 📋 Data Fields

| Field                           | Description                                                               |
| ------------------------------- | ------------------------------------------------------------------------- |
| `id`                            | Kaspi.kz product ID                                                       |
| `url`                           | Product page URL                                                          |
| `title`, `brand`                | Product name and brand                                                    |
| `price`                         | Current price in KZT (integer)                                            |
| `priceWithBonus`                | Price after Kaspi bonus deduction                                         |
| `monthlyInstallment`            | Monthly installment amount                                                |
| `rating`, `reviewsCount`        | Average rating and number of reviews                                      |
| `inStock`                       | Stock availability                                                        |
| `category`                      | Category breadcrumb                                                       |
| `images`                        | Product image URLs                                                        |
| `description`, `specifications` | Full description and grouped spec table *(with product details enabled)*  |
| `offers`, `offersCount`         | All seller offers with prices and delivery *(with seller offers enabled)* |
| `reviews`, `reviewsSummary`     | Customer reviews and rating histogram *(with reviews enabled)*            |

### 💰 How much does it cost to scrape Kaspi.kz?

You only pay for what you extract:

| Event                | Price      | What you get                                      |
| -------------------- | ---------- | ------------------------------------------------- |
| Product listing item | **$0.001** | One product from search/category results          |
| Product detail       | **$0.003** | Full specs, description & gallery for one product |
| Seller offers        | **$0.002** | All seller offers for one product                 |
| Product reviews      | **$0.002** | Up to 100 reviews for one product                 |

**Examples:** 1,000 products from search results ≈ **$1.00**. 100 products with full details, all seller offers, and reviews ≈ **$0.80**.

### 💡 Tips

- Keep the optional toggles **off** for the cheapest and fastest runs — listing data already includes prices, ratings, and images.
- Enable **seller offers** for price monitoring — it returns every seller's price for each product, so you can track the buy-box and undercut competitors.
- Use the **city** setting to compare prices across Kazakhstan's regions — run the scraper once per city.
- Use **Max items** to control run size and cost precisely.
- Schedule the scraper on Apify to track prices daily and feed the data into your own tools via the API.

### ❓ FAQ

**Is it legal to scrape Kaspi.kz?**
This scraper collects only publicly available product data. It does not collect personal data beyond public review author names. Always review the target website's terms of service and consult a lawyer for your specific use case.

**Which cities are supported?**
Almaty (default), Astana, Shymkent, Karaganda, Aktobe, and Ust-Kamenogorsk. Prices, stock, and delivery options are city-specific.

**Can I scrape an entire category?**
Yes — paste a category URL (e.g. `https://kaspi.kz/shop/c/smartphones/`) and set Max items. The scraper automatically partitions large categories to retrieve products beyond the site's pagination limits.

**Something not working?**
Open an issue in the **Issues** tab of the Actor — we respond quickly and also build custom solutions on request.

Start tracking Kazakhstan's biggest marketplace with the **Kaspi.kz Product Scraper** today! 🚀

# Actor input Schema

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

Keywords to search for on Kaspi.kz, e.g. `iphone` or `холодильник`. Each query returns matching products with prices, ratings, and images.

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

Kaspi.kz URLs to scrape — category pages (`https://kaspi.kz/shop/c/smartphones/`), search pages, or direct product pages (`https://kaspi.kz/shop/p/...`).

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

Maximum number of products to scrape across all queries and URLs.

## `scrapeProductDetails` (type: `boolean`):

Visit each product page to extract full specifications, description, and gallery images. Slower and costs more per item.

## `scrapeOffers` (type: `boolean`):

Collect all marketplace seller offers for each product — per-seller prices, seller ratings, and delivery options. Great for price monitoring.

## `scrapeReviews` (type: `boolean`):

Collect up to 100 most popular customer reviews per product, including the rating histogram.

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

Kaspi.kz city — prices, stock, and delivery options vary by city.

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

Proxy settings. Keep residential proxies enabled — the target site rate-limits datacenter IPs, so other proxy types will likely get blocked.

## Actor input object example

```json
{
  "searchQueries": [
    "iphone"
  ],
  "maxItems": 50,
  "scrapeProductDetails": false,
  "scrapeOffers": false,
  "scrapeReviews": false,
  "city": "750000000",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "searchQueries": [
        "iphone"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/kaspi-listings-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"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call piotrv1001/kaspi-listings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=piotrv1001/kaspi-listings-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/CBGjHHaIJElZlTbOq/builds/5ZrbXIJb0Fci3Tgf5/openapi.json
