Wildberries Scraper: Products, Prices, Reviews, No Login
Pricing
from $1.60 / 1,000 products
Wildberries Scraper: Products, Prices, Reviews, No Login
Search Wildberries by keyword or paste article numbers and get products with price, sale price, rating, review count, seller, stock and images, or the product's written reviews. Choose the delivery region. No login, no cookies.
Pricing
from $1.60 / 1,000 products
Rating
0.0
(0)
Developer
Cliqto Media
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
4 days ago
Last modified
Categories
Share
Search Wildberries (wildberries.ru) by keyword, or paste article numbers or product links, and get products as one row each: name, brand, price, sale price, discount, rating, number of reviews, seller, stock, sizes, images and the product link. A third mode saves the written reviews of products. Prices and stock are for the delivery region you choose. No Wildberries login, no cookies, no API key. The prefilled search (наушники, 10 products) usually finishes in 30–80 seconds and costs $0.049 on the Free plan.
Use it for marketplace research: compare prices and discounts in a category, watch competitors' sellers and stock, check ratings and read what buyers write about a product.

Table of contents
- What it does
- Quick start
- Use cases
- Input
- Output
- Pricing and limits
- API, export and integrations
- Troubleshooting
- FAQ
- Related Actors
- Support
What it does
The Actor reads the public Wildberries data a visitor sees on wildberries.ru, in one of three modes:
- Search — for each query, it reads the search results page by page, in Wildberries' order (or by price, rating, newest). One row per product: price and sale price in RUB, discount, rating, review count, brand, seller, stock, sizes, colours, images, category and the position in the results.
- Products — for each article number (nmId) or product link, it reads the product card: the same fields plus stock per size. Products that do not exist are marked
not_foundand are free. - Reviews — for each article number, it saves the newest written reviews: stars, text, pros, cons, colour and size bought, tags, helpful votes, the seller's answer and the number of photos. Each review has the article number of the variant (colour or size) it was written for. Buyer names are not saved.
Every row has status, errorCode, source, url and fetchedAt. A value Wildberries does not show is null, never 0. Entries that give nothing (not_found, error) are free; the Dataset lists the first 25 of them per run and RUN_SUMMARY.withoutResults lists all.
Good fit
- Price and discount research in a Wildberries category, by query and region (
dest). - Tracking the same products over time: run on a schedule and compare
salePriceandstocksbynmId. - Checking a list of article numbers: still on sale, current price, stock per size, seller.
- Reading buyer reviews of your products or your competitors' products.
Not a fit / limits
- Wildberries shows at most 60 pages (about 6,000 products) per search query. For more, split the query (
наушники беспроводные,наушники игровые) or use other sort orders. - Large stocks are shown to visitors as a capped number (usually 37–54), not the warehouse total. Small stocks and 0 (sold out) are exact.
- Reviews: Wildberries serves about the 1,000 newest written reviews per product. No buyer names, no review photos.
- No seller legal details, no sales numbers, no price history, no login-only data (personal discounts, WB Club prices).
Quick start
- Open the Input tab.
- Keep What to scrape =
Search by keywordand the prefilled queryнаушники, or type your own. - Keep Max products per query = 10 (prefill) or raise it.
- Click Start.
- Open the Output tab, view Products, and check
salePrice,rating,feedbacksandsupplier.
Expected result: 10 rows with status complete, in Wildberries search order.
For a list of products, set What to scrape = Products by article number or URL and paste article numbers or links into Article numbers or product URLs. For reviews, choose Reviews of products.
Use cases
| Buyer job | Input path | Output entity | Key fields | Next integration |
|---|---|---|---|---|
| Category price research | queries, sort, dest | product | price, salePrice, discountPercent, position | Google Sheets, CSV |
| Competitor monitoring | productIds + schedule | product | salePrice, stocks, sizes, fetchedAt | Dataset API, webhooks |
| Seller and brand research | queries | product | supplier, supplierId, brand, feedbacks, rating | spreadsheet, BI |
| Review analysis | productIds (mode reviews) | review | rating, text, pros, cons, size, createdDate | LLM, sentiment tools |
Input
Input fields
| Field | Plain name | Type | Required | Default / prefill | Allowed values | Effect | Example | Recommendation |
|---|---|---|---|---|---|---|---|---|
mode | What to scrape | string | no | default search | search, product, reviews, products | What to collect | "reviews" | products is auto: product cards when article numbers are given, else search |
queries | Search queries | array of strings | yes in search | prefill ["наушники"] | 1–20 queries | One search per query | ["iphone 16", "наушники"] | Repeated queries are read once |
productIds | Article numbers or product URLs | array of strings | yes in product and reviews | — | up to 1,000 article numbers or wildberries.ru product links | Products to read | ["219614590"] | Wrong entries become free error rows |
maxItems | Max products per query | integer | no | default 100, prefill 10 | 1–10,000 | Most products per query (search only) | 500 | Wildberries gives at most about 6,000 |
sort | Search order | string | no | popular | popular, rate, priceup, pricedown, newly, benefit | Order of search results | "priceup" | Same as the sort menu on the site |
dest | Delivery region | integer | no | -1257786 (Moscow) | Wildberries region code | Prices, stock and search results for this region | -1257786 | Copy dest from the site's requests after choosing your address |
maxReviewsPerProduct | Max reviews per product | integer | no | 100 | 1–1,000 | Newest written reviews per product (reviews only) | 1000 | |
onlyRequestedVariant | Only reviews of this exact variant | boolean | no | false | Keep only reviews written for the article number you entered | true | Wildberries shows one review list for all colours and sizes | |
proxyConfiguration | Proxy | object | no | {"useApifyProxy": true} | Apify Proxy settings | Proxy for Wildberries requests | {"useApifyProxy": true} | Keep the default: datacenter, with an automatic switch to residential proxy in Russia when Wildberries refuses it |
Empty input in the selected mode gives one free row with errorCode: INVALID_INPUT and a message that names the field; the run ends normally. Extra spaces are removed and duplicates are read once.
Interacting settings
| When | Input A | Input B | Effective behavior | Example | Cost/result effect |
|---|---|---|---|---|---|
| Search mode | mode = search | productIds | Article numbers are ignored, with a warning | — | None |
| Product or reviews mode | mode = product / reviews | queries, maxItems | Queries and maxItems are ignored | — | One row per product / per review |
| Same product twice | productIds | — | Read once | ["219614590", "https://www.wildberries.ru/catalog/219614590/detail.aspx"] | Charged once |
| Variants of one product in reviews mode | productIds | — | Their shared review list is saved once, with a warning | two colours of one product | Each review charged once |
| Region | dest | any mode | Prices, stock and search results follow the region | -1257786 | None |
Input examples
Search products by keyword
{"mode": "search","queries": ["наушники"],"maxItems": 10}
Expected behavior: reads the first Wildberries search results page for наушники in Moscow.
Expected output: 10 product rows with salePrice, rating, feedbacks, supplier, stocks.
Limit or cost note: usually 30–80 seconds, $0.049 on the Free plan.
Product cards by article number or link
{"mode": "product","productIds": ["839226871","https://www.wildberries.ru/catalog/461140947/detail.aspx"]}
Expected behavior: reads each product card.
Expected output: one row per product, with sizes that include the stock of each size.
Limit or cost note: 1,000 article numbers took 46 seconds; not_found and error rows are free.
Newest reviews of a product
{"mode": "reviews","productIds": ["152540730"],"maxReviewsPerProduct": 100}
Expected behavior: reads the newest written reviews of the product and its variants.
Expected output: up to 100 review rows; isRequestedVariant tells whether a review was written for this exact article number.
Limit or cost note: 10 products × 1,000 reviews (7,000 saved) took 66 seconds.
Output
The Dataset has two views, Products and Reviews. The run summary is in the Key-value store record RUN_SUMMARY.
Output fields
Product rows (rowType: product, Search and Products modes):
| Field | Meaning | Type | Can be empty? | Example / enum | Source / notes |
|---|---|---|---|---|---|
nmId | Article number | integer | on error rows | 839226871 | |
imtId | Product group ID (all colours and sizes) | integer | yes | 2362405143 | |
name | Product name | string | on not_found / error | "Наушники беспроводные TWS Pro 2" | As on Wildberries, in Russian |
brand, brandId | Brand | string, integer | yes | "TehnoVolna" | null when Wildberries shows no brand (common for no-name goods) |
price | Price before discount, RUB | number | yes | 2525 | null = not on sale in this region |
salePrice | Price the buyer pays now, RUB | number | yes | 1617 | Lowest among sizes |
discountPercent | Discount from price to salePrice, % | integer | yes | 36 | |
currency | Currency | string | no | "RUB" | |
rating | Average rating, 1–5 | number | yes | 5 | null = no ratings yet (common on new products) |
feedbacks | Number of ratings and reviews | integer | yes | 133538 | |
supplier, supplierId, supplierRating | Seller name, ID, rating | string, integer, number | yes | "Me TradeMark" | Shop name as shown on the site |
stocks | Units in stock in the region, all sizes | integer | yes | 54 | Large stocks are capped by Wildberries; 0 = sold out |
inStock | stocks > 0 | boolean | yes | true | |
sizes | Sizes with price, sale price and stock | array | empty | [{"name": "98-104", "price": 2590, "salePrice": 888, "stocks": 18}] | Stock per size in Products mode only |
colors | Colour names | array | empty | ["белый"] | |
subjectId, subjectParentId | Category IDs | integer | yes | 593 | |
imageUrl, imageUrls | Main image, all images | string, array | yes / empty | image URLs | Up to 30; empty on a partial row with MISSING_FIELDS if the image link map could not be read |
url | Product page | string | on error rows | "https://www.wildberries.ru/catalog/839226871/detail.aspx" | |
query, page, position | Query, results page, position | string, integer, integer | null in Products mode | "наушники", 1, 1 | Search mode only |
input | Your input entry | string | null in Search mode | "461140947" | Products mode only |
dest | Region of prices and stock | integer | no | -1257786 |
Review rows (rowType: review, Reviews mode):
| Field | Meaning | Type | Can be empty? | Example / enum | Source / notes |
|---|---|---|---|---|---|
reviewId | Review ID | string | no | "uwpmaulgiPkCc09UOVEc" | |
nmId | Variant the review was written for | integer | no | 152540730 | Can differ from your article number |
requestedNmId, isRequestedVariant | Your article number; same variant or not | integer, boolean | no | 152540730, true | |
productName, productUrl | Product name and link of the reviewed variant | string | yes | ||
rating | Stars the buyer gave, 1–5 | integer | no | 5 | |
text, pros, cons | Review text, pros, cons | string | yes | null = left empty | |
color, size | Colour and size bought | string | yes | "Белый", "37" | |
tags | Quick tags the buyer picked | array | empty | ||
createdDate, updatedDate | Written, last changed | string | yes | "2026-10-15T10:46:43.664Z" | ISO 8601 |
votesPlus, votesMinus | Helpful / not helpful votes | integer | yes | 0 | |
sellerAnswer, sellerAnswerDate | Seller's answer | string | yes | ||
photoCount, hasVideo | Photos and video attached | integer, boolean | no | 0, false | Counts only, no media |
parentReviewId | Earlier review this one adds to | string | yes | null |
All rows:
| Field | Meaning | Type | Can be empty? | Example / enum | Source / notes |
|---|---|---|---|---|---|
rowType | Row type | string | no | product, review | |
status | Row status | string | no | complete, partial, not_found, error | Only complete and partial are charged |
errorCode, errorMessage | Why a row is not complete | string | yes | NOT_ON_SALE, NOT_FOUND, NO_RESULTS, NO_REVIEWS, INVALID_INPUT, QUERY_REJECTED, SOURCE_ERROR | Empty on complete rows |
source | Wildberries data the row came from | string | no | wb-search, wb-card, wb-feedbacks | |
fetchedAt | When the row was read | string | no | "2026-10-15T11:40:18.126Z" | ISO 8601, UTC |
Output entities and surfaces
| Situation | Dataset/API/KVS/live view | Result shape | User action |
|---|---|---|---|
| Normal product or review | Dataset, view Products / Reviews | one row each, status: complete | Open, export or use the fields |
| Not on sale in the region | Dataset | status: partial, errorCode: NOT_ON_SALE, prices null, stocks: 0 | Try another dest or check later |
| Image links not available | Dataset, RUN_SUMMARY.warnings | status: partial, errorCode: MISSING_FIELDS, imageUrl: null, imageUrls: [] | Run again; other fields are complete |
| Article number does not exist | Dataset | status: not_found, free | Check the number |
| Query without results | Dataset | one not_found row with errorCode: NO_RESULTS, free | Try other words |
| Query Wildberries refuses (e.g. random letters) | Dataset | one error row with errorCode: QUERY_REJECTED, free; other queries go on | Try other words |
| Product without written reviews | Dataset | one not_found row with errorCode: NO_REVIEWS, free | |
| Wrong entry | Dataset | status: error, errorCode: INVALID_INPUT, free | Fix the entry |
| More than 25 entries without results in one run | Dataset lists the first 25; RUN_SUMMARY.withoutResults lists all | input, nmId, status, errorCode per entry, plus a warning | Read the full list in RUN_SUMMARY |
| Run timeout or maximum charge reached | RUN_SUMMARY | status: partial, stopReason: TIMEOUT / CHARGE_LIMIT, saved rows stay | Raise the timeout or maximum charge |
| Wildberries refuses the datacenter proxy | RUN_SUMMARY.residentialFallback: true, a warning and a note in the run message | the run goes on through residential proxy in Russia; same rows, same price | Nothing to do |
| Wildberries blocks or fails | RUN_SUMMARY.stopReason: SOURCE_ERROR, run FAILED | rows saved before the failure stay | Run again later |
Output example
Search mode, from the prefilled input (one row, imageUrls trimmed):
{"rowType": "product","status": "complete","nmId": 839226871,"imtId": 2362405143,"name": "Наушники беспроводные TWS Pro 2","brand": "TehnoVolna","brandId": 311123295,"price": 2525,"salePrice": 1617,"discountPercent": 36,"currency": "RUB","rating": 5,"feedbacks": 133538,"supplier": "Me TradeMark","supplierId": 1174666,"supplierRating": 5,"stocks": 54,"inStock": true,"sizes": [{ "name": null, "price": 2525, "salePrice": 1617, "stocks": null }],"colors": ["белый"],"subjectId": 593,"subjectParentId": 6258,"imageUrl": "https://basket-38.wbbasket.ru/vol8392/part839226/839226871/images/big/1.webp","imageUrls": ["https://basket-38.wbbasket.ru/vol8392/part839226/839226871/images/big/1.webp"],"url": "https://www.wildberries.ru/catalog/839226871/detail.aspx","query": "наушники","page": 1,"position": 1,"input": null,"dest": -1257786,"source": "wb-search","errorCode": null,"errorMessage": null,"fetchedAt": "2026-10-15T11:40:18.126Z"}
Reviews mode (one row):
{"rowType": "review","status": "complete","reviewId": "uwpmaulgiPkCc09UOVEc","nmId": 152540730,"requestedNmId": 152540730,"isRequestedVariant": true,"imtId": 4156371482,"productName": "Кроссовки спортивные на платформе демисезонные","productUrl": "https://www.wildberries.ru/catalog/152540730/detail.aspx","rating": 5,"text": "Хорошие, красивые кроссовки. Возврат, не подошёл размер","pros": null,"cons": null,"color": "Белый","size": "37","tags": [],"createdDate": "2026-10-15T10:46:43.664Z","updatedDate": "2026-10-15T10:52:39.816Z","votesPlus": 0,"votesMinus": 0,"sellerAnswer": "Спасибо за отзыв! …","sellerAnswerDate": "2026-10-15T10:50:59.825Z","photoCount": 0,"hasVideo": false,"parentReviewId": null,"input": "152540730","source": "wb-feedbacks","errorCode": null,"errorMessage": null,"fetchedAt": "2026-10-15T11:14:25.076Z"}
null means Wildberries did not show this value; it is not 0. rating: null means "no ratings yet", not "0 stars".
Pricing and limits
Pricing unit
Pay per event. You pay for:
- Actor start — $0.03 per run (Apify counts one start per GB of memory, at least one; the default 512 MB is one);
- product — each saved
completeorpartialproduct row; - review — each saved review row.
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| Actor start | $0.03 | $0.03 | $0.03 | $0.03 |
| product | $0.0019 | $0.0018 | $0.0017 | $0.0016 |
| review | $0.0018 | $0.0017 | $0.0016 | $0.0015 |
Platform usage (compute, proxy, including the residential fallback) is included. not_found and error rows are free; a run that saves nothing costs only the start fee. If a run fails, you pay only for the rows it saved. The run stops when it reaches your maximum charge and says so in RUN_SUMMARY (stopReason: CHARGE_LIMIT).
Cost examples (Free plan)
| Scenario | Input scope | Rows | Charge | Stop/cap behavior |
|---|---|---|---|---|
| Prefill | 1 query, 10 products | 10 | $0.049 | usually 30–80 s |
| Category research | 3 queries × 100 products | 300 | $0.60 | |
| Price check of a product list | 1,000 article numbers | 1,000 | $1.93 | 46 s in our test |
| Reviews | 1 product × 100 reviews | 100 | $0.21 | |
| Nothing found | 1 query without results | 0 | $0.03 | start fee only |
Limits
- Up to 20 queries, up to 10,000 products per query (Wildberries gives at most about 6,000); up to 1,000 article numbers; up to 1,000 reviews per product.
- Measured in our tests: 5 queries × 1,000 → 5,000 products in 124 seconds (512 MB); 1 query × 6,000 → 5,984–5,987 products in 153–437 seconds (437 s at 512 MB when Wildberries was slow); 1,000 article numbers → 46 seconds (512 MB); 10 products × 1,000 reviews → 7,000 reviews in 66 seconds (512 MB).
- The default run timeout is 600 seconds. When it is reached, the run ends normally with the rows saved so far (
stopReason: TIMEOUT). Big searches can take longer when Wildberries is slow; raise the timeout for them.
API, export and integrations
- API: start the Actor with the Apify API and read the Dataset items as JSON, CSV or Excel.
- Export: the Output tab exports JSON, CSV, Excel, XML and RSS.
- Scheduling: run the same article numbers daily with Apify Schedules and compare
salePriceandstocksbynmIdandfetchedAt. - Webhooks / no-code: send results to Google Sheets, Make or Zapier through Apify integrations.
Use with AI agents (MCP)
- MCP server with only this Actor:
https://mcp.apify.com?tools=cliqtomedia/wildberries-scraper - Smallest input:
{ "queries": ["наушники"], "maxItems": 10 }
- Key output fields:
name,salePrice(RUB),rating,feedbacks,supplier,stocks,url. - 10 products usually take 30–80 seconds and cost $0.049. Keep
maxItemssmall for quick answers.
Troubleshooting
Fewer products than maxItems
Symptom: a query stops at about 6,000 rows, with a warning in RUN_SUMMARY.warnings.
Likely reason: Wildberries shows at most 60 pages of results per query.
Check: the warning names the query.
Action: split the query into narrower ones or run it with other sort orders.
salePrice is null
Symptom: a product row with status: partial and errorCode: NOT_ON_SALE.
Likely reason: the product is sold out or not delivered to this region.
Check: stocks is 0; try the product on the site with the same delivery address.
Action: try another dest or check later.
The run ended with stopReason: TIMEOUT
Symptom: RUN_SUMMARY.status: partial and the warning "The run timeout was reached".
Likely reason: a big search, or Wildberries answered slowly.
Check: the saved rows are in the Dataset.
Action: raise the run timeout in the run options or lower maxItems.
The run failed with SOURCE_ERROR
Symptom: RUN_SUMMARY.stopReason: SOURCE_ERROR; the run ends FAILED, even if rows were saved.
Likely reason: Wildberries refused several new sessions in a row, on datacenter and then on residential proxy. A run without saved rows stops after about 3.5 minutes of such attempts (proxy traffic counted as run time), so a failed run stays cheap.
Check: saved rows are in the Dataset and charged; RUN_SUMMARY.sourceError says what failed.
Action: run again a bit later. This is a failure, not an empty result.
FAQ
Do I need a Wildberries account, cookies or API key?
No. The Actor reads public Wildberries data without a login. It does not solve captchas or log in.
Why are prices different from what I see on the site?
Prices depend on the delivery region (dest) and on the account: WB Club and personal discounts are not included. The Actor sees the price for a visitor without an account in the chosen region.
Why does a review have another article number?
Wildberries shows one review list for all colours and sizes of a product. nmId is the variant the buyer reviewed, requestedNmId is the article number you entered. Turn on Only reviews of this exact variant to keep only yours.
Are the results complete and fresh?
The rows show what Wildberries shows at fetchedAt. Search order and prices change often. The Actor does not promise every product for a query.
Related Actors
- Historical FX Rates Converter — convert RUB prices to your currency for a given date.
- Google Autocomplete Scraper — find product keywords to use in
queries. - Website JSON-LD Structured Data Scraper — read product prices from other online stores.
Support
For bugs, questions or feature requests, open the Issues tab of this Actor. Add the run ID, your input and the errorMessage or RUN_SUMMARY message. Never send tokens, cookies or passwords.