# Shein Search Products Scraper (`fastdataapi/shein-search-products-scraper`) Actor

SHEIN Search Products Scraper — Search and extract SHEIN product data, including names, prices, images, ratings, reviews, categories, availability, and product URLs. Useful for fashion research, price comparison, competitor analysis, and e-commerce market insights.

- **URL**: https://apify.com/fastdataapi/shein-search-products-scraper.md
- **Developed by:** [Fast Data API](https://apify.com/fastdataapi) (community)
- **Stats:** 3 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.89 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Shein Search Products Scraper — Prices, Ratings, Stock and SKUs

Shein Search Products Scraper turns any Shein search into a clean product table. Enter keywords, pick one of 38 country stores and get one row per product: name, SKU, price, discount, rating, review count, stock, category, images and product link. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed a price tracking pipeline. No Shein account or login needed. **Each row also keeps the complete product record Shein shows.** Start with one keyword, then add a whole product range.

![Shein Search Products Scraper output: name, price, discount and rating as JSON](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/h-shein-search-hero.webp)

***

### What data can I extract with Shein Search Products Scraper?

Using this Shein product search API, you will be able to extract the following Shein product data:

| 🏷️ Product name | 🆔 Product ID and SKU | 💰 Sale price (number and display) | 💵 Retail price (number and display) |
|---|---|---|---|
| 💲 Prices in US dollars | 🔻 Discount % and on-sale flag | ⭐ Average star rating | 💬 Review count |
| 📦 In stock / sold out | 🗂️ Category name and ID | 🔗 Product link | 🖼️ Main image and image gallery |
| 🏆 Bestseller ranking label | 🎟️ Promotion validity | 🏬 Seller store code | 🔎 Search term, country and sort order |
| 🕒 Collection time | 🧾 Full Shein product record (price objects, colour variants, labels and more) | | |

***

### How to use Shein Search Products Scraper

Built for anyone who needs to scrape Shein products at scale: one run turns a list of keywords into a product sheet with prices, discounts, ratings and stock for the country store you choose.

**Copy to your AI assistant:**

```text
`shein-search-products-scraper` (Apify Actor ID: fastdataapi/shein-search-products-scraper, https://apify.com/fastdataapi/shein-search-products-scraper) is an Apify Actor that returns Shein search results as structured JSON, one item per product: goods_id, goods_sn (SKU), goods_name, sale and retail price (numbers, display text and USD), discountPercent, isOnSale, ratingValue, reviewCount, inStock, categoryId, categoryName, productUrl, imageUrl, imageGallery, rankInfoLabel, promotionLabels, plus every raw field of Shein's product record. Use it whenever someone needs Shein product data without a login - price tracking, catalogue research, trend analysis, or comparing Shein stores across countries. Run it with curl: curl -X POST "https://api.apify.com/v2/acts/shein-search-products-scraper/run-sync-get-dataset-items?token=APIFY_TOKEN" -H "Content-Type: application/json" -d '{"query":["jacket","summer dress"],"countryCode":"us","maxItems":100,"orderBy":"TopRated"}'. Or in Python: ApifyClient("APIFY_TOKEN").actor("shein-search-products-scraper").call(run_input={"query": ["jacket"], "countryCode": "us", "maxItems": 100}) then client.dataset(run["defaultDatasetId"]).list_items().items. Inputs: query (array of strings, search terms, required), countryCode (string, Shein country store, 38 values such as "us", "uk", "de", "fr", "au", default "us"), orderBy (string, "recommend" | "MostPopular" | "NewArrivals" | "TopRated" | "PriceLowtoHigh" | "PriceHightoLow", default "recommend"), maxItems (integer 1-10000, products per search term, default 10), page (integer, start page, default 1), perPage (string "20"-"120", products per results page, default "120"), filter (string, Shein attribute filter IDs, optional), categoryId (string, Shein category ID, optional), minPrice and maxPrice (strings, store currency, optional), dedupeAcrossQueries (boolean, save a product found under several search terms once, default true), proxyConfiguration (object, Apify Proxy settings, residential by default). Each saved product row is charged as the row_result event. Full input schema, every enum and default, and the complete output field list: GET https://api.apify.com/v2/acts/shein-search-products-scraper/builds/default
```

#### Shein Search Products Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor

Point your AI assistant at Apify and it can read Shein on its own: search results with prices, discounts, ratings, review counts and stock for any of 38 country stores. No glue code, no scraping logic in your prompts.

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/shein-search-products-scraper"
```

#### Step by step

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open [Shein Search Products Scraper](https://apify.com/fastdataapi/shein-search-products-scraper) in the Apify Store.
3. Enter the Shein search terms you want products for, one per line, and pick a country store.
4. Click **Start** (or send your API request).
5. Download or stream your results in JSON, CSV or Excel.

#### How to scale Shein Search Products Scraper to bulk

Put every keyword of your product range into the search terms list and raise the products-per-term limit. One run works through the terms one after another, and a product that shows up under several terms is saved once, under the first term that found it, so the actor works as a Shein scraper for a whole category: one clean table without duplicate rows or duplicate charges. Rows are saved as each results page is read, so you can export Shein products to CSV while the run is still going. For a daily Shein price tracker, schedule the run in Apify Console or trigger it from your own code through the API.

***

### ✨ Features

Shein Search Products Scraper is a Shein product scraper that turns search results into clean, structured product data 🛍️. It's ideal for price monitoring, catalogue and trend research, competitor analysis and building product datasets.

It extracts, per product:

- **Prices** – sale and retail price as numbers and as shown in the store, US dollar amounts, the discount and an on-sale flag
- **Ratings and reviews** – average star rating and review count, so it doubles as a Shein reviews and ratings scraper
- **Stock and category** – in-stock flag, category name and category ID
- **Identity and links** – product ID, SKU, product link, main image and image gallery as full https links
- **Labels** – bestseller ranking label and promotion validity
- **The full Shein record** – every other field of Shein's product record, kept unchanged next to the clean columns

⚡ Search 38 country stores in 6 sort orders, starting from any results page.

***

### Use cases 💡

- **Price tracker** — rerun a keyword daily and compare sale prices.
- **Fashion buyer** — see which styles rank as bestsellers by category.
- **Competitor analyst** — compare one keyword across country stores.
- **Data team** — build a Shein product dataset with SKUs and images.
- **AI agent builder** — let an LLM answer "what do Shein jackets cost?".

Building an AI agent? [Connect Shein Search Products Scraper over MCP](#mcp-integration-for-ai-agents) and let it call the actor on its own.

***

### Why choose this actor?

- **Clean columns plus the full record.** A recorded product from the US store came back with a sale price of $18.44, a retail price of $27.89, a 34% discount, a 4.69 rating from 1,001 reviews, a bestseller label, its SKU and 96 fields in total.
- **Results as they load.** In a recorded run for "dress", where Shein listed 16,419 products, the first page of 20 products was saved 30 seconds after the start and the run finished one second later.
- **38 country stores, 6 sort orders.** Results come from the store you pick, and can be sorted by recommendation, popularity, newest, rating or price.

***

### ⬇️ Input

![Shein Search Products Scraper input: search queries, country code and max items](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/h-shein-search-input.webp)

The actor takes a list of search terms; the search terms list is the only required field.

| Parameter | Required | Type | Description | Example value |
|---|---|---|---|---|
| `query` | Yes | array | Search terms, one search each. | `["jacket", "summer dress"]` |
| `countryCode` | No | string | Shein country store, 38 options. Default `us`. | `"uk"` |
| `orderBy` | No | string | `recommend`, `MostPopular`, `NewArrivals`, `TopRated`, `PriceLowtoHigh` or `PriceHightoLow`. Default `recommend`. | `"TopRated"` |
| `maxItems` | No | integer | Maximum products per search term, 1 to 10000. Default `10`. | `100` |
| `page` | No | integer | Results page to start from. Default `1`. | `1` |
| `perPage` | No | string | Products per results page: `20`, `40`, `60`, `80`, `100` or `120`. Default `120`. | `"120"` |
| `filter` | No | string | Optional Shein attribute filter IDs. | `""` |
| `categoryId` | No | string | Optional Shein category ID. | `"1776"` |
| `minPrice` | No | string | Optional minimum price in the store's currency. | `"10"` |
| `maxPrice` | No | string | Optional maximum price in the store's currency. | `"50"` |
| `dedupeAcrossQueries` | No | boolean | Save a product found under several search terms only once. Default `true`. | `true` |
| `proxyConfiguration` | No | object | Apify Proxy settings. Residential by default. | `{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}` |

#### Free plan limits

Free plan: up to 20 products per run (all search terms together) and 200 per month; paid plans have no limit.

#### Example input

```json
{
  "query": ["jacket", "summer dress"],
  "countryCode": "us",
  "orderBy": "TopRated",
  "maxItems": 100,
  "perPage": "120",
  "dedupeAcrossQueries": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

***

### ⬆️ Output

![Shein Search Products Scraper output: one row per product with price, discount and stock](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/h-shein-search-output.webp)

Every product is one typed, normalized JSON item: the clean columns below come first and always have the same names, and a value Shein does not provide is `null`. After them comes the rest of Shein's product record, unchanged. Export the dataset as JSON (default), CSV or Excel.

#### Example output

```json
{
  "section_index": 1,
  "section": "dress",
  "query": "dress",
  "country": "US",
  "sort_order": "recommend",
  "goods_id": "179907337",
  "goods_name": "Aloruh Women's Elegant Black Summer Halter Tie Mini Dress,Party Wedding Guest Night Out Birthday Summer Dresses,Honeymoon Island Vacation Outfits",
  "goods_img": "//img.ltwebstatic.com/v4/j/pi/2026/02/26/67/177207192826a5119d9020f3abfa3d6de7a2030080_thumbnail_405x552.jpg",
  "imageUrl": "https://img.ltwebstatic.com/v4/j/pi/2026/02/26/67/177207192826a5119d9020f3abfa3d6de7a2030080_thumbnail_405x552.jpg",
  "productUrl": "https://us.shein.com/aloruh-women-s-elegant-black-summer-halter-tie-mini-dress-party-wedding-guest-night-out-birthday-summer-dresses-honeymoon-island-vacation-outfits-p-179907337.html",
  "salePriceAmount": 18.44,
  "salePriceDisplay": "$18.44",
  "salePriceUsd": 18.44,
  "retailPriceAmount": 27.89,
  "retailPriceDisplay": "$27.89",
  "retailPriceUsd": 27.89,
  "discountPercent": 34.0,
  "isOnSale": true,
  "ratingValue": 4.69,
  "reviewCount": 1001,
  "inStock": true,
  "stockRaw": "1",
  "categoryId": "12475",
  "categoryName": "Women Mini Dresses",
  "imageGallery": [
    "https://img.ltwebstatic.com/v4/j/pi/2026/02/26/67/177207192826a5119d9020f3abfa3d6de7a2030080_thumbnail_405x552.jpg",
    "https://img.ltwebstatic.com/v4/j/pi/2025/09/11/b7/1757572924c8c91016ff7713643759dc1eeff6a704_thumbnail_405x552.jpg"
  ],
  "rankInfoLabel": "Bestseller in Button Women Dresses",
  "promotionLabels": "Valid before Jun 30, 23:59",
  "storeCode": "4534970445",
  "businessModel": "0",
  "mallCode": "1",
  "scrapedAt": "2026-10-12T09:02:34.006214+00:00",
  "goods_sn": "sz25042590866421212",
  "spu": "z250425908664",
  "comment_num_show": "1000+",
  "soldOutStatus": false
}
```

This product came from a recorded run and is shortened here: the gallery shows 2 images, and the real row also carries about 60 more fields of Shein's own record, such as the full price objects, colour variants and labels.

***

### How does it work?

The actor opens Shein's public search pages in a real browser, the same pages any visitor sees, without a Shein account. For each search term it opens the store's search results with your sort order and filters, and reads the products page by page until your limit is reached or the results run out. If Shein starts blocking a session, the actor retries with a fresh session and a residential proxy on its own. It returns only publicly visible data — what any visitor sees without logging in. The clean output columns stay the same from run to run, so your code and spreadsheets keep working when Shein changes its pages.

***

### How do you integrate Shein Search Products Scraper into your stack?

It works with what you already use: the REST API from any language, MCP for AI agents, and no-code tools. Called over the API, it behaves like a Shein API for search results: send keywords, get product JSON back.

#### Using Shein Search Products Scraper with the Apify API

```python
import requests

response = requests.post(
    "https://api.apify.com/v2/acts/shein-search-products-scraper/run-sync-get-dataset-items",
    params={"token": "APIFY_TOKEN"},
    json={"query": ["jacket"], "countryCode": "us", "maxItems": 100, "orderBy": "TopRated"},
)
for product in response.json():
    print(product["goods_sn"], product["goods_name"], product["salePriceDisplay"], product["ratingValue"])
```

*Works in Go, Ruby, Node.js, cURL — any language that can make an HTTP request.*

#### MCP integration for AI agents

Add the Apify MCP server to your AI client with one command:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/shein-search-products-scraper"
```

This registers Shein Search Products Scraper as a tool your agent can call directly. Ask your agent for Shein products for a keyword and it runs the actor and reads the JSON back. It works in Claude Code, Cursor and Windsurf.

#### No-code tools (n8n, Make, LangChain)

**n8n:** add the Apify node and choose "Run an Actor", or use the HTTP Request node pointed at the run-sync endpoint with your token. Map the product rows into a Google Sheet or your database in the next node.

**Make:** use the Apify app's "Run an Actor" module, then "Get Dataset Items" to pull the products into the rest of your scenario.

**LangChain:** install `langchain-apify` and wrap the actor with `ApifyActorsTool("shein-search-products-scraper")` so your agent can search Shein products by keyword.

***

### Is it legal to scrape Shein data?

Collecting publicly available data from Shein is generally lawful, as long as you stay out of logged-in areas and private information. This actor returns only publicly available data — what any visitor sees without logging in. Product listings are not personal data, but product images and descriptions can be protected by copyright, so check how you reuse them, and respect Shein's terms for your use case. Consult legal counsel if you plan to republish the data.

***

### Frequently asked questions

#### What fields does Shein Search Products Scraper return?

It returns each product's name, ID and SKU, sale and retail price, discount, star rating, review count, stock, category, product link and images, plus the bestseller and promotion labels and the rest of Shein's product record. See [the data fields section](#what-data-can-i-extract-with-shein-search-products-scraper) for the full list.

#### Does Shein Search Products Scraper require a Shein account or login?

No. Only public search results are extracted, and no credentials are needed.

#### How fast does Shein Search Products Scraper run?

In a recorded run for one search term, the first 20 products were saved 30 seconds after the start, most of it spent opening the store, and the run finished one second later. Every run reads live data from Shein, not a cache, so a slow or busy Shein store adds to the run time.

#### What happens if a search returns no products or Shein blocks the run?

A search term with no results simply adds no rows. If Shein stops returning pages partway through, the products already saved are kept, the log and the run's status message say which search term stopped early, and you can run it again later to collect more. If no products can be collected at all, the run ends with a clear status message instead of an error.

#### Can I scrape multiple Shein search terms at once?

Yes. Add as many search terms as you need; one run collects them all and, by default, saves each product once.

#### Does Shein Search Products Scraper work with Claude, ChatGPT, and other AI agent tools?

Yes — Shein Search Products Scraper is available as an MCP tool. Register it in Claude Code, Cursor or Windsurf with `claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/shein-search-products-scraper"`. Any agent that can call an HTTP endpoint can use the REST API directly.

#### Does Shein Search Products Scraper return data in a format LLMs can use directly?

Yes. Each product is typed, normalized JSON with consistent field names, so there is no HTML parsing and no selectors. Pass it straight to an LLM, index it into a vector store, or feed it to an agent tool — no transformation step.

#### What happens when Shein changes its layout or updates its anti-bot system?

The actor is maintained, and when Shein changes, it is updated so your calls keep returning the same JSON fields with no changes on your end.

#### Can I use Shein Search Products Scraper without managing proxies or browser infrastructure?

Yes. The browser, the residential proxy and the retries when Shein blocks a session all run on the actor's side. You send one request and get structured JSON back, with no proxy accounts, no headless browser setup and no maintenance.

#### Which Shein product fields work best for AI training data and RAG indexing?

For RAG, use the text fields: product name, category name, ranking label and the search term. For training data, use the numbers and flags: sale and retail price, discount, star rating, review count and the in-stock flag. The clean columns are plain strings, numbers, booleans and string lists, so no normalization is needed.

***

### Your feedback

Found a bug or missing a field? Let us know in the actor's Issues tab. Every report is read, and fixes ship as new versions of the actor.

# Actor input Schema

## `query` (type: `array`):

What to search for on Shein, one search term per line (for example jacket, summer dress, sneakers). Each search term is searched separately and its products are labelled with it.

## `countryCode` (type: `string`):

Which Shein country store to search; results come from that store. Belgium, Denmark, Finland, Ireland and Norway are searched in Shein's EU store, UAE and Saudi Arabia in Shein's Arabic store, and China in Shein's global store.

## `orderBy` (type: `string`):

Order of the search results. It decides which products are collected first when your limit is lower than the number of results.

## `maxItems` (type: `integer`):

Maximum number of products to save for each search term (1-10000). Fewer rows come back when Shein has fewer results or when a product was already saved under an earlier search term. Free plan: up to 20 products per run (all search terms together) and 200 per month; paid plans have no limit.

## `page` (type: `integer`):

Results page to start from (1 = first page). Use it to continue a search where an earlier run stopped.

## `perPage` (type: `string`):

How many products each results page holds (20-120). Larger pages need fewer page loads.

## `filter` (type: `string`):

Optional Shein attribute filter IDs (for example a color or size filter), as they appear in the link of a filtered Shein results page. Leave empty for no filter.

## `categoryId` (type: `string`):

Optional Shein category ID to limit results to one category (the categoryId column of earlier results shows these IDs). Leave empty for all categories.

## `minPrice` (type: `string`):

Optional minimum price in the store's currency (for example 10). Leave empty for no minimum.

## `maxPrice` (type: `string`):

Optional maximum price in the store's currency (for example 100). Leave empty for no maximum.

## `dedupeAcrossQueries` (type: `boolean`):

When on, a product that shows up under several search terms in one run is saved and charged only once, under the first search term that found it.

## `proxyConfiguration` (type: `object`):

Runs use an Apify residential proxy. If you pick a different proxy here and it returns no products, the Actor switches to a residential proxy and retries.

## Actor input object example

```json
{
  "query": [
    "jacket"
  ],
  "countryCode": "us",
  "orderBy": "recommend",
  "maxItems": 10,
  "page": 1,
  "perPage": "120",
  "filter": "",
  "categoryId": "",
  "minPrice": "",
  "maxPrice": "",
  "dedupeAcrossQueries": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Every saved product, one row per product, labelled with the search term that found it.

## `byQuery` (type: `string`):

The same products in a shorter table; filter the search term column to see one search.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": [
        "jacket"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fastdataapi/shein-search-products-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": ["jacket"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("fastdataapi/shein-search-products-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": [
    "jacket"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call fastdataapi/shein-search-products-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fastdataapi/shein-search-products-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/QqulR8UPVgaoelh7a/builds/XCjRAfSoaQ2NwJy5E/openapi.json
