# RU Marketplace Search: Wildberries + Avito + Yandex Market (`getascraper/ru-marketplace-search`) Actor

Search Wildberries and Yandex Market by keyword, and scan Avito by category, to get back a single unified product dataset: title, price, rating, reviews, seller, and stock status, tagged by marketplace. Built for cross-marketplace price comparison and catalog research.

- **URL**: https://apify.com/getascraper/ru-marketplace-search.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 product records

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

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

## 🛒 RU Marketplace Search: Wildberries, Авито и Яндекс Маркет

<table width="100%">
<tr>
<td colspan="2" style="padding:14px 18px;background:#FAF1E6;border-top:3px solid #B45309;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-radius:8px 8px 0 0">
<span style="font-size:16px;font-weight:700;color:#1C1917">One combo family, two ways to read Russian marketplaces.</span> <span style="font-size:15px;color:#57534E">Search products across three marketplaces at once, or profile the sellers behind them. Pick the Actor that matches what you need.</span>
</td>
</tr>
<tr>
<td colspan="2" style="padding:10px 14px;background:#B45309;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">RU Marketplace combo suite</span>
<span style="color:#FCE3BE;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Wildberries, Avito, and Yandex Market: products and sellers</span>
</td>
</tr>
<tr>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:50%;background:#FAF1E6;border-radius:0 0 0 8px">
<span style="white-space:nowrap"><a href="https://apify.com/getascraper/ru-marketplace-search" style="color:#B45309;text-decoration:none;font-weight:700;font-size:13px">🛒 Product Search</a></span><br>
<span style="color:#B45309;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:50%;background:#FFFFFF;border-radius:0 0 8px 0">
<span style="white-space:nowrap"><a href="https://apify.com/getascraper/ru-marketplace-seller-intel" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">🏢 Seller Intel</a></span><br>
<span style="color:#57534E;font-size:11px">Company and catalog dossiers on the seller behind a listing</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#FAF1E6;border:1px solid #F0DBB8;border-top:4px solid #B45309;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">See one product's price on Wildberries, Yandex Market, and Avito side by side, from a single run.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Search by keyword or browse an Avito category, and get back one dataset tagged by marketplace: price, rating, reviews, seller, and stock.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F0DBB8;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#B45309">🌐 Three marketplaces, one dataset</span><br>
<span style="font-size:12px;color:#57534E">Every row is tagged wildberries, yandex_market, or avito, so you compare like for like</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F0DBB8;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#B45309">🏷️ Price and discount together</span><br>
<span style="font-size:12px;color:#57534E">Current price, original price, and discount percent land in the same row</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F0DBB8;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#B45309">🧾 Rating, seller, and stock</span><br>
<span style="font-size:12px;color:#57534E">Wildberries and Yandex Market rows include rating, reviews, seller name, and stock status</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F0DBB8;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#B45309">📍 Avito by category</span><br>
<span style="font-size:12px;color:#57534E">Point it at a category page, like phones, and scan every current listing there</span>
</td>
</tr>
</table>

Search **Wildberries** and **Яндекс Маркет** (Yandex Market) by keyword, and scan **Авито** (Avito) by category, in the same run. Every result lands in one dataset, tagged by marketplace, so you can compare the same product's price, rating, and stock without opening three separate tools. Built for resellers, dropshippers, and market researchers who price-check across Russia's biggest marketplaces.

### 🔍 What does RU Marketplace Search do?

This Actor runs a single product search across three Russian marketplaces and returns one combined, comparable dataset.

Give it search keywords and it checks them against **Wildberries** and **Yandex Market**. Each match returns title, price, original price, discount, rating, review count, seller name, and stock status. Give it Avito category URLs, such as a city's phone or electronics listings. It adds current **Авито** listings to the same dataset: title, price, photo, pickup location, and the seller's own rating and trust badges. Every row is tagged with its marketplace and the keyword or category that found it. One run gives you a side-by-side price comparison, instead of three separate exports to merge by hand. It runs on the Apify platform with scheduling, integrations (Make, Zapier, Google Sheets), and run monitoring built in.

<table width="100%"><tr>
<td style="padding:12px 18px;background:#FAF1E6;border-left:4px solid #B45309">
<span style="font-size:15px;color:#1C1917">&#9889; <b>One run, three marketplaces.</b> Mix keywords and Avito categories in the same input, and every result comes back tagged, ready to filter or sort by marketplace.</span>
</td>
</tr></table>

