Shein Search Products Scraper avatar

Shein Search Products Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Shein Search Products Scraper

Shein Search Products Scraper

SHEIN Search Products Scraper extracts product listings, prices, ratings, reviews, images, categories, product details, and URLs from SHEIN search results. Automate product research, price tracking, competitor analysis, trend discovery, and e-commerce market research.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

ScraperForge

ScraperForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Shein Search Products Scraper — Product Listings, Prices & Images from 38 Country Sites

Search SHEIN by keyword across 38 regional sites and export the results as structured product data: product ID, name, product URL, image, sale price and the listing fields SHEIN publishes on its search results.

Filter by price range and category, sort by popularity, new arrivals, rating or price, and page as deep as you need — up to 1,000 products per query.


What is Shein Search Products Scraper?

SHEIN moves faster than almost any retailer on earth — thousands of new SKUs a day — and it has no public product API. Its search pages are heavily protected, JavaScript-rendered, and challenge unfamiliar traffic.

This Actor handles that. It runs a real browser session, works through SHEIN's search results page by page, deduplicates by product ID, and streams each product into your dataset as it is found so partial results survive an interrupted run.

It also has a two-path extraction strategy: the primary path reads SHEIN's embedded product data, and a DOM fallback reads the visible product cards when that data is missing or has changed shape. If a page comes back empty after a challenge, the Actor clears the challenge and re-reads the page rather than abandoning the run.


What data can you extract?

FieldDescription
goods_idSHEIN product identifier — the deduplication key
goods_nameProduct title
goods_urlLink to the product page
goods_imgProduct image URL
salePriceCurrent price as displayed
queryThe search keyword that produced this row
section, section_indexWhich query section the row belongs to
countryRegional SHEIN site the row came from
sort_orderSort mode applied to the search

Additional listing fields published by SHEIN in its search payload are passed through on each row. Rows recovered by the DOM fallback are marked with _source: "dom" and carry the core subset above.


Why teams scrape SHEIN search results

For fashion trend research

SHEIN's catalogue turnover is its own trend signal. Sorting by NewArrivals shows what the fastest-moving retailer in fast fashion is betting on this week — often weeks before it shows up elsewhere.

For competitive pricing

Price benchmarking against SHEIN is unavoidable in apparel. minPrice/maxPrice plus PriceLowtoHigh gives you the entry-price floor in any category, by market.

For dropshipping and reselling product research

MostPopular and TopRated sorting surfaces products with demonstrated demand rather than guesses, and the product URL takes you straight to the listing.

For market and localisation analysis

The same keyword across us, de, br and ae returns different assortments and prices. That comparison is how you understand regional pricing strategy and catalogue differences.

For e-commerce data teams

Product IDs, names, images and prices across a category form a clean dataset for classification, image models or price-tracking systems.

For brand protection

Searching your brand or product names on SHEIN surfaces copies and lookalikes, with links for evidence.


How to scrape SHEIN products step by step

  1. Open the Actor and enter your search terms in Search Query — one product type per line.
  2. Pick a Country — the regional SHEIN site to search.
  3. Choose a Sort Order and set Max Items Per Query.
  4. (Optional) Set a price range, category ID, page number and items per page.
  5. Keep residential proxy enabled — this is not optional in practice.
  6. Click Start, then export the Output tab as CSV, Excel or JSON.

⬇️ Input

Example input

{
"query": ["jacket", "winter coat"],
"countryCode": "us",
"orderBy": "MostPopular",
"maxItems": 200,
"perPage": "120",
"minPrice": "10",
"maxPrice": "60"
}

Input reference

FieldTypeDefaultDescription
queryarray["jacket"]Required. Product types to search. Each entry runs as a separate search.
countryCodestringusRegional SHEIN site. 38 options: us, uk, de, fr, it, es, nl, be, at, ch, pl, pt, se, dk, no, fi, ie, ca, mx, br, ae, sa, il, tr, ru, jp, kr, cn, tw, hk, au, in, id, ph, my, sg, vn, th.
orderBystringrecommendrecommend, MostPopular, NewArrivals, TopRated, PriceLowtoHigh, PriceHightoLow.
maxItemsinteger10Maximum products per search query, 1–1000.
pageinteger1Start page for pagination.
perPagestring120Products per page: 20, 40, 60, 80, 100, 120.
minPricestringMinimum price in the site's local currency.
maxPricestringMaximum price in local currency.
categoryIdstringRestrict to a category. Leave empty for all.
filterstringAdditional SHEIN filter options.
proxyConfigurationobjectApify ResidentialResidential is the only reliable mode — SHEIN blocks bare datacenter IPs.

Prices are in local currency. minPrice: "10" means 10 USD on us and 10 EUR on de — the filter is not converted.


⬆️ Output

Example output

{
"section_index": 0,
"section": "jacket",
"query": "jacket",
"country": "US",
"sort_order": "MostPopular",
"goods_id": "34567890",
"goods_name": "Women's Oversized Denim Jacket Washed Blue",
"goods_url": "https://us.shein.com/Womens-Oversized-Denim-Jacket-p-34567890.html",
"goods_img": "https://img.ltwebstatic.com/images3_pi/…",
"salePrice": "$27.99"
}

Illustrative values — a live run returns current SHEIN data.


Usage recipes

Category price floor

{
"query": ["dress"],
"countryCode": "us",
"orderBy": "PriceLowtoHigh",
"maxItems": 200
}

What is new this week

{
"query": ["jacket", "coat", "blazer"],
"countryCode": "uk",
"orderBy": "NewArrivals",
"maxItems": 300,
"perPage": "120"
}

