# RedNote Shop Scraper — China Ecommerce Products & Prices (`zhorex/rednote-shop-scraper`) Actor

Scrape RedNote (Xiaohongshu) china ecommerce data — product listings, prices, sellers and each store's first page. Track competitor pricing, find trending products and monitor your brand on RedNote's shop. 3 modes: product search, product detail and vendor products.

- **URL**: https://apify.com/zhorex/rednote-shop-scraper.md
- **Developed by:** [Sami](https://apify.com/zhorex) (community)
- **Categories:** E-commerce, Lead generation, Social media
- **Features:** Limited permissions
- **Stats:** 39 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.50 / 1,000 product scrapeds

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?

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

## RedNote Shop Scraper — Xiaohongshu Products & Vendor Data

Scrape RedNote (Xiaohongshu / Little Red Book) e-commerce data — product listings, after-coupon and list prices, discounts, sellers and store profiles. Built specifically for the booming RedNote shop surface that the all-in-one social scrapers don't cover.

> ✅ **Start with `vendor_products`** — it is the prefilled default, needs no cookie, and on your first run returns the store's **first page of products (about 6)** — title, after-coupon price, list price, discount %, cover image, store name and rating — plus one store record (rating, brand followers / notes / likes).
>
> ℹ️ **Vendor mode reads one page per store.** It reads the store page RedNote serves to every visitor, which holds the store's first page of products (typically 6); this Actor does not read later pages, and a `cookieString` does not change that. So a higher `maxResults` returns no more, and fields that are not on that page — sales count, SKU variants, category, image gallery, cross-border flag — come back `null`. The run status tells you how many products you got and why.
>
> ⚠️ **Product Search needs a login cookie.** RedNote (xiaohongshu.com) only shows shop **search** results to logged-in users, so the `product_search` mode requires a `cookieString` — without it, a search run returns 0 products (and you are **not** charged). See [How to get your cookieString](#how-to-get-your-cookiestring) below. `vendor_products` and `product_detail` modes take a store/product URL directly.

### How to scrape RedNote products in 3 easy steps

1. **Go to [RedNote Shop Scraper](https://apify.com/zhorex/rednote-shop-scraper)** on Apify Store and click **"Try for free"**
2. **Choose your mode** — search products by keyword (**paste your `cookieString`**), snapshot a store's first page of products, or look up specific product URLs
3. **Click Run** and download your data in JSON, CSV, Excel, or XML

No coding required. Works with Apify's free plan.

### What's RedNote Shop and why scrape it?

RedNote / Xiaohongshu runs a shop alongside its social feed. With 300M+ monthly active users, it is a major social commerce platform. Unlike Western marketplaces (Amazon, Shein, Temu), RedNote tightly couples product listings with social content — every product is tagged in posts, reviewed in notes, and sold by either brands or individual creators.

Scraping RedNote shop data lets you:

- **RedNote dropshipping research** — find trending products before they hit Amazon or Etsy
- **Xiaohongshu price monitoring** — track competitor pricing on RedNote's shop
- **RedNote brand monitoring** — track your products' listings, prices, and seller activity
- **Xiaohongshu vendor analysis** — track top sellers' ratings, brand followers, and the products and prices on their storefront
- **RedNote competitor intelligence** — see which products your competitors feature on their storefront and at what prices
- **Cross-border arbitrage** — identify popular SKUs in China that haven't reached Western markets yet
- **Influencer-product correlation** — combine with the [RedNote All-in-One Scraper](https://apify.com/zhorex/rednote-xiaohongshu-scraper) to map products to the influencers tagging them

### What you can scrape

| Mode | What you get | Best for |
|------|-------------|----------|
| **Product Search** | Products matching a keyword, sortable by price or sales | Discovery, price benchmarking |
| **Vendor Products** | The store's first page of products (about 6) + one store record — no cookie needed | Competitor price snapshots, storefront monitoring |
| **Product Detail** | Specific product URLs, read in a browser — SKU variants, vendor and images only when RedNote's product page exposes them | Deep-dive on individual SKUs |

### Data fields per product

Each product result includes the fields below. Fields marked **(not in vendor mode)** are not on a store's page, so `vendor_products` rows always carry `null` there — `null` means "not fetched", never "none". In `product_search` / `product_detail` they are filled when RedNote's page includes them.

- **itemId** — RedNote product ID
- **title** — product name
- **salePrice / originalPrice / discountPct** — current (after-coupon) and pre-discount pricing with % off
- **currency** — `CNY` unless RedNote's data names another currency (store pages carry no currency field, so vendor rows are always `CNY`)
- **soldCount** — total units sold (popularity signal) **(not in vendor mode)**
- **wantCount** — number of users who saved/wanted the product **(not in vendor mode)**
- **cover** — main product image URL
- **images** — product image gallery **(not in vendor mode)**
- **vendor** — seller info (ID, name, rating); in vendor mode, the store you asked for
- **category** — product category path **(not in vendor mode)**
- **skus** — SKU variants with prices and stock **(not in vendor mode)**
- **crossBorder** — flag for cross-border vs domestic listings **(not in vendor mode)**
- **shippingOrigin** — country / region of origin **(not in vendor mode)**
- **productUrl** — the product's `goods-detail` URL, built from `itemId`
- **scrapedAt** — UTC timestamp

Vendor mode also returns **one store record** (`"mode": "vendor_info"`): `sellerId`, `name`, `logo`, `description` (the label RedNote appends to the store name — 旗舰店 flagship, 海外旗舰店 cross-border flagship, or 的店 for an individual seller's shop), `rating`, `followers` (brand followers), `brandNotes`, `brandLikes`, `brandCollects` and `vendorUrl`. `totalProducts` and `verified` are always `null`: the store page publishes neither the catalog size nor a verification flag.

### Input examples

#### Search products by keyword

```json
{
    "mode": "product_search",
    "searchQuery": "skincare",
    "maxResults": 100,
    "sortBy": "sales",
    "minPrice": 50,
    "maxPrice": 500
}
```

#### Snapshot a store (first page of products, no cookie)

```json
{
    "mode": "vendor_products",
    "vendorUrl": "https://www.xiaohongshu.com/barley/thanos/vendor/64f05eb7306a0d0001c65371"
}
```

Returns the store's first page (about 6 products) plus one store record. `maxResults` can lower that number but not raise it.

#### Look up specific products

```json
{
    "mode": "product_detail",
    "productUrls": [
        "https://www.xiaohongshu.com/goods-detail/64f076e669262b000145d2c0"
    ]
}
```

### How to get your cookieString

`product_search` mode needs your RedNote login cookie (xiaohongshu.com only shows shop **search** results to logged-in users). It takes about 30 seconds:

1. Open **xiaohongshu.com** in your browser and **log in**.
2. Open **DevTools** (F12) → **Network** tab.
3. Refresh the page, click any request to `xiaohongshu.com`, and find the **`Cookie`** request header.
4. Copy the **entire** Cookie value and paste it into the **`cookieString`** input (stored as a secret).

Your cookie authenticates your own session with RedNote; it is never written to the dataset. Cookies expire after a while — if a scheduled search monitor starts returning 0 products, refresh your `cookieString`. The `vendor_products` and `product_detail` modes don't need a cookie.

### Output example — vendor mode (real row, 2026-09-24)

```json
{
    "mode": "vendor_products",
    "itemId": "65019060d2bb200001a8f904",
    "title": "Jeep SPIRIT · 【清仓 断码 特价 】98元两件套冲锋衣外套+银狐绒内胆",
    "productUrl": "https://www.xiaohongshu.com/goods-detail/65019060d2bb200001a8f904",
    "salePrice": 98.0,
    "originalPrice": 188.0,
    "discountPct": 47.9,
    "currency": "CNY",
    "soldCount": null,
    "wantCount": null,
    "cover": "https://qimg.xiaohongshu.com/arkgoods/...",
    "images": null,
    "vendor": {
        "sellerId": "64f05eb7306a0d0001c65371",
        "name": "JEEPSPIRIT户外服饰",
        "rating": 4.5
    },
    "category": null,
    "skus": null,
    "crossBorder": null,
    "shippingOrigin": null,
    "scrapedAt": "2026-09-24T10:35:49+00:00"
}
```

### Output example — product search

```json
{
    "mode": "product_search",
    "itemId": "642a1b3c0000000023019f7e",
    "title": "Skincare Set - Hydrating Toner + Serum + Moisturizer",
    "productUrl": "https://www.xiaohongshu.com/goods-detail/642a1b3c0000000023019f7e",
    "salePrice": 199.00,
    "originalPrice": 299.00,
    "discountPct": 33.4,
    "currency": "CNY",
    "soldCount": 12500,
    "wantCount": 5400,
    "cover": "https://...",
    "images": ["https://...", "https://..."],
    "vendor": {
        "sellerId": "5cfbc3f10000000018023ebb",
        "name": "BeautyBrand Official",
        "rating": 4.8
    },
    "category": "Beauty / Skincare / Sets",
    "skus": [
        {"skuId": "...", "spec": "Normal Skin", "price": 199.00, "stock": 1200},
        {"skuId": "...", "spec": "Sensitive Skin", "price": 199.00, "stock": 800}
    ],
    "crossBorder": false,
    "shippingOrigin": "China",
    "scrapedAt": "2026-05-05T22:00:00Z"
}
```

### Pricing

This Actor uses **Pay-Per-Event** pricing — only pay for results:

| What you pay | Price |
|--------------|-------|
| Per product scraped | **$0.0075** |
| Per vendor info record | **$0.025** |

**Typical costs**:

- Search 100 products: ~$0.75
- Snapshot one store (first page ≈ 6 products + 1 store record): ~$0.07
- Detailed lookup of 50 products: ~$0.38
- Track 5 competitor stores daily (first page of each): ~$0.35 per day

No compute or proxy charges — you pay only the listed events.

### Scrape RedNote products with Python, JavaScript, or no code

Use this Actor directly from the Apify platform (no coding required), or call it programmatically:

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("zhorex/rednote-shop-scraper").call(run_input={
    "mode": "product_search",
    "searchQuery": "lipstick",
    "maxResults": 100,
    "sortBy": "sales"
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['title']} — ¥{item['salePrice']} (sold {item['soldCount']})")
```

**JavaScript**

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('zhorex/rednote-shop-scraper').call({
    mode: 'product_search',
    searchQuery: 'lipstick',
    maxResults: 100,
    sortBy: 'sales'
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Proxy configuration

Residential proxies are strongly recommended for reliable results — configured by default using Apify's residential proxy group. You can substitute your own proxy provider in the input.

### Use cases by industry

- **DTC brands**: monitor your own listings, track competitor prices, plan promotional campaigns
- **Dropshippers and resellers**: identify trending Chinese products before they hit Amazon, Etsy, Shopify
- **Sourcing agents**: scout Chinese products for clients in cosmetics, fashion, home goods
- **Market research firms**: build datasets on Chinese consumer goods trends
- **Investment analysts**: track e-commerce activity for Chinese consumer brands
- **AI / training data teams**: collect product data for recommendation systems and pricing models

### FAQ

**Does this need a proxy?**
The default config uses Apify's residential proxy; keep it on for reliable results.

**Does it work with Chinese keywords?**
Yes. RedNote is a Chinese-language platform — searches in Chinese return the most accurate results. English keywords also work but with fewer results.

**What's the difference between this and the RedNote All-in-One Scraper?**
The all-in-one focuses on **social content** (posts, profiles, comments, videos). This shop scraper focuses on **commerce** (product listings, vendors, prices, SKUs). They complement each other — combine them to map products to influencers who feature them.

**Can I track price changes over time?**
Yes. Schedule this Actor to run daily/weekly and store the data — you'll have a price history for the products you look up, or for the products on a store's first page.

**Is RedNote's shop accessible from outside China?**
Some product listings are accessible globally, others are domestic-only. Cross-border products are flagged via the `crossBorder` field in search / detail results (a store page does not say, so vendor rows carry `null`). Some cross-border (海外) flagship stores show no products at all on the public store page this Actor reads — a vendor run on one returns only its store record (a `cookieString` does not change that).

**Is there a RedNote / Xiaohongshu shop API?**
RedNote does not offer a public commerce API for international developers. This Actor is a **Xiaohongshu shop API alternative** — it extracts structured product data from the web interface. Keyword **search** uses your own login cookie (RedNote gates search behind login); **vendor** and **product-detail** modes take a store or product URL directly.

**How fresh is the data?**
Live — every run fetches current data directly from RedNote's public pages. Prices reflect what's visible at scrape time.

**Is scraping RedNote products legal?**
`vendor_products` and `product_detail` read pages RedNote shows to every visitor; `product_search` uses the `cookieString` you provide for your own session. The Actor does **not** bypass authentication. Always review your local laws and RedNote's terms of service for your specific use case.

### Integrations & data export

Export your data in JSON, CSV, Excel, or XML. Integrate with:

- **Google Sheets** — automatic data sync for price-tracking dashboards
- **Zapier / Make / n8n** — workflow automation and competitor alerts
- **REST API** — programmatic access from any language
- **Webhooks** — real-time notifications when scrapes complete

[See all integrations →](https://docs.apify.com/platform/integrations)

### Other scrapers by Zhorex

**Chinese Digital Intelligence Suite:**

- 🆕 [Chinese Brand Monitor](https://apify.com/zhorex/chinese-brand-monitor) — Cross-platform brand mention aggregator (Weibo + RedNote + Bilibili + Douban + Xueqiu, sentiment + dedup, $0.06/mention). **Pairs perfectly with this Actor**: you're already tracking RedNote shop listings and prices — pair with cross-platform brand monitoring to see consumer response to the products and brands you're selling, all in one normalized API call.
- [RedNote All-in-One Scraper](https://apify.com/zhorex/rednote-xiaohongshu-scraper) — Posts, profiles, comments, videos (the social side)
- [Weibo Scraper](https://apify.com/zhorex/weibo-scraper) — China's Twitter (580M+ users)
- [Douban Scraper](https://apify.com/zhorex/douban-scraper) — Long-form reviews and ratings (movies/books/music)
- [Xueqiu Scraper](https://apify.com/zhorex/xueqiu-scraper) — Chinese stock-discussion sentiment, cashtag indexing
- [JD.com Scraper](https://apify.com/zhorex/jd-scraper) — JD.com product detail extraction

**B2B Review Intelligence:**

- [G2 Reviews Scraper](https://apify.com/zhorex/g2-reviews-scraper)
- [Capterra Reviews Scraper](https://apify.com/zhorex/capterra-reviews-scraper)
- [Booking.com Reviews Scraper](https://apify.com/zhorex/booking-reviews-scraper)

**Other Tools:**

- [Perplexity AI Search Scraper](https://apify.com/zhorex/perplexity-ai-scraper)
- [Telegram Channel Scraper](https://apify.com/zhorex/telegram-channel-scraper)

Not affiliated with, endorsed by or sponsored by RedNote (Xiaohongshu). Names are used only to describe the data source.

***

### Your Review Matters ⭐

If you have used this Actor, **a 30-second rating helps, good or bad**:

1. Go to the [RedNote Shop Scraper page](https://apify.com/zhorex/rednote-shop-scraper)
2. Click the star rating
3. Optionally leave a one-line note about your use case

**Why it matters**: ratings help other users judge whether this Actor fits their use case.

**Found a bug or missing feature?** [Open an issue](https://apify.com/zhorex/rednote-shop-scraper/issues) on the Actor page.

***

*Last updated: September 2026 · Actively maintained · Built by a developer who maintains a suite of Chinese-platform scrapers on Apify.*

# Actor input Schema

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

What you want to scrape from RedNote's shop section.

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

Keyword to search for products. Required for 'product_search' mode. Examples: 'skincare', 'lipstick', 'sneakers'.

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

RedNote login cookies — xiaohongshu.com shows shop SEARCH results only to logged-in users, so this is required for 'product_search'. How to get it: open xiaohongshu.com in your browser while logged in → DevTools → Network → any request → copy the full 'Cookie' request header and paste it here.

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

Vendor / store URL or bare seller id. Works with no cookies and returns the store's first page of products (about 6) plus one store record. The prefilled store is a live example (JEEPSPIRIT) so your first run returns real products; swap in the stores you track.

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

One or more RedNote product URLs. Required for 'product_detail' mode.

## `maxResults` (type: `integer`):

Maximum products to return. Applies to product_search and vendor_products modes. In vendor_products mode this Actor reads only the store's first page of products from the public store page (about 6 products, with or without a cookie), so a higher value returns no more.

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

Sort order for product search results.

## `minPrice` (type: `integer`):

Optional: only return products with sale price >= this value (in CNY).

## `maxPrice` (type: `integer`):

Optional: only return products with sale price <= this value (in CNY).

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

Proxy settings. Residential proxies are strongly recommended for reliable results.

## Actor input object example

```json
{
  "mode": "vendor_products",
  "searchQuery": "skincare",
  "vendorUrl": "https://www.xiaohongshu.com/barley/thanos/vendor/64f05eb7306a0d0001c65371",
  "productUrls": [
    "https://www.xiaohongshu.com/goods-detail/PRODUCT_ID"
  ],
  "maxResults": 50,
  "sortBy": "general",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "mode": "vendor_products",
    "searchQuery": "skincare",
    "vendorUrl": "https://www.xiaohongshu.com/barley/thanos/vendor/64f05eb7306a0d0001c65371",
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("zhorex/rednote-shop-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 = {
    "mode": "vendor_products",
    "searchQuery": "skincare",
    "vendorUrl": "https://www.xiaohongshu.com/barley/thanos/vendor/64f05eb7306a0d0001c65371",
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("zhorex/rednote-shop-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 '{
  "mode": "vendor_products",
  "searchQuery": "skincare",
  "vendorUrl": "https://www.xiaohongshu.com/barley/thanos/vendor/64f05eb7306a0d0001c65371",
  "maxResults": 50
}' |
apify call zhorex/rednote-shop-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zhorex/rednote-shop-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/ZENtz97rMhB1I72Xr/builds/BhOvgOQaS7Mu4a32T/openapi.json
