SHEIN Product Scraper
Pricing
from $10.00 / 1,000 product — full details
SHEIN Product Scraper
Get SHEIN product data by URL, goods ID or SKU, or browse whole categories. Clean JSON: price in local currency and USD, full-res images, colour variants, rating, stock, size-fit. 40+ regions. From $5/1,000 results.
Pricing
from $10.00 / 1,000 product — full details
Rating
5.0
(2)
Developer
Magpie
Maintained by CommunityActor stats
2
Bookmarked
244
Total users
76
Monthly active users
28 days
Issues response
3 days ago
Last modified
Categories
Share
SHEIN Product Scraper: SHEIN scraper API for product, price and category data
Scrape SHEIN product data two ways: browse a category to pull whole product lists, or pass a product URL, goods ID or SKU for a single product, in any region and currency. Output is clean JSON, CSV or Excel, or you can pull it through the Apify API. Built for reliability: when other SHEIN scrapers break, this one keeps working.
Reliability: detail lookup (URL /
goods_id) resolves across 40+ SHEIN storefronts in real local currency — prices checked against the live SHEIN websites (UK, DE, FR, IT, ES, NL, PT, AT, CH, PL, RO, TR) and identical · 🧹 clean ~22-field schema · 🖼️ full-resolution images
Perfect for price monitoring, dropshipping & reselling, competitor research, catalog enrichment, and fashion-trend analytics.
Two ways in — one clean output
- 🎯 Detail (URL / ID): give it exact product URLs,
goods_ids or SKUs and get the full detail record for each. Works across every storefront. - 📂 Browse (category): give it one or more
categoryIdsto pull every product in that category — optionally narrowed bysearchTermsto keep only matching titles.
Both return the same clean product schema, so one pipeline handles any of them.
✨ Why this scraper
- It keeps working when SHEIN changes things. SHEIN periodically changes how it routes and gates requests; this actor automatically falls back to a working route rather than returning empty results, and tells you (via
regionFallback) when it had to. - Detail works everywhere, in real local currency. Any
goods_id/ product URL resolves at the same price the SHEIN website shows in that country — GBP in the UK, AED in the UAE, JPY in Japan, and so on. If SHEIN doesn't sell a product in that country you get a clearnot_available_in_regioninstead of a misleading price. - Clean output. A tidy ~22-field record — no internal junk, ready for a sheet, DB, or app.
- Full-resolution images — the complete gallery plus colour-variant swatches.
- Fast & cheap. Batched fetching.
ℹ️ Keyword search is no longer available — SHEIN stopped serving that service. Use
categoryIdsto browse categories (withsearchTermsas an optional title filter) orproductUrls/goodsIdsfor exact products. A run with nothing to do ends immediately and is not charged.
💷 Pricing
Pay per product record — you're billed only for products actually returned, never for empty results. Free trial included so you can test before you spend.
| Event | What you get | Price |
|---|---|---|
| Product | one product from a category browse — price, images, rating, stock, discount | $5 / 1,000 |
| Product (full detail) | one product from a URL / goods ID — adds size-fit %, full gallery, colour variants, review count | $10 / 1,000 |
Category browsing is the cheap, high-volume way to pull catalogs; full detail is the premium, targeted lookup. A browse of 500 products costs $2.50; 50 exact product lookups cost $0.50.
📥 Input
| Field | Type | Description |
|---|---|---|
searchTerms | string[] | Title filter for categoryIds — keep only products whose title matches. Keyword search on its own is no longer available. |
maxProductsPerTerm | integer | How many products to return per category (default 100). |
sort | string | Category sort: empty = recommended, 10 = price low→high, 11 = price high→low. |
productUrls | string[] | Detail. SHEIN product URLs, any region (www.shein.co.uk, us.shein.com, de.shein.com, …). |
goodsIds | string[] | Detail. SHEIN goods_id values — alternative/addition to URLs. Pair with country. |
skus | string[] | Detail. SHEIN SKUs (the sku field in every record, e.g. sz260429143242426816727) — alternative/addition to URLs and IDs. Pair with country. |
categoryIds | string[] | Browse. SHEIN category IDs — pulls every product in the category. Combine with searchTerms to keep only title matches. |
country | string | ISO country for pricing/locale (GB, US, DE, FR, …). Sets the region for browse; overrides the URL's region for detail; required for goodsIds/categoryIds without URLs. |
currency | string | Optional currency override (GBP, USD, EUR, …). |
maxItems | integer | Stop after N records total. |
proxyConfiguration | object | Apify Proxy (default) — recommended for larger runs. |
Example input
Browse a category:
{"categoryIds": ["2030"],"searchTerms": ["dress"],"maxProductsPerTerm": 100,"country": "GB"}
By product URL or ID (detail):
{"productUrls": ["https://www.shein.co.uk/...-p-209758798.html","https://us.shein.com/...-p-47307085.html"],"country": "GB","proxyConfiguration": { "useApifyProxy": true }}
Or fetch by ID:
{ "goodsIds": ["209758798", "47307085"], "country": "US" }
Or by SKU:
{ "skus": ["sz260429143242426816727"], "country": "GB" }
📤 Output
One clean record per product, pushed to the dataset (export JSON / CSV / Excel, or pull via the Apify API). See ./examples/example-output.json for a full real sample.
| Field | Description |
|---|---|
id, sku, spu | Product / SKU / product-family identifiers |
url | Canonical product URL |
title | Product name |
category, categoryId | Category |
price, priceFormatted | Current price (number + display string) |
listPrice, listPriceFormatted, discountPercent | Original price + discount (when on sale) |
currency, priceUsd | Currency + USD price (cross-region compare) |
inStock | Availability |
images | Full-resolution image gallery |
colorVariants | Colour-variant swatch images |
color | Colour (when labelled) |
rating, reviewsCount | Ratings & review count |
fit | Size-fit breakdown (true-size / large / small %) |
videoUrl | Product video (when present) |
storeCode | Marketplace store/seller code |
region | { country, currency } |
regionFallback | true when the record came from the actor's second route because that country's own web storefront wasn't reachable. Price and currency are still that country's — it's a transparency flag, not a warning. Omitted otherwise. |
scrapedAt | ISO timestamp |
{"id": "209758798","sku": "sz25092919833193799","title": "Sweetra Women's Oblique Shoulder Flounce Bodycon Dress","url": "https://www.shein.co.uk/...-p-209758798.html","category": "Women Mini Dresses","price": 9.49,"priceFormatted": "£9.49","listPrice": 11.99,"discountPercent": 20,"currency": "GBP","priceUsd": 12.54,"inStock": true,"images": ["https://img.ltwebstatic.com/...jpg", "..."],"colorVariants": ["https://img.ltwebstatic.com/...jpg", "..."],"rating": 4.68,"reviewsCount": 94,"fit": { "trueSize": "88%", "large": "0%", "small": "12%" },"region": { "country": "GB", "currency": "GBP" },"scrapedAt": "2026-06-26T11:15:20.505Z"}
🚀 How to scrape SHEIN product data
- In the app: set the input, click Start, download from the dataset.
- Via API / CLI: call the actor with the input above; read results from the dataset. Integrate with Make, Zapier, n8n, or your own code.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('native_emblem/shein-product-scraper').call({goodsIds: ['209758798'],country: 'GB',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0].priceFormatted); // e.g. £9.49
Runnable Python, Node and curl examples, plus a daily SHEIN price tracker script, are in the shein-product-scraper repo on GitHub.
SHEIN price tracker and price monitoring
Schedule the actor daily (Apify Schedules) on the same goodsIds or
categoryIds and compare price, listPrice and discountPercent between
runs. Every record carries scrapedAt, so a day-by-day price history is one
dataset export away. Set country per run to track the same product in several
regions: priceUsd makes the cross-region comparison direct.
Is there a SHEIN API?
SHEIN has no public product API. This actor is the practical substitute: give it a product URL, goods ID, SKU or category ID and it returns the product record as structured JSON, with local prices for 40+ storefronts. Call it from the Apify API, or use the ready-made integrations for Make, Zapier and n8n.
Scraping SHEIN for dropshipping and competitor research
Browse a category with categoryIds to pull the whole listing (price, discount,
rating, stock, images), then filter with searchTerms to keep only the titles
you care about. Pull full detail (size-fit %, colour variants, review count)
only for the products that make the shortlist, so you pay the higher detail
price just where it matters.
❓ FAQ
Which regions are supported? 40+ SHEIN storefronts — UK, US, all major EU,
LATAM, MENA, and APAC. Set country (or just use a regional URL) and prices
come back in that country's currency, matching the SHEIN website there. If a
product isn't sold in that country, its record has
error: "not_available_in_region" (not charged).
URLs or IDs? Either. Paste product URLs, or pass goods_id values with a
country. Mix both.
How fast / how much can I scrape? Batched fetching (up to 20/50 ids per
request depending on mode). Suitable for one-off lookups up to large catalog
runs via categoryIds.
How fresh is the data? Live — fetched at request time (note scrapedAt).
Is the output stable? Yes — a fixed, clean schema (above), so it won't break your pipeline.
Do I need a proxy? Apify Proxy is on by default and recommended for larger runs.
Support? Open an issue on the actor page — fast turnaround.
Is scraping SHEIN allowed? This actor collects publicly available product information. You are responsible for using the data in line with SHEIN's terms and applicable law.
🔗 More scrapers by Magpie
Same proxyless, clean-JSON approach, other data sources:
- App Reviews Scraper — Google Play + App Store reviews & app metadata
- Google Trends Scraper — interest over time & region, related queries, trending searches
- ATS Job Feed Scraper — live jobs from Greenhouse, Lever, Ashby & SmartRecruiters
Also searched as: shein scraper, scrape shein, shein api, shein product data, shein price scraper, shein price tracker, shein dropshipping data, fashion data, ecommerce scraper.