Shein Product Scraper — Prices, Variants & Reviews
Pricing
from $40.00 / 1,000 product scrapeds
Shein Product Scraper — Prices, Variants & Reviews
Scrape Shein products by keyword search, category URL, product URL, or goods ID. Returns price, variants, sizes, colors, images, rating, description, and optional reviews. Browser-based via Apify Residential proxy. MCP-ready.
Pricing
from $40.00 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape Shein products at scale by keyword search, category URL, product URL, or goods ID. Returns clean, structured JSON: title, sale & retail price, discount, color and size variants, SKUs, the full image gallery, rating, description, attributes, and (optionally) customer reviews. Built MCP-ready for AI agents and browser-based via Apify Residential proxies so it gets through Shein's anti-bot.
What you can do with it
- Dropshipping & product research — pull a category or search term and get every product with prices, discounts, and images.
- Repricing & price monitoring — track sale vs. retail price and discount % per goods ID over time.
- Catalog & trend analysis — capture sizes, colors, SKUs, and ratings across a niche.
- Review mining — embed the latest customer reviews (rating, text, size/color bought, fit) into each product record.
- AI agents — call it from Claude/GPT via Apify MCP with a single keyword or URL and get back agent-friendly JSON.
When to use which input
| Input | Use it for | Billed as |
|---|---|---|
searchQueries | Keyword discovery (e.g. summer dress) | product (or search-result if scrapeProductDetails=false) |
startUrls (search/category) | A specific Shein listing/category page | product (or search-result) |
startUrls (product) | One or more exact product pages | product |
goodsIds | You already have Shein goods IDs | product |
Set scrapeProductDetails=false to return only lightweight listing cards (cheaper, faster) instead of opening every product.
Output
Each product record (one row per product):
| Field | Description |
|---|---|
goodsId | Shein internal numeric goods_id |
title | Product name |
brand | Store / brand (SHEIN, ROMWE, marketplace brand) |
salePrice / salePriceText | Current price (number + display string) |
retailPrice / retailPriceText | Original price (number + display string) |
discountPercent | Discount off retail |
currency | Storefront currency (e.g. USD) |
rating / reviewCount | Average rating (0–5) + number of reviews |
inStock | Stock availability |
color / colors | Primary color + all available color names |
sizes / skus | Size names + SKU variants [{ size, skuCode, price, stock }] |
mainImage / images | Primary image + full gallery |
category / categoryId / breadcrumbs | Category context |
description / attributes | Description + material/style attributes |
reviews | Embedded reviews when scrapeReviews=true |
productUrl / scrapedAt | Canonical URL + ISO 8601 timestamp |
search_result rows (when scrapeProductDetails=false) carry the listing-card subset: goodsId, title, salePrice, discountPercent, mainImage, rating, productUrl.
Pricing (Pay-Per-Event)
| Event | Price |
|---|---|
| Actor start | $0.00005 |
| Product scraped (full detail) | $0.04 |
| Search result (listing card) | $0.005 |
A typical run of 20 full products costs about $0.80. Listing-only runs are $0.005/card. Premium-tier quality at a lower price than the entrenched $0.045/product incumbents.
Quick start
Apify Console
- Enter a keyword in Search queries (e.g.
summer dress), or paste Shein URLs / goods IDs. - Pick your Country / storefront (drives currency and proxy region).
- Set Max items and toggle Scrape full product detail / Scrape reviews.
- Run.
API (JavaScript)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('khadinakbar/shein-product-scraper').call({searchQueries: ['summer dress'],country: 'us',maxItems: 20,scrapeProductDetails: true,scrapeReviews: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("khadinakbar/shein-product-scraper").call(run_input={"goodsIds": ["100123456", "100654321"],"country": "us","scrapeReviews": True,"maxReviews": 10,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["salePrice"], item["currency"])
MCP (AI agents)
The actor is exposed via Apify MCP as apify--shein-product-scraper. Point your MCP client at https://mcp.apify.com?tools=khadinakbar/shein-product-scraper and call it with a keyword, URL, or goods ID.
How it works
Shein protects its product and search pages with a homegrown "armor" risk engine that blocks raw HTTP (including its own BFF JSON API) and challenges datacenter IPs. This actor renders pages in a real Chromium browser through Apify Residential proxies with rotating fingerprints, warms a session on the storefront homepage, and passively captures Shein's own BFF JSON responses (get_goods_detail_static_data, realtime, image) — falling back to JSON-LD, OpenGraph, and DOM extraction. If a session is challenged, it rotates to a fresh residential IP with exponential backoff.
FAQ
Which countries are supported? US, UK, AU, DE, FR, ES, IT, and Global (www.shein.com). The storefront drives currency and the matching residential proxy region.
Why are some runs slower? Shein's armor occasionally challenges the first residential IP; the actor rotates to a fresh one automatically. Lower maxItems for faster test runs.
Do I need cookies or login? No. The actor needs no Shein account — it passes the armor challenge in-browser.
Will it ever return 0 items? If Shein blocks every rotated session, the run finishes SUCCEEDED with a single diagnostic row and a terminal WARNING status (never a silent empty success, never an unexplained failure). Retry, lower maxItems, or switch country.
Can I get individual reviews as separate rows? Reviews are embedded inside each product record (reviews[]) up to maxReviews.
Legal & compliance
This Actor collects only publicly available data from Shein product and listing pages and performs no login or access-control bypass. You are responsible for using the scraped data in compliance with Shein's Terms of Service, applicable laws (including the GDPR/CCPA where relevant), and copyright. Do not use the data to infringe intellectual property or for any unlawful purpose. This Actor is an independent project and is not affiliated with, endorsed by, or sponsored by Shein.