Shein Search Products Scraper & Customer Reviews avatar

Shein Search Products Scraper & Customer Reviews

Under maintenance

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Shein Search Products Scraper & Customer Reviews

Shein Search Products Scraper & Customer Reviews

Under maintenance

Shein 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

ScrapeLabs

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

13 days ago

Last modified

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)

FieldTypeDefaultDescription
queryarray (stringList)["jacket"]Required. Product keywords to search. Add multiple items to run several searches in one job.
countryCodestring (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).
orderBystring (enum)"recommend"Sort order: Recommended, Most Popular, New Arrivals, Top Rated, Price Lowโ†’High, Price Highโ†’Low.
maxItemsinteger10Max products to scrape per query (1โ€“10,000).
pageinteger1Start page for pagination.
perPagestring (enum)"120"Requested items per page (20โ€“120). See caveats below โ€” Shein's server-rendered results don't always honor this.
filterstring""Extra freetext filter parameter passed to Shein's search.
categoryIdstring""Restrict results to a specific Shein category ID.
minPrice / maxPricestring""Price range in local currency.
proxyConfigurationobjectApify RESIDENTIALShein blocks bare datacenter IPs โ€” residential proxy is required for reliable results.

๐Ÿ’ฌ Customer Reviews (new in this actor)

FieldTypeDefaultDescription
includeReviewsbooleantrueWhen 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).
maxReviewsinteger20Max reviews collected per product (1โ€“200).
reviewStarsarray (select)["all"]Keep only reviews matching these star ratings, e.g. ["1","2"] for 1โ˜…/2โ˜… complaints only.
reviewKeywordsarray (stringList)[]Case-insensitive substring filter over review text, e.g. ["runs small","cheap material"]. Empty = keep all reviews.
reviewsSortBystring (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 fieldTypeDescription
reviewStatusstring"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.
reviewsSortAppliedstringThe review order actually observed, not just what was requested.
reviewsReturnedintegerCount of reviews kept after reviewStars/reviewKeywords filtering and the maxReviews cap.
reviewsarrayNormalized 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[]:

FieldTypeDescription
reviewIdstring | nullShein's review identifier.
ratingnumber | nullStar rating for that review.
contentstring | nullReview text.
reviewDatestring | nullReview date as returned by Shein.
sizeBoughtstring | nullSize the reviewer purchased, when Shein exposes it.
reviewerNamestring | nullReviewer display name, when Shein exposes it.
hasPhotoboolean | nullWhether 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, reviewsReturned and the full reviews[] 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 includeReviews on 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 with reviewStatus: "blocked" and reviews: [] โ€” this is never faked as "none" (no reviews).
  • Nullable review fields. sizeBought, reviewerName and hasPhoto are not populated by Shein for every review; they come back null rather than a fabricated value when absent.
  • Reviews are locale-scoped. A us run returns English-language US-market reviews; reviewKeywords should be written in the storefront's language, and a de run will not surface English-language complaints.
  • perPage mainly 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; maxItems and pagination still control the total number of products collected.
  • No sentiment scoring, no "top complaints" roll-up. reviewKeywords/reviewStars are 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.