### 💡 Why use RU Marketplace Search?

- **I am a reseller** comparing the same electronics across Wildberries, Yandex Market, and Avito. I always know which marketplace has the best price before I list or restock.
- **I am a dropshipper** checking supplier prices across all three sites in one run, instead of babysitting three separate tabs every morning.
- **I am a market researcher** building a cross-marketplace price index. I track how the same product category is priced across Russia's three largest platforms.
- **I am a category buyer** scanning an Avito city listing, like phones or appliances, to spot underpriced stock before a competitor does.

### 🚀 How to use RU Marketplace Search

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#FAF1E6;border:1px solid #F0DBB8;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#B45309;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">Type search terms for Wildberries and Yandex Market, in Russian or English.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FAF1E6;border:1px solid #F0DBB8;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#B45309;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Add Avito categories</span><br>
<span style="font-size:12px;color:#57534E">Paste one or more Avito category URLs, like a city's phone or electronics listings.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FAF1E6;border:1px solid #F0DBB8;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#B45309;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Pick marketplaces and run</span><br>
<span style="font-size:12px;color:#57534E">Choose which of the three to search, set a limit per marketplace, and start.</span>
</td>
</tr>
</table>

### ⚙️ Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `keywords` | array of search keywords | No | Product keywords to search on Wildberries and Yandex Market, in Russian or English, such as `робот пылесос` or `iphone 15`. Avito uses category URLs instead of keywords, see `avitoCategoryUrls` below. |
| `avitoCategoryUrls` | array of Avito category URLs | No | Avito category pages to scan, such as `https://www.avito.ru/moskva/telefony`. Avito's own search box does not return reliable results over a stable connection, so this Actor browses real category listings instead. |
| `marketplaces` | array of marketplaces | No | Which of the three marketplaces to search: Wildberries, Yandex Market, or Avito. All three are selected by default. |
| `maxItemsPerMarketplace` | integer | No | Maximum products per marketplace for the whole run, counted across all keywords and categories combined. Set 20 and each marketplace returns at most 20 products total. Defaults to 50. |
| `region` | enum | No | Wildberries warehouse region used for pricing and stock. Does not change Yandex Market or Avito results. Defaults to Moscow. |
| `debugLogging` | boolean | No | Print extra step-by-step detail to the run log for troubleshooting. Off by default. |
| `proxyConfiguration` | object | No | Proxy used for the Avito portion of the run. Russian residential (the default) is required for reliable Avito access. |

### 📦 Output

Download the results as a spreadsheet, a table, or structured data ready for your own systems. Each row is one product, tagged by marketplace:

