Shein Product Detail & Variants Scraper avatar

Shein Product Detail & Variants Scraper

Pricing

Pay per event

Go to Apify Store
Shein Product Detail & Variants Scraper

Shein Product Detail & Variants Scraper

Extract full product detail from Shein PDPs: all color/size variants with per-variant stock, pricing, size guide, composition, ratings, and images. Supports us.shein.com and regional storefronts. Built for apparel-catalog and dropshipping-import workflows.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Extract full product detail from Shein PDPs: all color/size variants with per-variant stock, pricing, size guide, composition, ratings, and images. Supports us.shein.com and regional storefronts. Built for apparel-catalog and dropshipping-import workflows.

What you get

Each scraped PDP produces one dataset record with:

FieldTypeDescription
goods_idstringShein internal product id (numeric string, extracted from PDP or URL)
goods_snstringShein product SKU/style code (e.g. sw2212215742)
product_urlstringCanonical product page URL
product_namestringProduct display title
brandstringBrand name (Shein sub-brand where available)
category_pathstringBreadcrumb category path (e.g. Women / Dresses / Maxi Dresses)
descriptionstringProduct description text
sale_pricenumberCurrent discounted sale price
retail_pricenumberOriginal / retail price before discount
discount_pctnumberDiscount percentage off retail price (0–100)
currencystringCurrency code (e.g. USD, GBP, EUR)
in_stockbooleanTrue if at least one variant is available
stock_hintstringLow-stock banner text (e.g. "Almost Sold Out") — null if none
colorsarrayColor option objects — {color_name, thumb_url, goods_id_for_color}
sizesarraySize objects — {size_label, size_measurements, in_stock}
size_fitstringSize fit feedback summary (e.g. "Runs small", "True to size")
size_guideobjectSize guide chart — {unit, rows:[{size, bust, waist, hip, length}]}
imagesarrayProduct image URLs (main + all gallery images)
video_urlstringProduct video URL — null if none
materialstringPrimary material name
compositionstringFull fabric composition (e.g. 95% Polyester, 5% Spandex)
care_instructionsstringCare instruction text
review_countintegerTotal number of customer reviews
avg_ratingnumberAverage star rating (0–5)
rating_breakdownobject{true_to_size_pct, quality_pct, shipping_speed_pct}
seller_namestringSeller/store name — null for standard Shein listings
is_flash_salebooleanTrue if the product is on a flash/limited-time sale
flash_sale_pricenumberFlash-sale price if active — null otherwise
flash_sale_endstringISO 8601 end timestamp of the flash sale — null if not a flash sale
scraped_atstringISO 8601 timestamp when this record was scraped
regionstringStorefront region code (us / uk / de / etc.)

Input

ParameterTypeRequiredDescription
productUrlsarrayYesList of Shein PDP URLs to scrape. Each entry is {"url": "https://us.shein.com/...-p-<id>.html"}. URLs must end in -p-<id>.html.
maxItemsintegerYesMaximum number of records to return.
regionstringNoStorefront region code (e.g. us, uk, de). Auto-detected from the URL if omitted.

Example input

{
"productUrls": [
{"url": "https://us.shein.com/product-p-28861291.html"},
{"url": "https://us.shein.com/product-p-12345678.html"}
],
"region": "us",
"maxItems": 100
}

Supported URLs

  • https://us.shein.com/...-p-<id>.html
  • https://shein.co.uk/...-p-<id>.html
  • https://shein.de/...-p-<id>.html
  • Any *.shein.* or shein.com* hostname with a -p-<id>.html path

URLs that do not match the -p-<id>.html pattern are skipped with a warning.

Resuming a large crawl

To continue a run that was interrupted or hit maxItems before finishing:

  1. Find resumeCursor in the previous run's OUTPUT key-value store entry.
  2. Pass it as resumeCursor in the new run's input alongside the same productUrls list.

The actor reopens the previous run's request queue, skipping pages already processed — no duplicate charges, no duplicate records.

Note: resumption only benefits runs that did not complete in a single execution. Single-URL or fully-completed runs do not need it.

Notes

  • Uses Bright Data Web Unlocker (IceBreaker) for guaranteed access to Shein PDPs. BD handles JS rendering and anti-bot detection server-side.
  • A read-through cache reduces redundant BD fetches on re-runs of the same URLs.
  • Halo challenge pages (BD verdict:ok but no product data) are detected and skipped automatically.
  • Price and stock data reflects the state at scrape time. For price monitoring use the companion Shein Product Monitor actor.