SHEIN Scraper - Products, Prices, Discounts & Ratings avatar

SHEIN Scraper - Products, Prices, Discounts & Ratings

Pricing

from $1.60 / 1,000 product results

Go to Apify Store
SHEIN Scraper - Products, Prices, Discounts & Ratings

SHEIN Scraper - Products, Prices, Discounts & Ratings

Scrape SHEIN product listings by keyword or from any category, sale or search link. Returns product ID, SKU, title, link, category, current price, genuine was-price and discount, star rating, review count, stock, flash-sale and clearance flags, and images. Nine regional storefronts.

Pricing

from $1.60 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

SHEIN Scraper: Products, Prices, Discounts & Ratings

Scrape SHEIN product listings by keyword, or from any category, sale or search link you paste. Returns clean, structured product data including a genuine was-price and discount, not a guessed one.

Covers the Australian, Singapore and Canadian storefronts, each with its own catalogue and currency.

What you get

Every product is one dataset row:

FieldDescription
productId, sku, spuSHEIN's own identifiers
titleProduct name
urlDirect link to the product page
category, categoryIdCategory the product sits in
priceCurrent price
originalPriceWas-price, only present when the item is genuinely reduced
discountPercent, discountAmountDiscount size, only on reduced items
isOnSaleWhether the item is genuinely reduced
currency, priceUsdStorefront currency symbol, plus a USD figure for cross-market comparison
rating, reviewsCountStar rating and number of reviews
inStock, stockAvailability and remaining units
isFlashSale, isClearancePromotion flags
hasVideoWhether the listing has a video
image, imagesPrimary image and the full image list
storeCode, mallCodeSeller/marketplace identifiers
scrapedAtUTC timestamp of collection

On the was-price

Most listings show the same value for retail and sale price, meaning the item is not discounted. This scraper leaves originalPrice, discountPercent and discountAmount empty in that case rather than echoing the current price back as a "was" price. When a discount is real, all three are populated. So isOnSale is a reliable filter.

Input

Search by keyword

{
"mode": "search",
"queries": ["summer dress", "wide leg jeans"],
"storefront": "au",
"maxItems": 200
}

Scrape URLs

Paste category, sale or search links:

{
"mode": "url",
"urls": ["https://au.shein.com/RecommendSelection/Women-Clothing-sc-017172961.html"],
"storefront": "au",
"maxItems": 500
}

Options

OptionDefaultNotes
modesearchsearch (by keyword) or url (paste links)
queries(none)Keywords, one per line. Search mode only
urls(none)Listing links, one per line. URL mode only
storefrontauau, sg, ca
sortByrelevanceSite default, price, rating, reviews or biggest discount
minPrice, maxPrice(none)Price range, in the storefront's currency
minRating(none)Minimum stars. Unrated products are excluded when set
onSaleOnlyfalseOnly genuinely reduced products
includeOutOfStocktrueTurn off to return only what is available
maxItems20Total cap across all keywords and links. 0 means no limit
maxPages0Listing pages per keyword or link. 0 means no limit
resumeFromRunId(none)Continue an interrupted run, skipping what it already returned
incrementalModefalseRecurring runs return only new and changed products
stateKey(none)Name the saved state; derived from the search when empty
emitUnchangedfalseAlso return unchanged products in incremental mode
emitExpiredfalseAlso return products that have disappeared
proxyApify proxyConnection used to reach the site
mcpConnectors(none)Optionally pipe results into Notion, Linear, Airtable

Filters apply to both modes, so a pasted category link can be narrowed the same way a keyword search can.

Recurring runs and resuming

Turn on incrementalMode and every run after the first returns only what is new or changed, each row carrying changeType, changedFields, firstSeenAt and lastSeenAt. Set emitUnchanged to get everything each time, or emitExpired to be told when a product disappears.

Category and sale pages are recommendation feeds, so the products SHEIN shows rotate between visits. Expect some products to be reported as new on each run simply because the feed surfaced them this time. Price changes, by contrast, are real: SHEIN moves promotional prices frequently, and those show up as updates with price in changedFields.

Delisted products are only reported when a run reads a listing all the way through. If a run stops at maxItems, it cannot tell "gone" from "not reached yet", so it says nothing rather than guessing.

If a run is interrupted, pass its run ID as resumeFromRunId and the next run skips whatever it already returned.

Send results into your apps (MCP connectors)

Authorize a connector under Apify, Settings, API & Integrations, then pick it in mcpConnectors. Notion also needs notionParentPageUrl. Each product is written as a readable summary; the complete record always stays in the Apify dataset. A connector problem never fails the run or changes the dataset.

How deep can it go?

Each listing link yields up to 120 products, which is one full page of SHEIN's own results. To collect more, pass more links: run several categories, sale pages or searches together and the totals add up, deduplicated by product.

A large category holds far more than 120 products, and this scraper does not currently walk past the first page of one. If you need deeper coverage of a single category, split it into narrower sub-categories or searches and pass those as separate links.

Pricing

Pay per result: you are charged for each product returned, plus a one-off start fee. You are not charged for duplicates: products already returned in the same run are filtered before billing.

Notes and limits

  • There is no full-detail mode. A product's own page carries more (attributes, size and colour options, seller, the full image set), but the site serves only one product page per session, so fetching details would cost a fresh session per product, around 130 times the price of a listing result. Rather than ship a paid option that fails four times in five, it is left out. Everything listed above comes from the listing itself.

  • Results reflect what the chosen storefront shows for that region. Prices, availability and the catalogue itself differ between storefronts.

  • A keyword search returns SHEIN's own ranked results, so ordering can shift between runs.

  • If a listing is temporarily unavailable, the run finishes with whatever it collected and says so in the log rather than failing outright.