SHEIN Products, Variants & Reviews Scraper
Pricing
Pay per event
SHEIN Products, Variants & Reviews Scraper
Extract public SHEIN product details, prices, availability, variants, ratings, and review samples for recurring assortment monitoring.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract public SHEIN product listings and product details into structured JSON, CSV, Excel, or API-ready records. The Actor is designed for recurring fashion assortment monitoring: capture current prices, availability, images, variants, ratings, and public review samples without maintaining a browser scraper.
What does this SHEIN scraper do?
The Actor accepts SHEIN product URLs, product keywords, or both. It opens a coherent US SHEIN browser session, reads products exposed on the public discovery surface, and enriches reachable product pages from structured product data.
Each default-dataset row represents one product. When SHEIN challenges a detail page, keyword and currently featured URL inputs can still return a verified listing-level record rather than an invented or empty detail object. Fields that could not be verified are null or empty arrays.
Who is it for
- Retail and brand analysts comparing prices and visible assortment.
- Merchandising teams taking repeatable category snapshots.
- Market researchers collecting product, rating, and review evidence.
- Data engineers feeding public product records into warehouses or spreadsheets.
- Developers integrating SHEIN product extraction through the Apify API.
Why use this Actor?
- URL and keyword inputs can be combined in one run.
- Typed output separates missing data from empty strings.
- Variant and review samples are included when SHEIN exposes a reachable detail page.
- Stable product IDs support comparisons between scheduled runs.
- The Actor fails on invalid domains and unsupported URL shapes.
- A bounded maximum-product limit keeps run size predictable.
What data can it extract?
| Field | Meaning |
|---|---|
productId | SHEIN product identifier |
productGroupId | Variant group identifier when exposed |
url | Canonical or requested product URL |
name | Public product name |
brand | Brand when exposed on the detail page |
description | Product description when exposed |
category | Public category name or identifier |
color | Product color when exposed |
price | Current observed sale or offer price |
currency | Price currency, usually USD for the US surface |
availability | Public structured availability value |
rating | Aggregate rating when exposed |
reviewCount | Aggregate public review count |
images | Product image URLs |
variants | SKU, size, color, price, currency, and availability objects |
reviews | Bounded public review samples |
scrapedAt | UTC extraction timestamp |
Getting started
- Open the Actor input page.
- Add one or more keywords, SHEIN product URLs, or both.
- Choose
maxItemsandmaxReviewsPerProduct. - Keep the low-cost direct default, or enable a sticky US residential proxy if direct detail requests are challenged.
- Start the run.
- Open the default dataset to export JSON, CSV, Excel, XML, or RSS.
A small first run is recommended because SHEIN may vary the products available on its public discovery surface.
Input parameters
startUrls
An array of public shein.com product detail URLs. URLs must contain the normal -p-<productId>.html path. Other domains, search URLs, category URLs, and malformed URLs fail validation.
keywords
An array of 1–100 character product phrases. A product must contain every word of a phrase, case-insensitively. Keyword discovery covers products present on SHEIN's current public discovery surface; it is not a promise of complete site search.
maxItems
Maximum unique products saved. Allowed range: 1–500. Default: 20.
maxReviewsPerProduct
Maximum embedded public review samples retained per product. Allowed range: 0–100. Set it to 0 to omit review text. Aggregate rating fields can still be present.
proxyConfiguration
Standard Apify proxy configuration. Direct mode is the default and works for public homepage listing data, but it may receive more detail-page challenges. Enable a sticky US residential identity when needed.
Example: find SHEIN products by keyword
{"keywords": ["t-shirt"],"maxItems": 5,"maxReviewsPerProduct": 3,"proxyConfiguration": { "useApifyProxy": false }}
Example: extract a product URL
{"startUrls": [{ "url": "https://us.shein.com/1pc-Coconut-Oil-Scented-Slow-Rebound-Squishy-Stress-Ball-p-482705721.html" }],"maxItems": 1,"maxReviewsPerProduct": 10}
Example output
This shortened record reflects current listing-level behavior. Detail-only fields remain nullable when SHEIN challenges enrichment.
{"productId": "482705721","productGroupId": null,"url": "https://us.shein.com/1pc-Coconut-Oil-Scented-Slow-Rebound-Squishy-Stress-Ball-p-482705721.html","name": "1pc Coconut Oil Scented Slow Rebound Squishy Stress Ball","brand": null,"description": null,"category": "7216","color": null,"price": 2.55,"currency": "USD","availability": null,"rating": null,"reviewCount": null,"images": ["https://img.ltwebstatic.com/v4/j/spmp/2026/05/23/43/1779541272b6df9710c2fde88e99a793b028f95b97_thumbnail_405x552.jpg"],"variants": [],"reviews": [],"scrapedAt": "2026-07-29T00:00:00.000Z"}
Image hosts and paths change over time. Do not use the shortened example URL as a permanent asset reference.
Product variants and SHEIN reviews
When a detail page is reachable, variants contains normalized SKU-level size, color, offer price, currency, availability, and URL values. reviews contains a bounded sample with author, rating, title, body, date, and public attributes.
Listing fallback rows contain empty variants and reviews arrays. The Actor never presents guessed variants or reviews as source data.
How much does it cost to extract SHEIN products?
The Actor uses pay-per-event pricing:
- a $0.0049 start event once per run;
- a tiered item event for each product saved;
- the BRONZE item rate is $0.003196 per product, with lower rates at higher usage tiers.
At the BRONZE rate, 10 saved products cost about $0.0369, 100 products about $0.3245, and 500 products about $1.6029, excluding any separate Apify proxy charges included in your platform plan. Actual tier and platform usage can differ by account.
Failed, duplicate, rejected, or unsaved records are not charged as items.
Recurring assortment monitoring
Schedule the Actor daily or weekly with the same keywords. Export each dataset to your warehouse and compare rows by productId to identify:
- newly visible products;
- products no longer present on the sampled discovery surface;
- observed price changes;
- rating or review-count changes;
- variant and availability changes when detail enrichment succeeds.
The Actor produces snapshots; it does not maintain history, send alerts, or compare runs by itself.
Export and integrations
The default dataset works with Apify integrations for Google Sheets, Make, Zapier, webhooks, and cloud storage. For data pipelines, use the dataset items API after the run finishes. Preserve productId and scrapedAt when loading snapshots.
Run through the API with cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~shein-products-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords":["dress"],"maxItems":5,"maxReviewsPerProduct":3}'
Run with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/shein-products-scraper').call({keywords: ['dress', 't-shirt'],maxItems: 20,maxReviewsPerProduct: 5,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/shein-products-scraper').call(run_input={'keywords': ['dress'],'maxItems': 10,'maxReviewsPerProduct': 5,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with Apify MCP
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/shein-products-scraper"
Claude Desktop, Cursor, and VS Code can use this MCP server configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/shein-products-scraper"}}}
Example prompts:
- "Run the SHEIN scraper for summer dress and return five records."
- "Extract this public SHEIN product URL and summarize its visible variants."
- "Collect a SHEIN assortment snapshot for dresses, shirts, and phone cases."
Limits and source behavior
SHEIN uses risk challenges and changes its public application structure. The Actor uses a coherent browser session and structured source data, but no route can guarantee that every product detail page is reachable on every run.
Keyword coverage is limited to products currently exposed on the public US discovery surface. This first release does not claim complete keyword search, category pagination, coupon extraction, historical data, login-only data, or full review pagination.
The keyword shein reviews has measured search demand, but this Actor extracts product review samples only. It does not scrape company or service reviews.
Troubleshooting
The run returned no keyword matches
Use a more general product term or try again after the discovery surface changes. A successful zero-row keyword run means none of the currently exposed products matched every word; it does not mean the full SHEIN catalog has no match.
A product URL could not be extracted
Confirm that it is a public shein.com product URL containing -p-<id>.html. Direct access is the default; if it is challenged, optionally retry with a sticky US residential proxy. Explicit URLs fail closed when neither detail data nor a current listing fallback is available.
Variants or reviews are empty
The product may not expose those values, maxReviewsPerProduct may be zero, or SHEIN may have challenged detail enrichment. Inspect the other fields to determine whether the row is listing-level.
The run times out
Reduce maxItems, keep one coherent proxy session, and avoid very large batches. Smaller scheduled snapshots are more reliable than one large request against a protected storefront.
Legality
Only collect public information you are authorized to use. Follow SHEIN's terms, applicable privacy and database laws, and your organization's compliance requirements. Do not use review text to identify, profile, or contact individuals. Configure retention and exports appropriately.
This Actor is an independent extraction tool and is not affiliated with, endorsed by, or sponsored by SHEIN.
FAQ
Does it need a SHEIN account?
No. It is designed for public anonymous product surfaces.
Can it scrape the complete SHEIN catalog?
No. Keyword discovery is bounded to the current public discovery surface. Use product URLs when you already know the products of interest.
Does it extract coupon codes?
No. Coupon-related terms appeared in demand research, but coupon extraction is not implemented and is intentionally not claimed.
Are all reviews included?
No. The Actor retains up to maxReviewsPerProduct review samples embedded in reachable product detail data.
Can I schedule it?
Yes. Apify schedules can run the same input repeatedly. Store each dataset snapshot externally if you need history or change detection.
What happens when SHEIN shows a challenge?
A keyword-discovered or currently featured product can use verified listing data as a fallback. An unsupported explicit product fails rather than returning fabricated details.
Related Automation Labs Actors
For wider retail monitoring, explore the other e-commerce extraction Actors published by Automation Labs. Only choose a related Actor whose source and output contract match your workflow.
Support
For reproducible problems, open an Actor issue with the run URL, redacted input, expected result, and one affected public product URL. Do not include credentials or private data.