Schedule it weekly and deduplicate on goods_id — anything new is genuinely new to the catalogue.

Proven sellers in a price band

{
"query": ["sneakers"],
"countryCode": "de",
"orderBy": "TopRated",
"minPrice": "20",
"maxPrice": "50",
"maxItems": 200
}

Cross-market comparison

Run the same query with countryCode set to us, de, br and ae, then compare salePrice and assortment. Every row carries country, so one export supports the whole comparison.

Deep pagination

{
"query": ["hoodie"],
"countryCode": "us",
"page": 1,
"perPage": "120",
"maxItems": 1000
}

Larger perPage values mean fewer page loads for the same number of products — noticeably faster and less exposed to challenges.


How does this compare to an official SHEIN API?

SHEIN has no public product API. Its developer-facing programmes are partner and supplier oriented (seller tooling, logistics, affiliate feeds), not a catalogue query interface for third parties. Affiliate feeds, where available, cover a curated product subset with affiliate terms attached — they are not a general search API.

That leaves scraping the public storefront as the practical route to SHEIN catalogue data, which is what this Actor does — while handling the anti-bot layer that makes doing it yourself difficult.


Integrate and automate

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run = client.actor("scraperforge/shein-search-products-scraper").call(run_input={
"query": ["jacket"],
"countryCode": "us",
"orderBy": "MostPopular",
"maxItems": 200,
})
for p in client.dataset(run["defaultDatasetId"]).iterate_items():
print(p.get("salePrice"), "|", p.get("goods_name"), "|", p.get("goods_url"))

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });
const run = await client.actor('scraperforge/shein-search-products-scraper').call({
query: ['jacket'],
countryCode: 'us',
maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

REST API

curl -X POST "https://api.apify.com/v2/acts/scraperforge~shein-search-products-scraper/runs?token=<YOUR_APIFY_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"query":["jacket"],"countryCode":"us","maxItems":200}'

n8n, Make, Zapier and AI agents

Call the Actor from n8n, Make, Zapier or an MCP-capable agent to feed price-tracking or product-research workflows.

Schedules and webhooks

Attach a Schedule for recurring price and new-arrival tracking, and use webhooks or the Google Sheets / Airtable / Slack integrations to route results.


Pricing and what you are charged for

Pay-per-event: a small Actor-start charge plus a charge per product row delivered to your dataset. maxItems multiplied by the number of queries is your cost ceiling.

Because the Actor runs a real browser session through Apify Residential proxies, that proxy traffic is billed separately by the platform according to your plan.

Current rates are on the Pricing tab of this Actor's page, and Apify shows an estimate before and during every run.


Limits, reliability and blocking

  • Residential proxy is effectively mandatory. SHEIN blocks bare datacenter IPs; without residential, runs will not produce results reliably.
  • SHEIN challenges traffic. The Actor detects challenge pages, clears them and re-reads rather than failing — but on a heavily challenged session some pages can still come back short. Deep pagination is the most exposed part of a run.
  • maxItems is per query, so three keywords at 300 each can return up to 900 rows.
  • Maximum 1,000 products per query. Split a category across several keyword variations to go wider.
  • Field availability varies by extraction path. Rows recovered by the DOM fallback carry the core fields (goods_id, goods_name, goods_url, goods_img, salePrice) and are marked _source: "dom".
  • Prices are local-currency strings as displayed, not normalised numbers — parse them per market.
  • Image URLs point at SHEIN's CDN and can change.
  • Larger perPage is usually better: fewer page loads means fewer opportunities to be challenged.
  • Default run options are 4 GB memory and a 1-hour timeout; raise the timeout for deep multi-query runs.

This Actor collects publicly visible product listings — the same search results any shopper sees, without logging in. It does not log in, place orders, or access account or checkout data.

Product images and descriptions are the intellectual property of SHEIN and its suppliers: use them for research, price comparison and analysis, and do not republish imagery or copy as your own product content. SHEIN's terms restrict automated access, so keep volumes proportionate. This dataset contains no personal data. You are responsible for ensuring your use complies with SHEIN's terms and applicable law.


❓ Frequently asked questions

Do I need a SHEIN account?

No. The Actor reads public search results without logging in.

Does SHEIN have a public API?

No general product API for third parties. Partner and affiliate programmes exist but do not provide open catalogue search, which is why scraping the storefront is the practical route.

Why is residential proxy required?

SHEIN blocks datacenter IP ranges outright. Residential is the only mode that reliably completes runs.

How many products can I get per keyword?

Up to 1,000. Use several keyword variations to cover a category more broadly.

Are prices converted to a single currency?

No. Prices — and the minPrice/maxPrice filters — are in the local currency of the site you select.

What does _source: "dom" mean on a row?

That product was recovered by the DOM fallback because SHEIN's embedded data was missing or changed. The row is valid but carries the core field subset.

How do I find new products only?

Use orderBy: "NewArrivals", schedule the run, and deduplicate on goods_id between runs.

Can I filter by category?

Yes — set categoryId. Leave it empty to search all categories.

Why did a page return nothing?

Usually a challenge landing mid-navigation. The Actor clears it and re-reads once; if a page still comes back empty, lower perPage or reduce concurrency of scheduled runs.

Which export format should I use?

CSV or Excel — the rows are flat. JSON works equally well for pipelines.


Browse the full collection on the ScraperForge profile.


💬 Feedback

Need product-detail enrichment, review data, or a custom price-tracking pipeline? Open an issue on the Issues tab of this Actor.