# Yandex Market Product Scraper (Парсер Яндекс Маркета) (`parsebird/yandex-market-scraper`) Actor

Парсер Яндекс Маркета: цены, рейтинги, отзывы, характеристики, продавцы, фото. Поиск по запросу или ссылке, фильтры по цене, категории, региону. Экспорт JSON, CSV, Excel. Оплата за результат.

- **URL**: https://apify.com/parsebird/yandex-market-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 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?

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

### Парсер Яндекс Маркета — Цены, Отзывы и Характеристики | Yandex Market Product Scraper (2026)

Extract structured product data from Yandex Market at scale — prices (including the Yandex Bank price), ratings with star distribution, full seller profiles, 30+ specifications, original-quality images, delivery options, promotions and every review. Search by keyword or paste any Yandex Market link. Pay only for results.

<table><tr>
<td style="border-left:4px solid #FC3F1D;padding:12px 16px;font-weight:600">
Выгружайте товары Яндекс Маркета за минуты — цены, рейтинги с распределением оценок, продавцы, 30+ характеристик, оригинальные фото, доставка, акции и отзывы. 70+ полей, экспорт в JSON, CSV, Excel. Фильтры по цене, категории и региону.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Apify Actor: parsebird/yandex-market-scraper — scrapes products from Yandex Market (market.yandex.ru): price, priceYaBank, rating, ratingCount, ratingDistribution, reviewCount, brand, description, 30+ specifications, images, sellerName/sellerRating, delivery, promotions, otherOffers, and optional review texts. Call via ApifyClient: client.actor("parsebird/yandex-market-scraper").call(run_input={"query": "ноутбук", "maxItems": 50, "enrichProducts": true, "includeReviews": false, "sortBy": "dpop", "region": "213"}). Inputs: query (search term OR a market.yandex.ru search/product/short link), maxItems (int, empty = all ~2700), enrichProducts (bool, default true), includeReviews (bool, default false), maxReviewsPerProduct (int, default 20, 0 = all), sortBy (dpop|aprice|dprice|rating), priceFrom / priceTo (int, rubles), categoryId (Yandex Market hid), region (geo id, default 213 = Moscow). Output: dataset of product objects with 70+ fields; reviews[] when includeReviews is on. API docs: https://docs.apify.com/api/v2 Token: https://console.apify.com/settings/integrations
```

### Что делает Парсер Яндекс Маркета?

Вы указываете поисковый запрос (или ссылку на Яндекс Маркет) — парсер обходит выдачу, открывает карточку каждого товара и возвращает структурированные данные. Сессии, пагинация, дедупликация и обход ограничений скорости — автоматически.

**Что собирается:**

- 💰 **Цены** — обычная цена, цена с Яндекс Банком, цена без скидки, размер скидки
- ⭐ **Рейтинг** — средняя оценка, число оценок, распределение по звёздам, число отзывов, «сколько купили»
- 🏪 **Продавец** — название, рейтинг, число оценок, заказов и подписчиков, возраст магазина, тип размещения (1P/3P)
- 📋 **Характеристики** — 30+ параметров, сгруппированных по разделам
- 🖼️ **Медиа** — все изображения в оригинальном качестве
- 🚚 **Доставка** — тип, сроки, даты, все доступные варианты
- 🎁 **Акции и бейджи** — «Оригинал», «Ниже рынка», скидки, промо
- 🛒 **Другие предложения** — все продавцы этого же SKU
- 📝 **Отзывы** (опционально) — достоинства, недостатки, комментарий, автор, оценка, полезность, фото

#### Режимы работы

| Режим | Как включить | Что получаете | Скорость |
|-------|--------------|---------------|----------|
| **Полный анализ** | `enrichProducts: true` (по умолчанию) | Все 70+ полей: характеристики, продавец, описание, фото | Базовая |
| **Быстрая выгрузка** | `enrichProducts: false` | Данные из выдачи: цена, название, SKU, рейтинг, доставка | В 10–20 раз быстрее |
| **С отзывами** | `includeReviews: true` | + массив `reviews` для каждого товара | Медленнее, оплата за отзыв |

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `query` | string | **Yes** | — | Search term (RU or EN), or a Yandex Market search / product / short link (`market.yandex.ru/cc/…`, `ya.cc/…`). Keyword, category, sort and price filters are auto-extracted from search links; a product link scrapes just that product. |
| `maxItems` | integer | No | all | Max products to scrape. Empty = all available (~2,700 per query). |
| `enrichProducts` | boolean | No | `true` | Visit each product page for specs, seller, images, description, promotions. |
| `includeReviews` | boolean | No | `false` | Fetch review texts. Charged separately per review. |
| `maxReviewsPerProduct` | integer | No | `20` | Reviews per product cap. `0` = all (hard limit 3,000). |
| `sortBy` | select | No | `dpop` | `dpop` (popular), `aprice` (cheap first), `dprice` (expensive first), `rating`. Price sorting is approximate. |
| `priceFrom` | integer | No | — | Minimum price in rubles. |
| `priceTo` | integer | No | — | Maximum price in rubles. |
| `categoryId` | string | No | — | Yandex Market category `hid` (e.g. `91013` laptops, `91491` phones, `90555` headphones). |
| `region` | select | No | `213` | One of 16 major Russian cities. Affects assortment, prices, delivery. |
| `proxyConfiguration` | object | No | RESIDENTIAL / RU | Yandex Market needs a Russian residential proxy. |
| `proxyUrl` | string | No | — | Single custom proxy URL override. |

#### Regions / Регионы

Москва (213), Санкт-Петербург (2), Екатеринбург (54), Казань (43), Новосибирск (65), Нижний Новгород (47), Самара (51), Ростов-на-Дону (39), Краснодар (35), Челябинск (56), Уфа (172), Пермь (50), Воронеж (193), Волгоград (38), Красноярск (62), Омск (66).

### Output example

```json
{
  "modelId": 1657931241,
  "marketSku": "103754395898",
  "wareId": "JoXFLsGB_fZ4iRSc4wMYbg",
  "oskuId": 4768204814,
  "title": "Ноутбук Honor MagicBook X14 GDG-X, i3 1315U/8Gb/SSD512Gb/UHDG/14\" 1920x1200 IPS/Dos/серый",
  "brand": "HONOR",
  "price": 54366,
  "currency": "RUR",
  "priceYaBank": 53279,
  "priceBeforeDiscount": 62430,
  "discountPercent": 15,
  "rating": 4.5,
  "ratingCount": 2,
  "reviewCount": 1,
  "purchaseCount": 15,
  "ratingDistribution": { "1": 0, "2": 0, "3": 0, "4": 1, "5": 1 },
  "categoryName": "Ноутбуки HONOR",
  "breadcrumbs": [
    { "position": "1", "name": "Электроника", "url": "/category/elektronika" }
  ],
  "sellerName": "и с точкой",
  "sellerRating": 4.9,
  "sellerOrdersCount": "1.1K",
  "placementType": "3P",
  "isAvailable": true,
  "delivery": { "deliveryType": "PICKUP", "deliveryDays": 2, "deliveryText": "Послезавтра, ПВЗ" },
  "images": ["https://avatars.mds.yandex.net/get-mpic/15199813/2a0000019811fc4a373dd05a92fa09056fec/orig"],
  "specifications": [
    { "name": "Процессор", "value": "Intel Core i3 1315U" },
    { "name": "Оперативная память", "value": "8 ГБ" }
  ],
  "otherOffers": [
    { "wareId": "M6Vess_c0KErkrCKQc0uvQ", "price": 62430, "shopId": 431782 }
  ],
  "productUrl": "https://market.yandex.ru/product--x/1657931241?sku=103754395898",
  "reviews": [
    {
      "reviewId": "458204775",
      "author": "олег перковский",
      "rating": 4,
      "date": "20 августа",
      "pros": "Новый",
      "cons": "Не стоит операционка. Хотя в описании windows 10.",
      "helpfulCount": 0
    }
  ],
  "scrapedAt": "2026-08-28T05:52:50.195407+00:00"
}
```

When `enrichProducts` is `false`, each product keeps the search-level fields (`title`, `price`, `priceYaBank`, `modelId`, `marketSku`, `wareId`, `hid`, `shopId`, `rating`, `ratingCount`, `isAvailable`, `isExpress`, `sponsored`, `featureBadges`, `delivery`, `image`, `productUrl`, `searchPosition`, `scrapedAt`). If enrichment fails for one product (timeout or a temporary block), that product is still saved with its search-level fields and an `enrichmentFailed: true` flag — no data is lost.

### Use cases

- **Price monitoring** — track prices and the Yandex Bank price across sellers and regions
- **Competitive analysis** — see every seller offering the same SKU, their ratings and delivery terms
- **Catalog building** — export specs, images and descriptions for thousands of products
- **Review mining** — collect pros/cons and comments for sentiment analysis
- **Assortment research** — compare what's available and at what price in different Russian cities
- **Market research feeds** — ready-to-load JSON for BI tools and databases

### How it works

1. Your query is classified as a keyword, a search link, or a product link (short links are resolved first).
2. Pages are fetched over plain HTTP (Chrome TLS fingerprint) through Apify Proxy's cheap automatic pool. The chosen region is applied via the URL and a cookie.
3. Search result pages are paginated and de-duplicated until `maxItems` (or all available offers) are collected.
4. With enrichment on, each product page is fetched and parsed for specifications, seller, images, description, promotions and other offers.
5. With `includeReviews` on, the reviews Yandex renders on the product and reviews pages are attached to each product.
6. If Yandex Market ever challenges the HTTP requests, the actor automatically switches to a real browser on a Russian residential proxy for the rest of the run.
7. Progress is checkpointed, so a platform migration mid-run resumes without duplicating or re-charging.

### Pricing

| Event | Free | Bronze | Silver | Gold |
|-------|------|--------|--------|------|
| `product` (per product) | $0.00499 | $0.00399 | $0.00349 | $0.00299 |
| `review` (per review) | $0.00399 | $0.00299 | $0.00249 | $0.00199 |

A `product` event fires for every product saved (search-level or enriched). A `review` event fires for each review, only when `includeReviews` is on. Example: 1,000 enriched products with no reviews on the Free plan ≈ $4.99.

### FAQ

**Do I need a Yandex account?**
No. The scraper works anonymously.

**How many reviews are returned per product?**
`includeReviews` collects the reviews Yandex Market renders on the product and reviews pages — typically the most recent / most helpful ones, up to `maxReviewsPerProduct`. Products with hundreds of reviews return a sample, not the full history.

**What proxy do I need?**
The default (Apify Proxy, automatic pool) is enough for the fast HTTP tier and is the cheapest option. If Yandex Market starts challenging the HTTP requests, the actor falls back to a real browser on a Russian residential proxy on its own. You can disable that fallback with `enableBrowserFallback: false`, or supply your own proxy via `proxyUrl`.

**How many products can I get per query?**
Yandex Market itself stops paginating around 2,700 offers. Narrow the query with `categoryId`, `priceFrom`/`priceTo` or `sortBy` to reach items beyond that.

**Is price sorting exact?**
No. Yandex Market's price sorting is approximate — results are roughly, not strictly, ordered.

**How fast is it?**
On the HTTP tier both modes are fast — roughly 40 enriched products or hundreds of search-only products per minute. If a run falls back to the browser it slows to a few products per second. For very large catalogs, use a sensible `maxItems` or split across scheduled runs.

**Does the region really change prices?**
Yes. Assortment, prices and delivery estimates differ by city. Moscow has the widest selection.

**Can I scrape a single product?**
Yes — paste its Yandex Market link as the `query`.

**Can I schedule runs?**
Yes. Use Apify Schedules to run at any interval.

### Legal and compliance

This actor collects only publicly available data from Yandex Market product and search pages and does not access private or personal account information. You are responsible for using the exported data in compliance with Yandex Market's terms, applicable laws (including data-protection and database rights), and any contractual obligations. Use it for lawful purposes such as price monitoring, market research and analytics.

# Actor input Schema

## `query` (type: `string`):

A search term in Russian or English (e.g. "ноутбук", "iPhone 16"), or a Yandex Market link. Search links, product links and shortened share links (market.yandex.ru/cc/…, ya.cc/…) all work — keyword, category, sort and price range are auto-extracted from search links; a product link scrapes just that product.

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

Maximum number of products to scrape. Leave empty for all available offers for the query (Yandex Market itself stops around 2,700).

## `enrichProducts` (type: `boolean`):

Open every product page for full specifications, description, seller profile, all images, promotions and delivery options. Turn off for a 10–20x faster search-only run (price, title, SKU, rating, delivery).

## `includeReviews` (type: `boolean`):

Fetch review texts (pros, cons, comment, author, rating, helpful votes, photos) for each product — the recent / most helpful reviews Yandex Market renders, up to the cap below. Charged separately per review.

## `maxReviewsPerProduct` (type: `integer`):

Cap on reviews fetched per product when "Include product reviews" is on. Set 0 for all reviews (hard limit 3,000).

## `sortBy` (type: `string`):

Yandex Market's price sorting is approximate — results are roughly, not strictly, ordered by price.

## `priceFrom` (type: `integer`):

Only products priced at or above this amount, in rubles.

## `priceTo` (type: `integer`):

Only products priced at or below this amount, in rubles.

## `categoryId` (type: `string`):

Restrict the search to one Yandex Market category. Use the category's `hid` number (visible in a category URL as `hid=…`), e.g. 91013 for laptops, 91491 for mobile phones, 90555 for headphones.

## `region` (type: `string`):

One of 16 major Russian cities. Region affects which products appear, prices, delivery estimates and seller availability. Set via cookies, so it works regardless of proxy location.

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

Used for the fast HTTP tier. The default (Apify Proxy, automatic group) is the cheapest option. If Yandex challenges the HTTP requests, the actor automatically falls back to a residential browser for the rest of the run (see below).

## `enableBrowserFallback` (type: `boolean`):

If Yandex Market blocks the cheap HTTP requests, spin up a real browser on a Russian residential proxy and continue. Turn this off to keep costs strictly minimal — the run will simply stop early if HTTP gets blocked.

## `proxyUrl` (type: `string`):

Override the proxy with a single custom proxy URL (http://user:pass@host:port), used for every request. Disables the automatic residential fallback.

## `debug` (type: `boolean`):

Store the first search / product / reviews HTML pages in the key-value store for troubleshooting.

## Actor input object example

```json
{
  "query": "ноутбук",
  "maxItems": 10,
  "enrichProducts": false,
  "includeReviews": false,
  "maxReviewsPerProduct": 20,
  "sortBy": "dpop",
  "region": "213",
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "enableBrowserFallback": true,
  "debug": false
}
```

# 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 = {
    "query": "ноутбук",
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/yandex-market-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 = {
    "query": "ноутбук",
    "maxItems": 10,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/yandex-market-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 '{
  "query": "ноутбук",
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call parsebird/yandex-market-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/yandex-market-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/VsZApol4W0n4tfwC6/builds/6uOxpjeIOSQNObkQ2/openapi.json
