Shein Search Products Scraper & Customer Reviews
Under maintenancePricing
from $3.99 / 1,000 results
Shein Search Products Scraper & Customer Reviews
Under maintenanceShein Search Products Scraper & Customer Reviews extracts product listings, prices, ratings, reviews, images, discounts, availability, seller details, and product metadata from Shein search results. Export data to JSON, CSV, Excel, or API.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
ScrapeLabs
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
๐๏ธ Shein Search Products Scraper & Customer Reviews
Search Shein by keyword across 38 regional storefronts and get full product data plus real customer review text per product โ ratings, review dates, star filters and keyword filters โ in a single run. This Shein product scraper is built on top of a proven Shein search scraper and adds a genuine customer-review child fetch that no other Shein scraper on the Apify Store currently offers from a keyword-search flow (most Shein review scrapers only expose a rating summary, not the review text itself).
โจ What This Actor Does
- Shein search products scraper โ enter one or more keywords (
jacket,dress,shoes...), pick a country, and pull matching products with pricing, images, stock, ratings and promo data. - Shein customer reviews scraper โ for each product, optionally opens the product page in the same warm browser session and collects real customer reviews: star rating, review text, review date, and (where Shein exposes it) size bought, reviewer name and whether the review has a photo.
- Review filters โ keep only reviews matching chosen star ratings (
reviewStars) and/or containing chosen keywords (reviewKeywords), so you can pull "runs small" or "poor quality" complaints across hundreds of products in one run instead of reading reviews by hand. - Honest review status โ every product row reports
reviewStatus(ok/none/blocked) so an empty review list is never confused with "no complaints." - Sort, price range, category filters on the product search itself, plus multi-market coverage (US, UK, DE, FR, and 34 more Shein storefronts).
๐ฅ Input Parameters
Search (base)
| Field | Type | Default | Description |
|---|---|---|---|
query | array (stringList) | ["jacket"] | Required. Product keywords to search. Add multiple items to run several searches in one job. |
countryCode | string (enum) | "us" | Shein regional storefront โ 38 markets (us, uk, de, fr, it, ch, pl, pt, es, se, ca, mx, br, ae, sa, ru, jp, kr, cn, tw, hk, au, in, id, ph, my, sg, tr, nl, be, at, dk, no, fi, ie, vn, th, il). |
orderBy | string (enum) | "recommend" | Sort order: Recommended, Most Popular, New Arrivals, Top Rated, Price LowโHigh, Price HighโLow. |
maxItems | integer | 10 | Max products to scrape per query (1โ10,000). |
page | integer | 1 | Start page for pagination. |
perPage | string (enum) | "120" | Requested items per page (20โ120). See caveats below โ Shein's server-rendered results don't always honor this. |
filter | string | "" | Extra freetext filter parameter passed to Shein's search. |
categoryId | string | "" | Restrict results to a specific Shein category ID. |
minPrice / maxPrice | string | "" | Price range in local currency. |
proxyConfiguration | object | Apify RESIDENTIAL | Shein blocks bare datacenter IPs โ residential proxy is required for reliable results. |
๐ฌ Customer Reviews (new in this actor)
| Field | Type | Default | Description |
|---|---|---|---|
includeReviews | boolean | true | When on, opens each product's page and collects real customer reviews into a reviews[] array. Turn off for the fastest, lowest-anti-bot-risk run (base product data only). |
maxReviews | integer | 20 | Max reviews collected per product (1โ200). |
reviewStars | array (select) | ["all"] | Keep only reviews matching these star ratings, e.g. ["1","2"] for 1โ
/2โ
complaints only. |
reviewKeywords | array (stringList) | [] | Case-insensitive substring filter over review text, e.g. ["runs small","cheap material"]. Empty = keep all reviews. |
reviewsSortBy | string (enum) | "default" | Requested review order: Site Default, Most Recent, Most Helpful. Shein doesn't always honor the request โ see reviewsSortApplied in the output. |
Example Input
{"query": ["jacket", "denim skirt"],"countryCode": "us","orderBy": "recommend","maxItems": 20,"includeReviews": true,"maxReviews": 15,"reviewStars": ["1", "2"],"reviewKeywords": ["runs small", "poor quality"],"reviewsSortBy": "recent"}
๐ค Output
One row per product. Every row carries all of the base scraper's fields โ section_index, section, query, country, sort_order plus the full raw Shein product node (70+ keys, including goods_id, goods_sn, goods_name, goods_url_name, goods_img, detail_image, salePrice, retailPrice, discountPrice, promotionInfo, productMaterial, rankInfo, stock, comment_num, comment_rank_average, percent_overall_fit, comment_num_show, video_url, ext, dynamic_ext, and more) โ plus four new review fields layered on top:
| New field | Type | Description |
|---|---|---|
reviewStatus | string | "ok" โ reviews were fetched, "none" โ product genuinely has no reviews (comment_num is 0), "blocked" โ Shein gated the review request for this product; the base product data is still returned. |
reviewsSortApplied | string | The review order actually observed, not just what was requested. |
reviewsReturned | integer | Count of reviews kept after reviewStars/reviewKeywords filtering and the maxReviews cap. |
reviews | array | Normalized review objects (see below). Empty array when includeReviews is off, when reviewStatus is "none"/"blocked", or when no review matched the filters. |
Each object in reviews[]:
| Field | Type | Description |
|---|---|---|
reviewId | string | null | Shein's review identifier. |
rating | number | null | Star rating for that review. |
content | string | null | Review text. |
reviewDate | string | null | Review date as returned by Shein. |
sizeBought | string | null | Size the reviewer purchased, when Shein exposes it. |
reviewerName | string | null | Reviewer display name, when Shein exposes it. |
hasPhoto | boolean | null | Whether the review includes a customer photo. |
Example Output (single row, trimmed)
{"section_index": 0,"section": "jacket","query": "jacket","country": "US","sort_order": "recommend","goods_id": "167962972","goods_name": "Plus Size Blue Denim Casual Jacket","goods_img": "//img.ltwebstatic.com/...","salePrice": { "amount": "23.99", "amountWithSymbol": "$23.99" },"retailPrice": { "amount": "29.99", "amountWithSymbol": "$29.99" },"comment_num": 204,"comment_rank_average": "4.87","reviewStatus": "ok","reviewsSortApplied": "default","reviewsReturned": 3,"reviews": [{"reviewId": "8841203","rating": 2,"content": "Runs small, ordered a size up and it's still tight.","reviewDate": "2026-05-14","sizeBought": "M","reviewerName": "K.***","hasPhoto": true}]}
๐ Dataset Views
- ๐ All Products โ every scraped product with price, image, review status and review count.
- ๐๏ธ By Query โ filter results by the
section(query) column. - ๐ฌ Customer Reviews โ one row per product with
reviewStatus,reviewsSortApplied,reviewsReturnedand the fullreviews[]array, for reading review content directly in the table.
๐ฏ Use Cases
- Product research with real customer feedback โ pull a category's top styles and their actual reviews instead of just the star average.
- Sizing/fit and quality-complaint mining โ run
reviewKeywords: ["runs small", "see through", "cheap"]across a whole search result to surface every complaint of that type in one job. - Low-rating triage โ set
reviewStars: ["1","2"]to collect only the negative reviews for a set of products before sourcing decisions. - Multi-market price and catalog tracking โ the underlying Shein search scraper still covers 38 storefronts, price range and category filters, and sort by popularity, new arrivals or price.
โ ๏ธ Honest Limitations
- Reviews ride inside the product row, not a separate charged event. No extra billing surprise for turning
includeReviewson beyond normal run time. reviewStatus: "blocked"happens. Shein gates review requests more aggressively than search requests, especially on long runs. A blocked product still returns its full product data withreviewStatus: "blocked"andreviews: []โ this is never faked as"none"(no reviews).- Nullable review fields.
sizeBought,reviewerNameandhasPhotoare not populated by Shein for every review; they come backnullrather than a fabricated value when absent. - Reviews are locale-scoped. A
usrun returns English-language US-market reviews;reviewKeywordsshould be written in the storefront's language, and aderun will not surface English-language complaints. perPagemainly affects the paginated API path. On some search flows Shein's server-rendered page still returns its own default page size regardless of the requested value;maxItemsand pagination still control the total number of products collected.- No sentiment scoring, no "top complaints" roll-up.
reviewKeywords/reviewStarsare filters over real scraped text, not AI-generated summaries โ this actor returns actual review content, not a derived analysis of it. - Some listed country codes may resolve to a shared regional storefront rather than a dedicated one (inherited from the base search scraper's country list).
โ FAQ
Does this replace the base Shein Search Products Scraper? Yes โ every input and output field of the base search scraper still works exactly the same; this actor is a strict superset that adds the reviews feature on top.
Can I get products without reviews?
Yes โ set includeReviews to false for the fastest run with only base product/listing data.
How many reviews can I collect per product?
Up to 200 via maxReviews (default 20), further narrowed by reviewStars and reviewKeywords.
Does it work for every Shein market? Search and product data work across all 38 listed markets. Review availability depends on how many reviews Shein has published for that product in that market.