# Shein Detail Products Scraper (`notchgrid/shein-detail-products-scraper`) Actor

Scrape structured Shein product details from product URLs. Use getGoods for faster, cheaper price/stock/SKU data, or PDP mode when you need richer page data such as title, description, images, variants, and product attributes.

- **URL**: https://apify.com/notchgrid/shein-detail-products-scraper.md
- **Developed by:** [NotchGrid](https://apify.com/notchgrid) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 get goods results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### What does Shein Product Detail do?

**Shein Product Detail** extracts product data from [Shein](https://www.shein.com/) product URLs and saves the results to an Apify dataset. It supports two modes: `getGoods` for fast product availability and pricing data, and `pdp` for richer product detail page data.

Use this Actor when you already have Shein product URLs and want structured product information such as product IDs, SKU data, prices, stock status, seller details, ratings, variants, images, descriptions, and product page metadata.

Need to find Shein product URLs first from search or category pages? Use [Shein Search](https://apify.com/notchgrid/shein-search-products-scraper) to collect listing URLs, then run those URLs here.

### Why use Shein Product Detail?

The recommended default mode is **`getGoods`**. It is faster and cheaper because it focuses on product commerce data such as price, stock, SKU, reviews, seller, shipping, and promotion fields.

Use **`pdp`** when you need fields that usually come from the product detail page, such as product name, description, images, colors, sizes, material details, size fit, care instructions, and richer page-level information. PDP mode is more complete, but it is slower and more expensive than `getGoods`.

### How to use Shein Product Detail

1. Open the Actor input form.
2. Choose `type`: `getGoods` or `pdp`.
3. Add one or more Shein product URLs to `productUrls`.
4. Start the run.
5. Download the dataset in JSON, HTML, CSV, Excel, or another format supported by Apify.

### Input

The Actor accepts two input fields.

| Field         | Type         | Description                                                                      |
| ------------- | ------------ | -------------------------------------------------------------------------------- |
| `type`        | string       | Use `getGoods` for faster commerce data or `pdp` for richer product details.     |
| `productUrls` | string array | Shein product URLs. Each URL must include a goods ID such as `-p-62352228.html`. |

#### Get goods input

```json
{
    "type": "getGoods",
    "productUrls": [
        "https://us.shein.com/--p-475378861.html",
        "https://us.shein.com/--p-62352228.html"
    ]
}
```

#### PDP input

```json
{
    "type": "pdp",
    "productUrls": [
        "https://us.shein.com/--p-62352228.html",
        "https://us.shein.com/--p-475378861.html"
    ]
}
```

Duplicate URLs are processed as provided. If the same product URL appears twice in `productUrls`, the Actor can produce two dataset rows.

### Supported Shein Regions

Use product URLs from one of these supported Shein hostnames.

| Flag | Region         | Shein hostname   |
| ---- | -------------- | ---------------- |
| 🇺🇸   | United States  | `us.shein.com`   |
| 🇬🇧   | United Kingdom | `shein.co.uk`    |
| 🇨🇦   | Canada         | `ca.shein.com`   |
| 🇦🇺   | Australia      | `au.shein.com`   |
| 🇧🇷   | Brazil         | `br.shein.com`   |
| 🇲🇽   | Mexico         | `shein.com.mx`   |
| 🇯🇵   | Japan          | `jp.shein.com`   |
| 🇰🇷   | South Korea    | `kr.shein.com`   |
| 🇸🇦   | Arab           | `ar.shein.com`   |
| 🇩🇪   | Germany        | `de.shein.com`   |
| 🇪🇸   | Spain          | `es.shein.com`   |
| 🇫🇷   | France         | `fr.shein.com`   |
| 🇮🇹   | Italy          | `it.shein.com`   |
| 🇳🇱   | Netherlands    | `nl.shein.com`   |
| 🇵🇱   | Poland         | `pl.shein.com`   |
| 🇵🇹   | Portugal       | `pt.shein.com`   |
| 🇸🇪   | Sweden         | `www.shein.se`   |
| 🇦🇹   | Austria        | `at.shein.com`   |
| 🇷🇴   | Romania        | `ro.shein.com`   |
| 🇪🇺   | Europe generic | `eur.shein.com`  |
| 🇪🇺   | Rest of Europe | `roe.shein.com`  |
| 🇪🇺   | EUQS           | `euqs.shein.com` |

### Output

The output dataset contains one row per processed product URL. Fields can vary depending on the selected mode, product availability, market, and Shein page data.

#### Get goods output

`getGoods` is designed for fast commerce data: prices, stock, SKU, seller, shipping, promotion, and review fields.

```json
{
    "goods_id": "475378861",
    "goods_sn": "sh260517183625591356876",
    "sku_code": "I2mp9n4324l5gf",
    "product_url": "https://us.shein.com/--p-475378861.html",
    "sale_price": 13.57,
    "retail_price": 29.35,
    "retail_discount_price": 15.78,
    "discount_pct": 54,
    "currency": "USD",
    "price_display": {
        "sale": "$13.57",
        "retail": "$29.35",
        "retail_discount": "$15.78"
    },
    "in_stock": true,
    "stock": 20,
    "skus": [
        {
            "sku_code": "I2mp9n4324l5gf",
            "stock": 20,
            "in_stock": true,
            "mall_code": "1",
            "sale_price": 13.57,
            "retail_price": 29.35,
            "discount_pct": 54
        }
    ],
    "review_count": 0,
    "review_count_text": "7",
    "avg_rating": 4.85,
    "seller_name": "gbjcz",
    "sold_by": "Sold by SHEIN",
    "ships_from": "Ships from SHEIN",
    "is_on_sale": true,
    "scraped_at": "2026-08-27T13:55:07.192Z",
    "region": "us",
    "record_type": "getGoods",
    "input_url": "https://us.shein.com/--p-475378861.html",
    "request_url": "https://us.shein.com/--p-475378861.html",
    "input_goods_id": "475378861"
}
```

#### PDP output

`pdp` is designed for richer product page data. Use it when you need product names, descriptions, images, color and size variants, size information, material/care fields, seller data, and ratings.

```json
{
    "goods_id": "62352228",
    "goods_sn": "sg25032052884752433",
    "product_url": "https://us.shein.com/1PCS-Deluxe-Large-Capacity-Duffel-Bag-Multi-Functional-Shoulder-And-Crossbody-Tote-Bag-With-Two-Size-Options-With-Wet-Dry-Pocket-And-Dual-Side-Pockets-For-Travel-And-Fitness-p-62352228.html",
    "product_name": "1PCS Deluxe Large Capacity Duffel Bag - Multi-Functional Shoulder And Crossbody Tote Bag With Two Size Options With Wet/Dry Pocket And Dual Side Pockets For Travel And Fitness",
    "brand": "SHEIN",
    "category_path": null,
    "description": "Free Returns. Free Shipping. 1PCS Deluxe Large Capacity Duffel Bag - Multi-Functional Shoulder And Crossbody Tote Bag With Two Size Options With Wet/Dry Pocket And Dual Side Pockets For Travel And Fitness.",
    "sale_price": 11.16,
    "retail_price": 35.7,
    "discount_pct": 69,
    "currency": "USD",
    "in_stock": true,
    "stock_hint": "Almost Sold Out",
    "colors": [
        {
            "color_name": "Black",
            "thumb_url": "https://img.ltwebstatic.com/images3_spmp/2025/03/20/b2/1742455458e196cf38bb89054f817032b64a653947.png",
            "goods_id_for_color": "62332204",
            "goods_sn": "sg25032052884784097",
            "color_id": "112"
        }
    ],
    "sizes": [
        {
            "size_label": "Size 28853000",
            "size_measurements": null,
            "in_stock": true,
            "sku_code": "I57cfidcqunx",
            "stock": 20
        }
    ],
    "size_fit": "True to size",
    "images": [
        "https://img.ltwebstatic.com/images3_spmp/2025/03/20/d0/174245543227ae87c653d3af91d05da499dc9e24ad_thumbnail_750x999.webp",
        "https://img.ltwebstatic.com/images3_spmp/2025/03/20/63/1742455432980090c2ec09f1873040862533044305_thumbnail_750x999.webp"
    ],
    "review_count": 500,
    "avg_rating": 4.76,
    "seller_name": "Glitz Gallery",
    "is_flash_sale": false,
    "scraped_at": "2026-08-27T14:21:10.288Z",
    "region": "us",
    "record_type": "pdp",
    "input_url": "https://us.shein.com/--p-62352228.html",
    "request_url": "https://us.shein.com/--p-62352228.html",
    "input_goods_id": "62352228"
}
```

### Data table

| Field                         | Description                                          |
| ----------------------------- | ---------------------------------------------------- |
| `record_type`                 | `getGoods` or `pdp`.                                 |
| `region`                      | Region inferred from the Shein product URL.          |
| `goods_id` / `goods_sn`       | Product identifiers.                                 |
| `sku_code` / `skus`           | SKU-level data when available.                       |
| `product_url`                 | Product detail page URL.                             |
| `product_name`                | Product name, mainly available in `pdp` mode.        |
| `description`                 | Product description, mainly available in `pdp` mode. |
| `sale_price` / `retail_price` | Product price fields.                                |
| `currency`                    | Currency code.                                       |
| `in_stock` / `stock`          | Availability fields.                                 |
| `colors` / `sizes`            | Variant data, mainly available in `pdp` mode.        |
| `images`                      | Product image URLs, mainly available in `pdp` mode.  |
| `review_count` / `avg_rating` | Review and rating fields when available.             |
| `seller_name`                 | Seller name when available.                          |
| `input_url`                   | Original product URL from input.                     |
| `request_url`                 | Normalized product URL used for lookup.              |
| `input_goods_id`              | Goods ID extracted from the input URL.               |
| `scraped_at`                  | Timestamp when the dataset row was saved.            |

### Choosing a mode

Start with `getGoods` unless you specifically need page-detail fields. It is usually the better choice for large URL lists, frequent monitoring, price checks, stock checks, SKU checks, seller fields, and rating snapshots.

Use `pdp` when product title, description, images, colors, sizes, size fit, material/care fields, or richer product page data matter more than speed and cost.

### FAQ and support

Does this Actor search Shein categories? No. Use [Shein Search](https://apify.com/notchgrid/shein-search-products-scraper) for search/category pages and listing URLs.

Can I input goods IDs directly? No. This Actor accepts product URLs only.

Can output fields vary? Yes. Shein can return different fields depending on product type, product availability, market, and page format.

For bugs, feature requests, or custom data requirements, use the Actor Issues tab.

# Actor input Schema

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

Choose the direct product endpoint to call.

## `productUrls` (type: `array`):

Shein product URLs to scrape. URLs must include a goods ID.

## Actor input object example

```json
{
  "type": "getGoods",
  "productUrls": [
    "https://us.shein.com/--p-44097996.html"
  ]
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `summary` (type: `string`):

No description

# 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 = {
    "productUrls": [
        "https://us.shein.com/--p-44097996.html"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("notchgrid/shein-detail-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 = { "productUrls": ["https://us.shein.com/--p-44097996.html"] }

# Run the Actor and wait for it to finish
run = client.actor("notchgrid/shein-detail-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 '{
  "productUrls": [
    "https://us.shein.com/--p-44097996.html"
  ]
}' |
apify call notchgrid/shein-detail-products-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,notchgrid/shein-detail-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/OaClN6qKKro1eOMAE/builds/G29tRoZaQW8MjaH6Y/openapi.json
