Scrape the Wildberries Resale second hand marketplace: listing name, condition grade, live and original price, seller, rating, stock, and image URLs. Search by Russian keyword or browse the whole resale segment.
- Resale sourcing: Scan many Russian keywords in one run to find underpriced used items before they get bought up.
- Secondhand market research: Measure how big the resale segment is, what categories sell, and how deep the discount runs against original retail.
- Original item linking: Each resale row can point back to the new listing it came from, so you can compare used pricing against current retail.
- No manual browsing: Get condition grade, price, seller, and images for hundreds of listings without opening a single page by hand.
- Optional seller profile: Add the reseller's public shop details when you need to vet who is selling.
- Add one or more Russian search keywords, or leave the list empty to browse the entire resale segment.
- Set optional filters for condition grade, price range, sort order, and delivery region.
- Click Start: The actor collects every matching resale listing and writes one flat row per item.
- Download your results: Export as Excel, CSV, JSON, or HTML from the Output tab.
| Field | Type | Required | Description |
|---|---|---|---|
searchQueries |
array of strings | No | Russian or English keywords to search the resale segment (for example "платье", "iphone", "кроссовки"). Add several to scrape them all in one run. Leave empty to browse the entire resale marketplace. |
maxResults |
integer | No | Maximum number of resale listings to return across all keywords (0 means unlimited, default 100). |
condition |
array of strings | No | Keep only listings with the selected condition grade(s): New, Perfect, Good, or Has defects. Leave empty to include every condition. |
minPrice |
integer | No | Only include listings priced at or above this ruble value (0 means no minimum). |
maxPrice |
integer | No | Only include listings priced at or below this ruble value (0 means no maximum). |
sort |
enum | No | Order results by popularity, newest first, price high to low, price low to high, or top rated. |
region |
enum | No | Warehouse region for localized resale pricing and availability. |
includeSellerProfile |
boolean | No | Add the reseller's public profile (name, legal entity, trademark) to each row. |
debugLogging |
boolean | No | Turn on detailed run logs for troubleshooting. Not needed for normal use. |
proxyConfiguration |
proxy configuration | No | Residential proxy (default) is required for reliable access. |
Each row in your dataset is one resale listing. All fields are flat with no nested data, so the file opens cleanly in any spreadsheet program.
{
"productID": "312847659",
"name": "Куртка кожаная, б/у",
"brand": "Zara",
"condition": "Хорошее",
"price": 3200,
"originalPrice": 12990,
"discount": 75,
"rating": 4.6,
"feedbacks": 18,
"totalQuantity": 1,
"inStock": true,
"supplier": "Мария К.",
"supplierId": 887412,
"supplierRating": 4.9,
"originProductID": "298104512",
"originProductUrl": "https://www.wildberries.ru/catalog/298104512/detail.aspx",
"sizes": ["M"],
"imageUrl": "https://images.wildberries.ru/312847659/big/1.webp"
}| Field | Type | Description |
|---|---|---|
productID |
string | Resale listing identifier |
name |
string | Listing title |
brand |
string | Brand name |
condition |
string | Condition grade, when Wildberries provides one |
price |
number | Current resale price in rubles |
originalPrice |
number | Original retail price, when the listing references it |
discount |
number | Discount percent versus original price |
rating |
number | Listing or seller rating |
feedbacks |
number | Number of reviews |
totalQuantity |
number | Units in stock |
inStock |
boolean | Whether the listing is currently available |
supplier |
string | Seller display name |
supplierId |
number | Seller identifier |
supplierRating |
number | Seller rating |
originProductID |
string | Identifier of the original new product, when available |
originProductUrl |
string | Link to the original new product listing |
sizes |
array | Available sizes |
imageUrl |
string | Working image URL for the listing |
$4.39 per 1,000 results. No monthly subscriptions and no minimum commits. New Apify accounts include $5 of free usage, so you can try it before you pay.
You only pay for the records you collect. A typical run of 100 listings completes in under 60 seconds.
Create a .env file from .env.example, add your Apify API token, and run:
npm install
npm startThe script uses the Apify API client to start the actor and fetch results.
- Batch your keywords: Add every Russian search term you care about in a single run instead of starting many separate runs.
- Filter by condition and price early: Narrowing the input reduces the number of listings you have to sort through afterward.
- Skip seller profile unless needed: Leave
includeSellerProfileoff for faster runs when you only need listing data. - Set a realistic
maxResults: Cap results to what you actually need to keep runs fast and predictable.
Does this cover the regular Wildberries catalog too? No. This actor only covers the Resale segment, the secondhand marketplace where individuals resell used items. For the regular catalog, see the Wildberries Scraper actor.
What language do keywords need to be in? Russian keywords return the most results since the marketplace is Russian, but English terms often work too.
Why is a condition grade sometimes missing? Wildberries does not always expose a condition grade for every listing. When it is missing, the field is left out of that row rather than filled in with a guess.
For bug reports, missing fields, or feature requests, open an issue under the Issues tab.