```json
[
  {
    "marketplace": "wildberries",
    "sourceQuery": "робот пылесос",
    "title": "Робот-пылесос Xiaomi Mi Robot Vacuum-Mop 2",
    "price": 24990,
    "oldPrice": 32990,
    "discountPercent": 24,
    "url": "https://www.wildberries.ru/catalog/24601743/detail.aspx",
    "rating": 4.6,
    "reviewCount": 3812,
    "sellerName": "ООО Техно Импорт",
    "inStock": true,
    "supplierId": 118292,
    "brand": "Xiaomi",
    "scrapedAt": "2026-07-17T09:12:03.000Z"
  },
  {
    "marketplace": "yandex_market",
    "sourceQuery": "робот пылесос",
    "title": "Робот-пылесос Polaris PVCS 0826S",
    "price": 18490,
    "oldPrice": 21990,
    "discountPercent": 16,
    "url": "https://market.yandex.ru/product--robot-pylesos-polaris-pvcs-0826s/1234567890",
    "imageUrl": "https://avatars.mds.yandex.net/get-mpic/123456/img_id7890/orig",
    "rating": 4.7,
    "reviewCount": 542,
    "sellerName": "Polaris Store",
    "inStock": true,
    "businessId": 984512,
    "deliveryEstimate": "Завтра",
    "specSummary": "Сухая уборка, лазерная навигация, до 150 минут работы",
    "scrapedAt": "2026-07-17T09:12:41.000Z"
  },
  {
    "marketplace": "avito",
    "sourceQuery": "moskva/telefony",
    "title": "Samsung Galaxy S25, 12/256 ГБ, SIM + eSIM",
    "price": 43000,
    "url": "https://www.avito.ru/moskva/telefony/samsung_galaxy_s25_12_256_gb_sim_esim_1234567890",
    "imageUrl": "https://80.img.avito.st/image/1/1.example-photo-id",
    "location": "Багратионовская, 6–10 мин.",
    "rating": 5,
    "reviewCount": 1107,
    "sellerLogoUrl": "https://80.img.avito.st/image/1/1.example-logo-id",
    "badges": ["Реквизиты проверены"],
    "scrapedAt": "2026-07-17T09:13:15.000Z"
  }
]
````

Every row carries a photo, and every row carries a trust signal: Wildberries and Yandex Market show a per-product rating and review count, Avito shows the seller's own aggregate rating and review count (Avito listings are one-off, so the seller's track record is the real equivalent of a product rating). Avito rows also add pickup location, a storefront logo when the seller runs a branded shop, and verification badges when Avito shows any.

### 📊 Output data fields

| Field | Type | Description |
| --- | --- | --- |
| `marketplace` | string | Which marketplace this row came from: `wildberries`, `yandex_market`, or `avito`. |
| `sourceQuery` | string | The keyword that found this row on Wildberries or Yandex Market, or the category URL that found it on Avito. |
| `title` | string | Product or listing title, as shown on the marketplace. |
| `price` | number | Current price in rubles. |
| `oldPrice` | number | Original price before a discount. Present on Wildberries and Yandex Market rows when a discount applies. |
| `discountPercent` | number | Discount percentage off the original price. Wildberries and Yandex Market rows only. |
| `url` | string | Direct link to the product or listing. |
| `imageUrl` | string | Product photo URL. Present on all three marketplaces; Wildberries and Avito URLs are verified working before being included, so you never get a broken image link. |
| `rating` | number | Wildberries/Yandex Market: average product rating out of 5. Avito: the seller's own aggregate rating (listings are one-off, so this is the closest real trust equivalent). |
| `reviewCount` | number | Number of reviews behind the rating, same per-marketplace meaning as `rating` above. |
| `sellerName` | string | Seller or supplier name. Wildberries and Yandex Market rows only. |
| `inStock` | boolean | True when the product currently shows as available. Wildberries and Yandex Market rows only. |
| `supplierId` | number | Wildberries' own supplier identifier. Wildberries rows only. |
| `brand` | string | Product brand name. Wildberries rows only. |
| `businessId` | number | Yandex Market's own shop identifier. Yandex Market rows only. |
| `deliveryEstimate` | string | Yandex Market's own delivery time estimate. Yandex Market rows only. |
| `specSummary` | string | Short spec summary pulled from Yandex Market's own product description. Yandex Market rows only. |
| `location` | string | Pickup area and travel time (e.g. "Багратионовская, 6–10 мин."). Avito rows only. |
| `postedText` | string | How long ago the listing was posted, in Avito's own words. Shown when Avito displays it (mostly for individual, non-shop sellers). Avito rows only. |
| `sellerLogoUrl` | string | The seller's storefront logo, present when they run a branded shop rather than a one-off personal listing. Avito rows only. |
| `badges` | array of strings | Avito's own trust badges for the seller (e.g. "Реквизиты проверены" = details verified). Avito rows only. |
| `scrapedAt` | string | Timestamp when this row was collected. |

### 💰 Pricing

This Actor uses pay-per-result pricing: you pay only for the product rows you actually get back, and nothing for an empty run. There is no subscription and no minimum spend. Use `maxItemsPerMarketplace` to control how many results a run returns.

### ⭐ Enjoying RU Marketplace Search: Wildberries, Авито и Яндекс Маркет?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#FAF1E6;border:1px solid #F0DBB8;border-left:5px solid #B45309;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Turning three separate marketplace searches into one comparable spreadsheet?</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other resellers, dropshippers, and researchers comparing Russian marketplaces find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#B45309;border:1px solid #F0DBB8;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/ru-marketplace-search/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

- Combine `keywords` and `avitoCategoryUrls` in the same run to cover all three marketplaces at once.
- Keep `maxItemsPerMarketplace` low while testing a new keyword, then raise it once you know what it returns.
- Point `avitoCategoryUrls` at a specific city category, like `moskva/telefony`, for the most current results.
- Filter the combined dataset by `marketplace` after the run to compare offers like for like.
- Want a table of just one marketplace? Run with only that marketplace selected, and the whole output is that marketplace.
- Match `region` to your buyers' location for accurate Wildberries pricing and stock.

### ❓ FAQ, disclaimers, and support

**Как сравнить цены на Wildberries, Авито и Яндекс Маркет?** Add your search keywords, or an Avito category URL, and run the Actor. It returns one dataset with matches from all three marketplaces, tagged so you can compare prices side by side.

**Можно ли искать на Avito по ключевому слову?** Not reliably, no. Avito's own free-text search does not return real listing data over a stable connection. This Actor scans real category pages instead, which works well for city and category-level price checks.

**Why can't I search Avito by keyword like the other two?** Avito's own keyword search does not return real listing data over a stable connection. Category browsing does, so you still get current Avito listings for any city or category you choose.

**Does it get blocked by the marketplaces?** Each marketplace is handled with the connection setup it actually needs, so runs complete reliably without manual retries.

**Why is Ozon not included?** Ozon sits behind a CAPTCHA wall that this Actor does not attempt to bypass. Wildberries, Yandex Market, and Avito are the three marketplaces in scope.

**How fresh is the data?** Every run fetches current listings directly from all three marketplaces. There is no cached or stale data.

**Do Avito rows have the same fields as Wildberries and Yandex Market rows?** Mostly. Avito rows come from category listings rather than individual product pages, so they don't have `inStock`, `brand`, or `businessId`. They do carry a photo, the seller's own rating and review count, pickup location, and trust badges. Wildberries and Yandex Market rows additionally include stock status and a per-product rating.

**Is scraping this data legal?** This Actor collects publicly available listing data. You are responsible for complying with each marketplace's Terms of Service and applicable laws in your use of the data.

**Found a bug or need a field added?** Open an issue on the Actor's **Issues** tab. Custom solutions are available on request.

### 🔗 Other actors

- [Wildberries Scraper: Product search, catalog, and prices](https://apify.com/getascraper/wildberries-scraper) ↗ - scrapes Wildberries product listings and pricing at scale.
- [Wildberries Seller Scraper: Supplier Intel & Stats](https://apify.com/getascraper/wildberries-seller-scraper) ↗ - profiles a Wildberries seller's registered company and catalog stats.
- [Wildberries Niche Analyzer: аналитика ниш WB](https://apify.com/getascraper/wildberries-niche-analyzer) ↗ - scores any Wildberries keyword as a market: sellers, competition, and price bands.
- [Avito Auto Scraper: Парсер Авито Авто](https://apify.com/getascraper/avito-auto-scraper) ↗ - scrapes Avito vehicle listings, prices, and dealer inventory by city.
- [Yandex Market Scraper: Парсер Яндекс Маркет](https://apify.com/getascraper/yandex-market-scraper) ↗ - searches Yandex Market by keyword for price, stock, and seller data.

# Actor input Schema

## `keywords` (type: `array`):

Product keywords to search, in Russian or English (e.g. "робот пылесос", "iphone 15"). Each keyword is searched on Wildberries and Yandex Market (whichever you select below). Avito uses category URLs instead - see below.

## `avitoCategoryUrls` (type: `array`):

Avito category browse pages to scan (e.g. "https://www.avito.ru/moskva/telefony"). Avito does not support free-text keyword search over a stable connection, so this Actor scans real category listings instead of searching by keyword for this one marketplace - see AGENTS.md.

## `marketplaces` (type: `array`):

Which marketplaces to search. Ozon is not offered (CAPTCHA-walled, out of scope).

## `maxItemsPerMarketplace` (type: `integer`):

Maximum products per marketplace for the whole run, counted across all keywords and categories combined. Set 20 and each marketplace returns at most 20 rows total, no matter how many keywords you search.

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

Regional warehouse used for Wildberries pricing/availability. Does not affect Yandex Market or Avito.

## `debugLogging` (type: `boolean`):

Print extra per-keyword/category tracing to the run log.

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

Proxy used only for the Avito leg. RU residential (the default) is required to clear Avito's anti-bot gate. Wildberries and Yandex Market manage their own proxy tiers internally.

## Actor input object example

```json
{
  "keywords": [
    "робот пылесос"
  ],
  "avitoCategoryUrls": [],
  "marketplaces": [
    "wildberries",
    "yandex_market",
    "avito"
  ],
  "maxItemsPerMarketplace": 50,
  "region": "MOSCOW",
  "debugLogging": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "RU"
  }
}
```

# 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 = {
    "keywords": [
        "робот пылесос"
    ],
    "avitoCategoryUrls": [],
    "marketplaces": [
        "wildberries",
        "yandex_market",
        "avito"
    ],
    "maxItemsPerMarketplace": 50,
    "region": "MOSCOW",
    "debugLogging": false,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "RU"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/ru-marketplace-search").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 = {
    "keywords": ["робот пылесос"],
    "avitoCategoryUrls": [],
    "marketplaces": [
        "wildberries",
        "yandex_market",
        "avito",
    ],
    "maxItemsPerMarketplace": 50,
    "region": "MOSCOW",
    "debugLogging": False,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "RU",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/ru-marketplace-search").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 '{
  "keywords": [
    "робот пылесос"
  ],
  "avitoCategoryUrls": [],
  "marketplaces": [
    "wildberries",
    "yandex_market",
    "avito"
  ],
  "maxItemsPerMarketplace": 50,
  "region": "MOSCOW",
  "debugLogging": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "RU"
  }
}' |
apify call getascraper/ru-marketplace-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getascraper/ru-marketplace-search",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "RU Marketplace Search: Wildberries + Avito + Yandex Market",
        "description": "Search Wildberries and Yandex Market by keyword, and scan Avito by category, to get back a single unified product dataset: title, price, rating, reviews, seller, and stock status, tagged by marketplace. Built for cross-marketplace price comparison and catalog research.",
        "version": "0.4",
        "x-build-id": "zQaEIMpQoFzM5cIYg"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getascraper~ru-marketplace-search/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getascraper-ru-marketplace-search",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/getascraper~ru-marketplace-search/runs": {
            "post": {
                "operationId": "runs-sync-getascraper-ru-marketplace-search",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/getascraper~ru-marketplace-search/run-sync": {
            "post": {
                "operationId": "run-sync-getascraper-ru-marketplace-search",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "keywords": {
                        "title": "Search keywords (Wildberries + Yandex Market)",
                        "type": "array",
                        "description": "Product keywords to search, in Russian or English (e.g. \"робот пылесос\", \"iphone 15\"). Each keyword is searched on Wildberries and Yandex Market (whichever you select below). Avito uses category URLs instead - see below.",
                        "default": [
                            "робот пылесос"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "avitoCategoryUrls": {
                        "title": "Avito category URLs",
                        "type": "array",
                        "description": "Avito category browse pages to scan (e.g. \"https://www.avito.ru/moskva/telefony\"). Avito does not support free-text keyword search over a stable connection, so this Actor scans real category listings instead of searching by keyword for this one marketplace - see AGENTS.md.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "marketplaces": {
                        "title": "Marketplaces",
                        "type": "array",
                        "description": "Which marketplaces to search. Ozon is not offered (CAPTCHA-walled, out of scope).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "wildberries",
                                "yandex_market",
                                "avito"
                            ],
                            "enumTitles": [
                                "Wildberries",
                                "Yandex Market",
                                "Avito (category URLs only)"
                            ]
                        },
                        "default": [
                            "wildberries",
                            "yandex_market",
                            "avito"
                        ]
                    },
                    "maxItemsPerMarketplace": {
                        "title": "Max products per marketplace",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum products per marketplace for the whole run, counted across all keywords and categories combined. Set 20 and each marketplace returns at most 20 rows total, no matter how many keywords you search.",
                        "default": 50
                    },
                    "region": {
                        "title": "Wildberries warehouse region",
                        "enum": [
                            "MOSCOW",
                            "KRASNODAR",
                            "NOVOSIBIRSK",
                            "EKATERINBURGO",
                            "KAZAHSTAN",
                            "ST_PETERSBURG"
                        ],
                        "type": "string",
                        "description": "Regional warehouse used for Wildberries pricing/availability. Does not affect Yandex Market or Avito.",
                        "default": "MOSCOW"
                    },
                    "debugLogging": {
                        "title": "Verbose debug logs",
                        "type": "boolean",
                        "description": "Print extra per-keyword/category tracing to the run log.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Avito proxy configuration",
                        "type": "object",
                        "description": "Proxy used only for the Avito leg. RU residential (the default) is required to clear Avito's anti-bot gate. Wildberries and Yandex Market manage their own proxy tiers internally.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "RU"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
