# Eldorado Scraper (`crawlerbros/eldorado-scraper`) Actor

Scrape Eldorado's former electronics catalog. eldorado.ru's storefront closed and redirects to the M.Video marketplace (the two merged); this actor scrapes that successor catalog. Search by keyword, browse 89 categories, or fetch product details by URL.

- **URL**: https://apify.com/crawlerbros/eldorado-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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

## Eldorado Scraper

Scrape the catalog that now carries [Eldorado](https://www.eldorado.ru)'s former product line. Eldorado's own storefront has closed — every eldorado.ru page now redirects visitors to the M.Video marketplace, which absorbed Eldorado's business — so this actor scrapes that live successor catalog on your behalf: real, current product data (price, rating, specifications, images, seller info), searchable and browsable just as the original Eldorado storefront was. No login, cookies, or account required.

### What this actor does

- **Three modes:** `search`, `byCategory`, `productDetails`
- **89 top-level categories** — electronics, appliances, and everything else the merged catalog carries
- **Price, rating, and stock filters**
- **Full specifications** — flattened spec tables and seller info (name, seller ID, INN, OGRN, phone, address, work schedule) in `search`/`productDetails` modes
- **Structured breadcrumb path** (`breadcrumbPath[]`, with category IDs) alongside the plain-string `breadcrumbs[]`
- **Customer reviews** — individual review text/score/pros-cons/helpfulness, plus a star-rating breakdown and "would recommend" percentage (`search` and `productDetails` modes, configurable via `maxReviews`)
- **Certificate & instruction PDFs, related product variants** (other sizes/colors of the same model) — `search`/`productDetails` modes
- **Empty fields are omitted**

### Output per product

- `productId`, `name`
- `productUrl` / `sourceUrl`
- `modelName`, `brandName`, `brandId` (`search`/`productDetails` only)
- `categoryId`, `categoryName`
- `breadcrumbs[]` (`search`/`productDetails` only — plain-string category trail)
- `breadcrumbPath[]` (`search`/`productDetails` only — structured trail, `{name, categoryId}` per level)
- `salePrice`, `basePrice`, `discountPercent`, `currency` (RUB), `bonusAmount`
- `ratingStar`, `ratingCount`, `ratingBreakdown` (`search`/`productDetails` — `{"1": count, ..., "5": count}`), `recommendPercent` (`search`/`productDetails`)
- `reviews[]` (`search`/`productDetails` mode only, up to `maxReviews` — `{reviewId, author, score, text, benefits, drawbacks, recommended, likes, dislikes, date, photoCount}`)
- `inStock`, `isPreorder`
- `isNew`, `isLastChance`, `badgeText`, `availabilityStatus` (`byCategory` mode only — promo badge and raw listing status)
- `storeOnly` (`search`/`productDetails` only — set when the product is available for in-store pickup only)
- `imageUrl`, `imageUrls[]`
- `description`, `specifications[]` (`search`/`productDetails` mode only — `{name, value}` pairs)
- `weightKg` (`search`/`productDetails` only)
- `sellerId`, `sellerName`, `sellerInn`, `sellerOgrn`, `sellerPhone`, `sellerAddress`, `sellerWorkSchedule` (`search`/`productDetails` only)
- `certificateUrls[]`, `instructionUrls[]` (`search`/`productDetails` mode only — direct links to the product's certificate/instruction PDF documents, when the manufacturer filed them)
- `relatedProducts[]` (`search`/`productDetails` mode only — sibling products in the same model line that differ by one attribute, e.g. other screen sizes/colors: `{productId, attributeName, value, productUrl}`)
- `recordType: "product"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `search` | `search` / `byCategory` / `productDetails` |
| `searchQuery` | string | `телевизор` | Free-text query (mode=search) |
| `category` | string (select) | – | One of 89 top-level categories (mode=byCategory) |
| `categoryUrl` | string | – | Custom category URL/ID, overrides `category` |
| `productUrls` | array | – | Product URLs or numeric IDs (mode=productDetails) |
| `sortOrder` | string | `popularity` | `popularity` / `priceAsc` / `priceDesc` (mode=byCategory) |
| `minPrice` / `maxPrice` | integer | – | Price range filter, RUB |
| `minRating` | number | – | Minimum customer rating (0-5) |
| `inStockOnly` | boolean | `false` | Only emit in-stock products |
| `maxItems` | integer | `10` | Hard cap on emitted records (1-1000; `mode=search` is separately capped at ~10 by the site itself) |
| `maxReviews` | integer | `5` | Customer reviews to fetch per product (0-20, `search`/`productDetails` only) — set to 0 to skip |
| `proxyConfiguration` | object | Apify Proxy (auto) | Proxy to use — see FAQ below |

#### Example: search

```json
{ "mode": "search", "searchQuery": "ноутбук", "maxItems": 10 }
````

#### Example: browse a category, cheapest first, in stock only

```json
{
  "mode": "byCategory",
  "category": "1",
  "sortOrder": "priceAsc",
  "inStockOnly": true,
  "maxItems": 50
}
```

#### Example: full details for specific products

```json
{
  "mode": "productDetails",
  "productUrls": [
    "https://www.mvideo.ru/products/televizor-general-electronics-ge55lqs2-401211841"
  ]
}
```

#### Example: mid-range products only, with reviews

```json
{
  "mode": "byCategory",
  "category": "20",
  "minPrice": 20000,
  "maxPrice": 60000,
  "minRating": 4,
  "maxItems": 30
}
```

### Use cases

- **Price monitoring** — track prices/discounts across a category over time
- **Market research** — compare brand assortment and pricing in Russian electronics retail
- **Product catalog enrichment** — pull specifications and images for a known list of products
- **Competitive intelligence** — monitor seller/stock status for specific SKUs
- **Review analysis** — collect customer review text, ratings, and recommend-rate for a product line

### Other Russian marketplace actors by CrawlerBros

| Actor | URL |
|---|---|
| Citilink Scraper - Russian Electronics Store Products | <https://apify.com/crawlerbros/citilink-scraper> |
| DNS-Shop Scraper | <https://apify.com/crawlerbros/dns-shop-scraper> |
| Eldorado Scraper (this actor) | <https://apify.com/crawlerbros/eldorado-scraper> |
| ETM Electrical Equipment Scraper | <https://apify.com/crawlerbros/etm-scraper> |
| Holodilnik.ru Scraper | <https://apify.com/crawlerbros/holodilnik-scraper> |
| Lemanapro Scraper | <https://apify.com/crawlerbros/lemanapro-scraper> |
| Magnit Market (mm.ru) Scraper | <https://apify.com/crawlerbros/magnit-market-scraper> |
| Maxidom Scraper | <https://apify.com/crawlerbros/maxidom-scraper> |
| Megamarket.ru Scraper | <https://apify.com/crawlerbros/megamarket-scraper> |
| M.Video Scraper | <https://apify.com/crawlerbros/mvideo-scraper> |
| Onlinetrade.ru Scraper | <https://apify.com/crawlerbros/onlinetrade-scraper> |
| Ozon Scraper - Products, Categories & Search | <https://apify.com/crawlerbros/ozon-scraper> |
| Petrovich Building Materials Scraper | <https://apify.com/crawlerbros/petrovich-scraper> |
| Regard Scraper | <https://apify.com/crawlerbros/regard-scraper> |
| Russkiy Svet (rs24.ru) Electrical Equipment Scraper | <https://apify.com/crawlerbros/russkiysvet-scraper> |
| Technopark.ru Scraper - Products, Categories & Search | <https://apify.com/crawlerbros/technopark-scraper> |
| VseInstrumenti.ru Scraper | <https://apify.com/crawlerbros/vseinstrumenti-scraper> |
| Wildberries Scraper | <https://apify.com/crawlerbros/wildberries-scraper> |
| X-Com Shop Scraper | <https://apify.com/crawlerbros/xcom-shop-scraper> |
| Yandex Market Pro Scraper | <https://apify.com/crawlerbros/yandex-pro-scraper> |

### FAQ

**Why does an "Eldorado" actor scrape mvideo.ru?** Because eldorado.ru no longer has a catalog of its own. Every eldorado.ru content page now redirects to the M.Video marketplace, which absorbed Eldorado's business and now exclusively sells what used to be Eldorado's product line. Scraping that live successor catalog is the only way to keep delivering real, current data under the Eldorado name, rather than fabricating data or scraping a dead site. Product URLs and IDs in the output are mvideo.ru's — old `eldorado.ru/cat/detail/...` links no longer resolve to anything.

**Is this actor affiliated with Eldorado or M.Video?** No — this is an independent, third-party actor that reads publicly available catalog data.

**Do I need to provide a proxy?** No — `proxyConfiguration` defaults to the free Apify datacenter pool. The actor only escalates to a paid residential proxy session internally, and only if the free tier gets blocked on every attempt.

**Why do some products have fewer fields than others?** Fields are only included when the source actually returns a value for that product (e.g. not every product has a customer rating yet, or a discount).

**What currency are prices in?** Russian rubles (RUB) — the catalog only sells in the Russian market.

**Can I get more than 10 results from `mode=search`?** Not directly — the site's own search API caps at ~10 matching products per query. For broader discovery, find the product's category via one search, then switch to `mode=byCategory` with that category for full pagination.

**How fresh is the data?** Real-time — every run fetches current prices, stock status, and ratings directly from the live site.

**Can I turn off customer reviews to speed up `productDetails`/`search` runs?** Yes — set `maxReviews` to `0`. Reviews, `ratingBreakdown`, and `recommendPercent` are all fetched together in one request, so skipping them saves one request per item.

**Why does `byCategory` mode return different fields than `search`/`productDetails`?** `byCategory` returns fast catalog-listing data (price, rating, stock badges) for many products at once; `search` and `productDetails` fetch each product's full detail page, which additionally includes specifications, description, seller info, documents, related variants, and full review data.

# Actor input Schema

## `mode` (type: `string`):

What to fetch.

## `searchQuery` (type: `string`):

Free-text product search, e.g. телевизор, ноутбук, холодильник.

## `category` (type: `string`):

Top-level category to browse (the taxonomy of the catalog that now carries Eldorado's former product line).

## `categoryUrl` (type: `string`):

Overrides `category`. Accepts a full mvideo.ru category URL (e.g. https://www.mvideo.ru/televizory-i-cifrovoe-tv-1/televizory-65) or a bare numeric category ID, for sub-categories not in the dropdown.

## `productUrls` (type: `array`):

Product URLs (e.g. https://www.mvideo.ru/products/televizor-...-401211841) or bare numeric product IDs. Old eldorado.ru/cat/detail/... URLs no longer resolve to a catalog page — use the current URL or numeric ID instead.

## `sortOrder` (type: `string`):

Result ordering for category browsing.

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

Drop products cheaper than this (sale price, in Russian rubles).

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

Drop products more expensive than this (sale price, in Russian rubles).

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

Drop products with a customer rating below this. Products with no rating are excluded when this filter is set.

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

Only emit products that are currently available (not sold out).

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

Hard cap on emitted records. Note: mode=search is limited to ~10 results (the site's own search-suggestion API caps at 10 matches); use mode=byCategory for larger result sets.

## `maxReviews` (type: `integer`):

How many of the most helpful customer reviews to fetch and attach to each product's `reviews[]` field (also populates `ratingBreakdown` and `recommendPercent`). Only applies to mode=search and mode=productDetails, since those are the modes that fetch full product details. Set to 0 to skip fetching reviews.

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

Apify Proxy to use. The actor tries the free datacenter (AUTO) pool first (Tier 3: Playwright); if the anti-bot blocks every attempt, it automatically escalates to a residential proxy session (Tier 4: Camoufox) regardless of this setting.

## Actor input object example

```json
{
  "mode": "search",
  "searchQuery": "телевизор",
  "category": "1",
  "productUrls": [
    "https://www.mvideo.ru/products/televizor-general-electronics-ge55lqs2-401211841"
  ],
  "sortOrder": "popularity",
  "inStockOnly": false,
  "maxItems": 10,
  "maxReviews": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `products` (type: `string`):

Dataset containing all scraped products.

# 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 = {
    "mode": "search",
    "searchQuery": "телевизор",
    "category": "1",
    "productUrls": [
        "https://www.mvideo.ru/products/televizor-general-electronics-ge55lqs2-401211841"
    ],
    "sortOrder": "popularity",
    "inStockOnly": false,
    "maxItems": 10,
    "maxReviews": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/eldorado-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 = {
    "mode": "search",
    "searchQuery": "телевизор",
    "category": "1",
    "productUrls": ["https://www.mvideo.ru/products/televizor-general-electronics-ge55lqs2-401211841"],
    "sortOrder": "popularity",
    "inStockOnly": False,
    "maxItems": 10,
    "maxReviews": 5,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/eldorado-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 '{
  "mode": "search",
  "searchQuery": "телевизор",
  "category": "1",
  "productUrls": [
    "https://www.mvideo.ru/products/televizor-general-electronics-ge55lqs2-401211841"
  ],
  "sortOrder": "popularity",
  "inStockOnly": false,
  "maxItems": 10,
  "maxReviews": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call crawlerbros/eldorado-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Eldorado Scraper",
        "description": "Scrape Eldorado's former electronics catalog. eldorado.ru's storefront closed and redirects to the M.Video marketplace (the two merged); this actor scrapes that successor catalog. Search by keyword, browse 89 categories, or fetch product details by URL.",
        "version": "1.0",
        "x-build-id": "lw6q45BgWOk1ib5vM"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~eldorado-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-eldorado-scraper",
                "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/crawlerbros~eldorado-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-eldorado-scraper",
                "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/crawlerbros~eldorado-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-eldorado-scraper",
                "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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "byCategory",
                            "productDetails"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "search"
                    },
                    "searchQuery": {
                        "title": "Search query (mode=search)",
                        "type": "string",
                        "description": "Free-text product search, e.g. телевизор, ноутбук, холодильник.",
                        "default": "телевизор"
                    },
                    "category": {
                        "title": "Category (mode=byCategory)",
                        "enum": [
                            "",
                            "5",
                            "19",
                            "6327",
                            "7",
                            "32156",
                            "6247",
                            "55394",
                            "37",
                            "50",
                            "34821",
                            "51",
                            "47",
                            "41",
                            "58",
                            "42",
                            "21",
                            "9",
                            "2287",
                            "20",
                            "4",
                            "64",
                            "32",
                            "56461",
                            "55882",
                            "31034",
                            "27763",
                            "11",
                            "3787",
                            "4107",
                            "24",
                            "5427",
                            "34",
                            "31517",
                            "32328",
                            "23226",
                            "3",
                            "56077",
                            "55",
                            "17",
                            "54",
                            "8",
                            "57404",
                            "57446",
                            "56457",
                            "57445",
                            "9375",
                            "23",
                            "4147",
                            "25",
                            "53",
                            "29",
                            "57366",
                            "2428",
                            "56",
                            "31713",
                            "8027",
                            "30420",
                            "1461",
                            "28153",
                            "10",
                            "5487",
                            "28151",
                            "2427",
                            "9491",
                            "1",
                            "31",
                            "31018",
                            "5927",
                            "33737",
                            "26087",
                            "23497",
                            "35",
                            "14",
                            "25841",
                            "8410",
                            "4887",
                            "36",
                            "2",
                            "36546",
                            "35284",
                            "7672",
                            "59",
                            "12",
                            "28",
                            "2687",
                            "2468",
                            "25344",
                            "7950",
                            "4507"
                        ],
                        "type": "string",
                        "description": "Top-level category to browse (the taxonomy of the catalog that now carries Eldorado's former product line).",
                        "default": ""
                    },
                    "categoryUrl": {
                        "title": "Custom category URL or ID (mode=byCategory)",
                        "type": "string",
                        "description": "Overrides `category`. Accepts a full mvideo.ru category URL (e.g. https://www.mvideo.ru/televizory-i-cifrovoe-tv-1/televizory-65) or a bare numeric category ID, for sub-categories not in the dropdown."
                    },
                    "productUrls": {
                        "title": "Product URLs or IDs (mode=productDetails)",
                        "type": "array",
                        "description": "Product URLs (e.g. https://www.mvideo.ru/products/televizor-...-401211841) or bare numeric product IDs. Old eldorado.ru/cat/detail/... URLs no longer resolve to a catalog page — use the current URL or numeric ID instead.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "sortOrder": {
                        "title": "Sort order (mode=byCategory)",
                        "enum": [
                            "popularity",
                            "priceAsc",
                            "priceDesc"
                        ],
                        "type": "string",
                        "description": "Result ordering for category browsing.",
                        "default": "popularity"
                    },
                    "minPrice": {
                        "title": "Min price (RUB)",
                        "minimum": 0,
                        "maximum": 10000000,
                        "type": "integer",
                        "description": "Drop products cheaper than this (sale price, in Russian rubles)."
                    },
                    "maxPrice": {
                        "title": "Max price (RUB)",
                        "minimum": 0,
                        "maximum": 10000000,
                        "type": "integer",
                        "description": "Drop products more expensive than this (sale price, in Russian rubles)."
                    },
                    "minRating": {
                        "title": "Min rating (0-5)",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "number",
                        "description": "Drop products with a customer rating below this. Products with no rating are excluded when this filter is set."
                    },
                    "inStockOnly": {
                        "title": "In stock only",
                        "type": "boolean",
                        "description": "Only emit products that are currently available (not sold out).",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on emitted records. Note: mode=search is limited to ~10 results (the site's own search-suggestion API caps at 10 matches); use mode=byCategory for larger result sets.",
                        "default": 10
                    },
                    "maxReviews": {
                        "title": "Max customer reviews per product (search / productDetails)",
                        "minimum": 0,
                        "maximum": 20,
                        "type": "integer",
                        "description": "How many of the most helpful customer reviews to fetch and attach to each product's `reviews[]` field (also populates `ratingBreakdown` and `recommendPercent`). Only applies to mode=search and mode=productDetails, since those are the modes that fetch full product details. Set to 0 to skip fetching reviews.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy to use. The actor tries the free datacenter (AUTO) pool first (Tier 3: Playwright); if the anti-bot blocks every attempt, it automatically escalates to a residential proxy session (Tier 4: Camoufox) regardless of this setting.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
