# Wildberries Scraper — Product Data & Price API (`sian.agency/wildberries-product-scraper`) Actor

Wildberries scraper & product data API for Russia's #1 marketplace. Search by keyword or paste a search URL: price, discount, brand, seller, rating, reviews, stock, sizes, colors and images — clean JSON/CSV. Fast overview or live per-product detail. No-code, no API key needed.

- **URL**: https://apify.com/sian.agency/wildberries-product-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** E-commerce, Automation, Lead generation
- **Stats:** 3 total users, 1 monthly users, 71.4% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.20 / 1,000 overview product extracteds

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/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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

## Wildberries Scraper — Product Data, Prices & Reviews 🛍️

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![AliExpress Product Scraper](https://img.shields.io/badge/Store-AliExpress%20Product%20Scraper-FF4747)](https://apify.com/sian.agency/aliexpress-product-scraper?fpr=sian) [![Temu Product Scraper](https://img.shields.io/badge/Store-Temu%20Product%20Scraper-FF7A00)](https://apify.com/sian.agency/temu-product-scraper?fpr=sian) [![Taobao & Tmall Product Scraper](https://img.shields.io/badge/Store-Taobao%20%26%20Tmall%20Scraper-FF4F00)](https://apify.com/sian.agency/taobao-tmall-product-scraper?fpr=sian)

#### 🎉 Extract Russia's #1 marketplace at scale — price, discount, brand, seller, rating, reviews, stock & images in clean JSON/CSV
##### For price-monitoring teams, marketplace sellers, and e-commerce analysts who need Wildberries data without writing code

---

### 📋 Overview

**Need Wildberries product data fast?** This scraper turns any keyword or search URL into a clean, structured dataset — price, discount, brand, seller, rating, reviews, stock, sizes, colors and image URLs — ready for spreadsheets, dashboards, or your own pipeline.

**Why thousands of professionals choose us:**
- ✅ **25+ data points per product**: price, original price, discount %, brand, seller, rating, reviews, stock, colors, sizes and full-resolution image URLs.
- ⚡ **Fast bulk collection**: pull ~100 products per page straight from the search list — thousands of products in minutes.
- 🎯 **Live-accurate prices**: the optional Detail mode re-fetches each product's card for the freshest price and verified image host.
- 💰 **Best price on the market** — transparent pay-per-result, with a free tier to test. You're only charged for products you actually get.
- 💎 **No code, no account, no API key**: paste a query or a wildberries.ru URL and run.
- ✨ **Search filters built in**: sort by popularity, price or rating, and filter by price range, brand or category.

---

### ✨ Features

- 🔎 **Search by keyword**: pull products for any term (`ноутбук`, `кроссовки`, `наушники`…).
- 🔗 **Search by URL**: paste a wildberries.ru search or catalog URL — its term, sort and filters are preserved.
- 🃏 **Live product detail**: fetch products by ID for refreshed prices and verified image URLs.
- 💰 **Full pricing**: current price, original price and computed discount percentage.
- 🏪 **Seller intelligence**: seller name, ID and seller rating for every product.
- 🌟 **Ratings & reviews**: product rating (0–5) and review count.
- 📦 **Stock & variants**: total stock quantity, in-stock flag, available colors and sizes.
- 📷 **Image URLs**: every product image in full resolution, plus a cover thumbnail.
- 🎛️ **Filters & sorting**: price range, brand, category, and six sort orders.
- 📤 **Clean exports**: JSON, CSV and Excel straight from the Apify dataset.

---

### 🎬 Quick Start

Provide a search term (or a wildberries.ru URL), pick how many products you want, and run. Results land in the dataset as structured rows you can export or pipe anywhere.

```bash
curl -X POST https://api.apify.com/v2/acts/sian.agency~wildberries-product-scraper/runs?token=YOUR_TOKEN \
-H 'Content-Type: application/json' \
-d '{"scrapeMode": "overview", "searchMode": "byQuery", "queries": ["ноутбук"], "maxResults": 100}'
````

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Choose what to collect

Enter one or more search terms, or paste a wildberries.ru search URL.

#### Step 2: Refine (optional)

Set a sort order, a price range, or a brand/category filter, and a max-products cap.

#### Step 3: Run and export

Start the actor and download your products as JSON, CSV or Excel.

**That's it! In a few minutes, you'll have:**

- A clean table of Wildberries products with prices and discounts
- Seller, rating and review data for each product
- Stock, variants and image URLs — ready for analysis

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| scrapeMode | string | No | `overview` (fast search list) or `detail` (live per-product card). |
| searchMode | string | No | `byQuery`, `bySearchUrl`, or `byProductId` (detail). |
| queries | array | No | Search terms to collect (e.g. `ноутбук`). |
| searchUrls | array | No | wildberries.ru search/catalog URLs to collect. |
| productIds | array | No | Product IDs or product URLs (Detail mode). |
| sort | string | No | `popular`, `priceup`, `pricedown`, `rate`, `newly`, `benefit`. |
| maxResults | integer | No | Max products per run (FREE: 25, PAID: unlimited). |
| maxPages | integer | No | Max search pages per query (≈100 products each). |
| minPrice / maxPrice | integer | No | Price range filter, in rubles (RUB). |
| brandId / subjectId | string | No | Restrict to a single brand or category. |

**Example:**

```json
{
  "scrapeMode": "overview",
  "searchMode": "byQuery",
  "queries": ["кроссовки"],
  "sort": "pricedown",
  "maxPrice": 5000,
  "maxResults": 200
}
```

**Search by URL:**

```json
{
  "scrapeMode": "overview",
  "searchMode": "bySearchUrl",
  "searchUrls": ["https://www.wildberries.ru/catalog/0/search.aspx?search=наушники"]
}
```

***

### 📤 Output

Results are saved to the Apify dataset with **25+ fields** including:

| Field | Type | Description |
|-------|------|-------------|
| id | number | Product article number (nmId) |
| productTitle | string | Product name |
| url | string | Canonical product page URL |
| price | number | Current sale price (RUB) |
| price\_original | number | Pre-discount price (RUB) |
| discount\_pct | number | Discount percentage |
| brand | string | Brand name |
| supplier | string | Seller (supplier) name |
| supplier\_rating | number | Seller rating (0–5) |
| rating | number | Product review rating (0–5) |
| feedbacks | number | Number of reviews |
| in\_stock | boolean | Whether the product is in stock |
| total\_quantity | number | Total stock across sizes |
| colors / sizes | array | Available variants |
| images | array | Full-resolution image URLs |
| thumbnail | string | Cover image URL |

**Example:**

```json
{
  "id": 644533377,
  "productTitle": "Ноутбук для работы и учебы 15.6\"",
  "url": "https://www.wildberries.ru/catalog/644533377/detail.aspx",
  "price": 17371,
  "price_original": 45716,
  "discount_pct": 62,
  "currency": "RUB",
  "brand": "W&O",
  "supplier": "H.T.D Store",
  "supplier_rating": 4.7,
  "rating": 5.0,
  "feedbacks": 28,
  "in_stock": true,
  "total_quantity": 41,
  "colors": ["серый"],
  "thumbnail": "https://basket-32.wbbasket.ru/vol6445/part644533/644533377/images/big/1.webp",
  "image_count": 13
}
```

***

### 💼 Use Cases & Examples

#### 1. Price Monitoring

**E-commerce teams tracking competitor prices on Russia's biggest marketplace.**
**Input:** A list of search terms or category URLs.
**Output:** Daily price, discount and stock snapshots.
**Use:** Spot price drops, react to competitor promotions, protect margins.

#### 2. Competitor & Assortment Analysis

**Brands and sellers benchmarking their catalog against rivals.**
**Input:** Brand or category filters.
**Output:** Full assortment with prices, ratings and seller data.
**Use:** Find gaps, track new entrants, size up the competition.

#### 3. Market & Demand Research

**Analysts measuring category breadth, pricing and review volume.**
**Input:** Broad search terms.
**Output:** Thousands of products with ratings and review counts.
**Use:** Quantify demand and pricing distribution per category.

#### 4. Seller & Brand Tracking

**Agencies monitoring specific sellers or brands over time.**
**Input:** Brand ID or seller-filtered searches.
**Output:** Per-seller product lists with ratings.
**Use:** Track a brand's catalog, pricing and reputation.

#### 5. Review & Rating Mining

**Product teams gauging customer sentiment by review volume and score.**
**Input:** Product searches or specific product IDs.
**Output:** Rating and review counts per product.
**Use:** Prioritize products by social proof.

#### 6. Catalog Feeds & Dashboards

**Developers powering price dashboards and BI tools.**
**Input:** Scheduled keyword/URL runs.
**Output:** Clean JSON/CSV feeds.
**Use:** Drop straight into dashboards, sheets or databases.

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/wildberries-product-scraper').call({
  scrapeMode: 'overview',
  searchMode: 'byQuery',
  queries: ['ноутбук'],
  maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/wildberries-product-scraper').call(
    run_input={'scrapeMode': 'overview', 'searchMode': 'byQuery', 'queries': ['ноутбук'], 'maxResults': 100}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~wildberries-product-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"scrapeMode": "overview", "searchMode": "byQuery", "queries": ["ноутбук"]}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule or webhook
2. **HTTP Request**: Call the actor API
3. **Process**: Handle JSON results
4. **Action**: Save to a sheet, notify, or transform

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **25 products** per run — full feature access, same quality
- No credit card required
- Perfect for testing and small projects

#### PAID Tier (Production Ready)

- **Unlimited** products per run
- Faster processing, no delays
- Pay-per-result: only charged for products you actually get

💰 **Best price on the market** — transparent per-product pricing, no monthly subscription required.

🔗 [View current pricing](https://apify.com/sian.agency/wildberries-product-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: How many products can I extract?**
A: FREE tier: 25 per run. PAID tier: unlimited.

**Q: Do I need a Wildberries account or API key?**
A: No — just enter a search term or URL and run.

**Q: What output formats are available?**
A: JSON, CSV and Excel — export directly from the Apify dataset.

**Q: Can I search in Russian and English?**
A: Yes. Cyrillic and Latin search terms both work against the Russian catalog.

**Q: What's the difference between Overview and Detail mode?**
A: Overview pulls full product rows from the search list (fast, cheap). Detail re-fetches each product's card for the freshest price and a verified image host.

**Q: Is this legal?**
A: Yes — we only extract publicly available data. See the legal section below.

***

### 🐛 Troubleshooting

**No products returned**

- Check the search term spelling, or widen your price/brand filters.
- If using a URL, make sure it's a wildberries.ru search or catalog URL.

**Fewer products than expected**

- FREE tier caps results at 25 per run — upgrade for unlimited.
- Increase `maxPages` to paginate deeper into the results.

**Prices look slightly different from the website**

- Use Detail mode for the freshest live price per product.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's repository
- Check [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

> **Trademark notice:** Wildberries™ is a trademark of its respective owner. This actor is an independent tool and is **not** affiliated with, endorsed by, or sponsored by Wildberries. All product names, logos and brands are the property of their respective owners and are used for identification purposes only.

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `scrapeMode` (type: `string`):

🧭 **OVERVIEW** (cheap, fast): pulls full product rows straight from the search list — price, discount, brand, seller, rating, reviews, stock, colors, sizes and images. Best for bulk catalog/price collection.

🃏 **DETAIL**: re-fetches each product's live card for the freshest price and verified image host. Use when you need single-product accuracy.

## `searchMode` (type: `string`):

🔀 How to tell the scraper what to collect:

- **🔎 By query** — type search terms (e.g. `ноутбук`, `кроссовки`).
- **🔗 By search URL** — paste a wildberries.ru search/catalog URL; its term and filters are preserved.
- **🃏 By product ID** — list product IDs (nmId) or product URLs (Detail mode only).

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

🔎 **BY QUERY:** one or more search terms. Each term is searched and paginated.

**Examples:** `ноутбук` · `кроссовки` · `наушники` · `платье`

💡 **TIP:** Cyrillic and Latin terms both work — Wildberries indexes the Russian catalog.

## `searchUrls` (type: `array`):

🔗 **BY SEARCH URL:** paste one or more wildberries.ru search or catalog URLs. The search term, sort and supported filters carried in the URL are preserved.

**Example:** `https://www.wildberries.ru/catalog/0/search.aspx?search=наушники`

## `productIds` (type: `array`):

🃏 **DETAIL · BY PRODUCT ID:** list product IDs (nmId) or full product URLs. Each is fetched as a live card with its current price and verified image host.

**Examples:** `644533377` · `https://www.wildberries.ru/catalog/824935779/detail.aspx`

## `sort` (type: `string`):

↕️ How to order the search results.

## `maxResults` (type: `integer`):

🔢 Maximum products to extract per run.

**TIER-BASED LIMITS:**

- **FREE users:** up to 25 products per run
- **PAID users:** unlimited

💡 Set a sensible cap to control cost.

## `maxPages` (type: `integer`):

📄 How many search pages (≈100 products each) to paginate per query/URL before stopping.

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

💰 Only include products priced at or above this amount, in rubles (RUB).

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

💰 Only include products priced at or below this amount, in rubles (RUB).

## `brandId` (type: `string`):

🏷️ Restrict results to a single brand by its Wildberries brand ID (the `fbrand` filter). Optional.

## `subjectId` (type: `string`):

🗂️ Restrict results to a single category/subject by its Wildberries subject ID (the `xsubject` filter). Optional.

## Actor input object example

```json
{
  "scrapeMode": "overview",
  "searchMode": "byQuery",
  "queries": [
    "ноутбук"
  ],
  "sort": "popular",
  "maxResults": 100,
  "maxPages": 3
}
```

# Actor output Schema

## `results` (type: `string`):

Scraped Wildberries products (JSON/CSV/Excel).

## `scrapingSummary` (type: `string`):

HTML run report with status, counts and key metrics.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "ноутбук"
    ],
    "maxResults": 100,
    "maxPages": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/wildberries-product-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "queries": ["ноутбук"],
    "maxResults": 100,
    "maxPages": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/wildberries-product-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 '{
  "queries": [
    "ноутбук"
  ],
  "maxResults": 100,
  "maxPages": 3
}' |
apify call sian.agency/wildberries-product-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Wildberries Scraper — Product Data & Price API",
        "description": "Wildberries scraper & product data API for Russia's #1 marketplace. Search by keyword or paste a search URL: price, discount, brand, seller, rating, reviews, stock, sizes, colors and images — clean JSON/CSV. Fast overview or live per-product detail. No-code, no API key needed.",
        "version": "1.0",
        "x-build-id": "Bfh08u94HcaPPEs2c"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sian.agency~wildberries-product-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sian.agency-wildberries-product-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/sian.agency~wildberries-product-scraper/runs": {
            "post": {
                "operationId": "runs-sync-sian.agency-wildberries-product-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/sian.agency~wildberries-product-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-sian.agency-wildberries-product-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",
                "properties": {
                    "scrapeMode": {
                        "title": "🧭 Scrape Mode",
                        "enum": [
                            "overview",
                            "detail"
                        ],
                        "type": "string",
                        "description": "🧭 **OVERVIEW** (cheap, fast): pulls full product rows straight from the search list — price, discount, brand, seller, rating, reviews, stock, colors, sizes and images. Best for bulk catalog/price collection.\n\n🃏 **DETAIL**: re-fetches each product's live card for the freshest price and verified image host. Use when you need single-product accuracy.",
                        "default": "overview"
                    },
                    "searchMode": {
                        "title": "🔀 Search Mode",
                        "enum": [
                            "byQuery",
                            "bySearchUrl",
                            "byProductId"
                        ],
                        "type": "string",
                        "description": "🔀 How to tell the scraper what to collect:\n\n- **🔎 By query** — type search terms (e.g. `ноутбук`, `кроссовки`).\n- **🔗 By search URL** — paste a wildberries.ru search/catalog URL; its term and filters are preserved.\n- **🃏 By product ID** — list product IDs (nmId) or product URLs (Detail mode only).",
                        "default": "byQuery"
                    },
                    "queries": {
                        "title": "🔎 Search Queries",
                        "type": "array",
                        "description": "🔎 **BY QUERY:** one or more search terms. Each term is searched and paginated.\n\n**Examples:** `ноутбук` · `кроссовки` · `наушники` · `платье`\n\n💡 **TIP:** Cyrillic and Latin terms both work — Wildberries indexes the Russian catalog.",
                        "default": [
                            "ноутбук"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchUrls": {
                        "title": "🔗 Search URLs",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "🔗 **BY SEARCH URL:** paste one or more wildberries.ru search or catalog URLs. The search term, sort and supported filters carried in the URL are preserved.\n\n**Example:** `https://www.wildberries.ru/catalog/0/search.aspx?search=наушники`",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "productIds": {
                        "title": "🃏 Product IDs or URLs",
                        "type": "array",
                        "description": "🃏 **DETAIL · BY PRODUCT ID:** list product IDs (nmId) or full product URLs. Each is fetched as a live card with its current price and verified image host.\n\n**Examples:** `644533377` · `https://www.wildberries.ru/catalog/824935779/detail.aspx`",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sort": {
                        "title": "↕️ Sort Order",
                        "enum": [
                            "popular",
                            "priceup",
                            "pricedown",
                            "rate",
                            "newly",
                            "benefit"
                        ],
                        "type": "string",
                        "description": "↕️ How to order the search results.",
                        "default": "popular"
                    },
                    "maxResults": {
                        "title": "🔢 Max Products",
                        "minimum": 1,
                        "type": "integer",
                        "description": "🔢 Maximum products to extract per run.\n\n**TIER-BASED LIMITS:**\n- **FREE users:** up to 25 products per run\n- **PAID users:** unlimited\n\n💡 Set a sensible cap to control cost.",
                        "default": 100
                    },
                    "maxPages": {
                        "title": "📄 Max Pages per Query",
                        "minimum": 1,
                        "type": "integer",
                        "description": "📄 How many search pages (≈100 products each) to paginate per query/URL before stopping.",
                        "default": 3
                    },
                    "minPrice": {
                        "title": "💰 Min Price (RUB)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "💰 Only include products priced at or above this amount, in rubles (RUB)."
                    },
                    "maxPrice": {
                        "title": "💰 Max Price (RUB)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "💰 Only include products priced at or below this amount, in rubles (RUB)."
                    },
                    "brandId": {
                        "title": "🏷️ Brand ID",
                        "type": "string",
                        "description": "🏷️ Restrict results to a single brand by its Wildberries brand ID (the `fbrand` filter). Optional."
                    },
                    "subjectId": {
                        "title": "🗂️ Category ID",
                        "type": "string",
                        "description": "🗂️ Restrict results to a single category/subject by its Wildberries subject ID (the `xsubject` filter). Optional."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
