Wildberries Scraper at a glance
Wildberries Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes kind, recordid, nmid, rootid and url, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Web data
- Pricing
- $2.00 per 1,000 results (Free plan), from $1.20 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 26 options
Scrape Wildberries marketplace: product search with prices (wallet vs retail), discounts, stock, ratings and seller data. Paste product or seller links for review analytics and seller registration info. Incremental monitoring with NEW, UPDATED, REAPPEARED, EXPIRED, resume and MCP export.
What Wildberries Scraper can do
- Two ways in. A keyword search that walks result pages in order, or pasted links (search, product or seller pages), each classified and read on its own path.
- Wallet vs retail pricing. Both prices come straight from the marketplace's own pricing object; the discount percentage and discount flag are computed from those two values, never guessed.
- Reviews per product. A rating summary (average, total count, per-star distribution, counts with text or photo) plus the most recent review rows, capped to the number you choose.
- Seller identity. Every search result row names its seller (id, storefront name, rating); pasted seller links resolve the seller's legal registration record (name, trademark, INN, OGRN/IP and related fields).
- Incremental monitoring. For recurring runs: records are classified NEW, UPDATED or UNCHANGED against a saved baseline by default. EXPIRED needs the current run to have Emit expired on and to scan the whole scope end to end; REAPPEARED only ever follows a record an earlier such run already marked EXPIRED.
- MCP export. Pipes results into your apps through MCP connectors (optional) and never changes the dataset when doing so.
Choose what to collect
These inputs let you configure Wildberries Scraper - Products, Prices, Reviews. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Search looks up products by keyword. URL mode reads specific Wildberries pages you paste: search pages, product pages (reviews) and seller pages. |
querystring | Search mode: a product keyword, for example 'iphone', 'nike shoes' or a Russian phrase like 'ноутбук'. Used with the sort and filter fields below. |
urlsarray | URL mode: pages to read, one per line. Search links (a search page with a search term) are walked forward with pagination. Product links return the product's review surface and rating summary. Seller links return the seller's registration data. Category, brand and promotion pages are not supported: each is skipped with a warning in the log. Multi-value supported. |
ignoreUrlFailuresboolean | On: a pasted link that is not supported is skipped with a warning and the other links are still read. Off: the run fails when any link is not supported. |
maxItemsPerUrlinteger | Cap on records read from each pasted link. Empty splits Max items evenly across the links. |
sortBystring | Ordering of the results. Price ascending and Price descending also re-order the collected rows so the ordering holds. |
priceMininteger | Only collect products priced at or above this many rubles, applied to the collected results. Leave empty for no lower bound. |
Show 19 more inputs
| Input | What it controls |
|---|---|
priceMaxinteger | Only collect products priced at or below this many rubles, applied to the collected results. Leave empty for no upper bound. |
minRatinginteger | Only collect products rated at or above this value (integers 1 to 5). Leave empty for no rating filter. |
minFeedbacksinteger | Only collect products with at least this many customer reviews. Leave empty for no review filter. |
onlyWithDiscountboolean | Collect only products whose current wallet price is below the retail price. |
deliveryTimestring | Only collect products the marketplace can deliver within this window. This is a client-side approximation applied to the collected results: it uses the shortest delivery estimate across a product's sizes (the sum of the card's two delivery-time values, in hours), and products whose card carries no delivery estimate are left out (the log says how many per page). Empty means any. |
fetchDetailsboolean | When on, each collected product additionally gets its full detail card (description, characteristics) when the source serves it. Full details add a per-product surcharge. |
maxFeedbacksPerProductinteger | Attach up to this many recent customer reviews to each product record (reviewer, rating, date, text, pros and cons, seller reply, helpful votes). 0 skips reviews entirely; the cap is 1000 per product. The rating summary and totals are always included. |
includeMetaDataboolean | Add the marketplace's raw card metadata object (meta) to each product row. Off by default. |
maxItemsinteger | Maximum number of records to return across the whole run. 0 means no item limit: the run stops at Max pages or at the natural end of the results. |
maxPagesinteger | Maximum number of result pages to read per search or link. Leave 0 or empty to use the built-in limit of 20 pages per scope; raise it to scan deeper. Max items remains the other stop condition. |
resumeFromRunIdstring | Run id of a previous run of this actor: its collected record ids are seeded as already-seen, so a continued run does not return them again. |
incrementalModeboolean | Remember the previous run of the same search and stamp each record NEW, UPDATED, UNCHANGED or EXPIRED. Only changed rows are emitted by default. A record counts as UPDATED when a compared field changes: price, discount, stock, rating, review count and review totals, name, brand, seller, delivery times, warehouses, colors, image, description and characteristics. The attached review rows, the position in the results and the scrape time are never compared. |
stateKeystring | Name for this monitoring campaign's saved baseline. Give different searches different keys so their baselines never mix. |
emitUnchangedboolean | Also return rows that did not change since the previous run. This returns and bills extra rows. |
emitExpiredboolean | Also return rows tracked earlier that the source no longer returns in a complete scan. This returns and bills extra rows. |
ignoreFieldsForChangesarray | Optional. Field names to leave out of UPDATED change detection, in addition to the built-in handling (the attached review rows, the position in the results and the scrape time never trigger an UPDATED). Use a dotted name such as feedbackSummary.withPhoto to ignore a nested field. The ignored fields are still returned in the output. |
mcpConnectorsarray | Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify → Settings → API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip: never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com). |
notionParentPageUrlstring | URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
kindkindrecordIdrecordIdnmIdnmIdrootIdrootIdurlurlnamenamebrandbrandpricepricepriceRetailpriceRetaildiscountPercentdiscountPercentcurrencycurrencyratingratingShow 71 more fields
feedbacksCountfeedbacksCountstockstocksupplierIdsupplierIdsupplierNamesupplierNamesellerNamesellerNamechangeTypechangeTypechangedFieldschangedFieldsfirstSeenAtfirstSeenAtlastSeenAtlastSeenAtsubjectIdsubjectIdpriceLogisticspriceLogisticshasDiscounthasDiscountreviewRatingreviewRatingvolumevolumeweightweightwarehouseIdswarehouseIdsdeliveryDaysMindeliveryDaysMindeliveryDaysMaxdeliveryDaysMaxcolorscolorsimageUrlimageUrlimageUrlsCountimageUrlsCountsupplierRatingsupplierRatingdescriptiondescriptioncharacteristicscharacteristicsfeedbacksfeedbacksfeedbackSummaryfeedbackSummarybrandIdbrandIdsiteBrandIdsiteBrandIdsubjectParentIdsubjectParentIdkindIdkindIdentityentitymatchIdmatchIdsupplierFlagssupplierFlagspicspicssizessizestotalQuantitytotalQuantitytime1time1time2time2whwhdtypedtypedistdistlogslogspanelPromoIdpanelPromoIdviewFlagsviewFlagsmetametanmReviewRatingnmReviewRatingnmFeedbacksnmFeedbacksdeliveryHoursMindeliveryHoursMinfeedbackSummary.valuationfeedbackSummary.valuationfeedbackSummary.valuationSumfeedbackSummary.valuationSumfeedbackSummary.distributionfeedbackSummary.distributionfeedbackSummary.withTextfeedbackSummary.withTextfeedbackSummary.withPhotofeedbackSummary.withPhotosellerFullNamesellerFullNametrademarktrademarkinninnogrnipogrnipkppkppunpunpfeedbacks.idfeedbacks.idfeedbacks.createdDateDatefeedbacks.ratingRatingfeedbacks.textReviewfeedbacks.prosfeedbacks.prosfeedbacks.consfeedbacks.consfeedbacks.sizefeedbacks.sizefeedbacks.userNamefeedbacks.userNamefeedbacks.answerTextfeedbacks.answerTextfeedbacks.helpfulVotesHelpfulfeedbacks.unhelpfulVotesfeedbacks.unhelpfulVotesfeedbacks.photosCountfeedbacks.photosCountExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"kind": "product",
"recordId": "nm:264193008",
"nmId": 264193008,
"rootId": 264193000,
"url": "https://www.wildberries.ru/catalog/264193000/detail.aspx",
"name": "Ceramic Travel Mug 350 ml Slate Blue",
"brand": "Zelwick",
"price": 1290,
"priceRetail": 2150,
"priceLogistics": 79,
"discountPercent": 40,
"hasDiscount": true,
"currency": "RUB",
"rating": 4,
"reviewRating": 4.6,
"feedbacksCount": 812,
"stock": 156,
"warehouseIds": [
512033
],
"deliveryDaysMin": 12,
"deliveryDaysMax": 36,
"supplierId": 71820456,
"supplierName": "Orinvale Trade",
"supplierRating": 4.7,
"imageUrl": "https://basket-10.wbbasket.ru/vol2641/part264193/264193008/images/c246x328/4.webp",
"description": "Ceramic travel mug with double-wall insulation, a spill-resistant lid and a silicone grip band.",
"characteristics": [
{
"group": "Materials",
"name": "Body material",
"value": "Ceramic"
},
{
"group": "Materials",
"name": "Lid material",
"value": "Silicone"
}
],
"feedbackSummary": {
"valuation": "4.6",
"valuationSum": 812,
"distribution": {
"1": 12,
"2": 9,
"3": 41,
"4": 210,
"5": 540
},
"withText": 305,
"withPhoto": 88
},
"feedbacks": [
{
"id": "wbfb7f3a29d1",
"createdDate": "2026-07-14T09:22:00+03:00",
"rating": 5,
"text": "Keeps tea hot for hours, exactly as pictured.",
"pros": "Sturdy lid, good grip",
"cons": "Slightly heavier than expected",
"userName": "Dmitry K.",
"answerText": "Thanks for the feedback, glad it is working out for you.",
"photosCount": 1
}
],
"changeType": "NEW",
"changedFields": [],
"firstSeenAt": "2026-09-20T00:00:00+00:00",
"lastSeenAt": "2026-09-20T00:00:00+00:00"
}Ways to use this data
- Price monitoring: track wallet vs retail prices and discount depth across a niche on a schedule, and see exactly what changed since the last run.
- Seller and marketplace research: map which sellers dominate a category, along with their storefront rating and legal registration details.
- Catalog and assortment analytics: build structured datasets of products, stock levels and delivery windows for a search or category.
- Customer feedback analysis: pull rating distributions and review text to gauge sentiment for a product line.
- Competitive intelligence: paste a competitor's product or seller links to track their pricing and review growth over time.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does Wildberries Scraper return?
The documented output for Wildberries Scraper includes kind, recordid, nmid, rootid, url, name, brand and price. Availability of each field depends on the source page and the selected mode.
How much does Wildberries Scraper cost?
It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I get only new or changed products on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode with a State key for the campaign. Each run then returns only new and updated records, and unchanged ones are not billed unless you turn that on too.
What is the difference between Resume and Incremental mode?
Resume continues ONE specific interrupted run so you don't pay for records it already collected. Incremental mode is for running the SAME search again and again (for example daily) and getting only what changed since last time, using a saved baseline. They solve different problems and can be used independently or together.
Why did my run fail instead of returning an empty dataset?
If the site refuses every request, or answers with a page that has lost its expected product data, the run stops with a clear message so "no results" is never confused with "nothing could be read". Run it again in a few minutes. If only some pages could not be read while others returned records, the run still succeeds and its status message says so.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
