# RedNote Xiaohongshu (小红书) Scraper ✅ NO COOKIES (`atomus/xiaohongshu-scraper`) Actor

Turn RedNote (Xiaohongshu / 小红书) into clean JSON: notes, comments, profiles, products, trends and PGY influencer analytics, by keyword or URL. For AI corpora, consumer and brand research, and social listening. No cookies, no login on any mode; rivals need a session cookie. Failed lookups are free.

- **URL**: https://apify.com/atomus/xiaohongshu-scraper.md
- **Developed by:** [Atomus APIs](https://apify.com/atomus) (community)
- **Categories:** Social media, E-commerce, Automation
- **Features:** Limited permissions
- **Stats:** 216 total users, 60 monthly users, 98.7% runs succeeded, 3 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $16.00 / 1,000 note scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

## RedNote Xiaohongshu (小红书) Scraper

<table width="100%" style="border:none;border-radius:10px;background:#120306">
<tr><td style="padding:34px;border:none">
<span style="color:#F59E0B;font-size:13px;font-weight:700;letter-spacing:2px">REDNOTE 小红书 SCRAPER &nbsp;&bull;&nbsp; XIAOHONGSHU API</span><br><br>
<span style="color:#F5F5F6;font-size:40px;font-weight:800;letter-spacing:-1.2px">See what China buys,<br>and who convinced them.</span><br><br>
<span style="color:#D6D3D1;font-size:16px">RedNote (Xiaohongshu / 小红书 / RED) is where hundreds of millions of Chinese shoppers write first-person reviews before they buy. Seven modes turn that into structured JSON: keyword search, note and video detail, comments, user profiles, product search, the trending hot list, and 蒲公英 (PGY) influencer rate cards. <b style="color:#F5F5F6">No cookies, no login, no xsec_token</b> on any mode, and up to 5,000 results per keyword or target.</span><br><br>
<span style="background:#10B981;color:#FFFFFF;font-size:13px;font-weight:700;padding:6px 13px;border-radius:5px">FAILED LOOKUPS ARE FREE</span>
<span style="background:#1C1917;color:#F59E0B;font-size:13px;font-weight:700;padding:6px 13px;border-radius:5px">&nbsp;7 MODES &nbsp;&bull;&nbsp; UP TO 5,000 PER KEYWORD&nbsp;</span>
</td></tr>
</table>

#### Copy to your AI assistant

Paste this into ChatGPT, Claude, Cursor, or any LLM to start using this Actor right away.

```
atomus/xiaohongshu-scraper is an Apify Actor that returns RedNote / Xiaohongshu (小红书, also called RED or rednote) data as structured JSON, from a keyword or a plain URL, with no cookie and no login on any mode. One input field, searchType, picks the mode: "search" (notes matching a keyword), "note-detail" (one note in full, image or video), "profile" (a user), "comments" (a note's comment threads), "products" (RED store search), "trending" (the hot list) and "influencer" (a creator's 蒲公英/PGY rate card and analytics). Use it whenever someone needs Chinese consumer, brand or creator data - social listening, product and market research in China, influencer discovery and pricing, or an AI training corpus of real user reviews. Run it with curl: curl -X POST "https://api.apify.com/v2/acts/atomus~xiaohongshu-scraper/run-sync-get-dataset-items?token=APIFY_TOKEN" -H "Content-Type: application/json" -d '{"searchType":"search","keywords":["护肤"],"maxItems":50,"sortType":"popularity_descending"}'. Or in Python: ApifyClient("APIFY_TOKEN").actor("atomus/xiaohongshu-scraper").call(run_input={"searchType":"influencer","userUrls":["617175e1000000000201d2b9"]}) then client.dataset(run["defaultDatasetId"]).list_items().items. Inputs: searchType (string, required, default "search"), keywords (string[], for search and products), noteUrls (string[], full explore URLs, xhslink.com app share links, or bare 24-character note ids; for note-detail and comments), userUrls (string[], profile URLs or bare 24-character user ids; for profile and influencer), maxItems (int, default 20, max 5000), maxComments (int, default 20, max 5000), noteType and timeFilter and sortType (free keyword-search filters), includePosts plus maxPostsPerUser (paid add-on, profile mode), includeComments (paid add-on, note-detail mode). Every dataset row carries searchType saying which mode produced it; note rows carry id, type, title, desc, url, liked_count, collected_count, comments_count, shared_count, images, video_url, hashtags, topics, ip_location, timestamp, xsec_token and a nested user object. Billing is per result, per mode: keyword-search note 0.02 USD, note detail or video 0.04, profile 0.04, product 0.04, influencer 0.05, comment 0.01 with a minimum of 2 per note, trending topic 0.01 with a minimum of 2 per run; Apify Gold plans and above pay 20 percent less, and a request that fails is never charged. Full input schema, every enum and default, and the complete output field list: GET https://api.apify.com/v2/acts/atomus~xiaohongshu-scraper/build/default
```

***

### Xiaohongshu MCP Server: use these Actors from ChatGPT, Claude or Cursor

Point your AI assistant at Atomus and it can read the Chinese social platforms on its own: RedNote, Douyin, Weibo and Bilibili, plus TikTok and X. No glue code, no scraping logic in your prompts.

```json
{
  "mcpServers": {
    "atomus": {
      "url": "https://mcp.apify.com?tools=atomus/xiaohongshu-scraper,atomus/douyin-scraper,atomus/weibo-scraper,atomus/bilibili-scraper,atomus/tiktok-scraper,atomus/tiktok-comments-scraper,atomus/twitter-scraper",
      "headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
    }
  }
}
```

Then ask, in plain language:

> "Find the most-liked RedNote notes about sunscreen from the last week, pull the comments on the top three, and tell me what buyers complain about."

That one sentence uses two modes in a row. Pinning the `tools=` list is what keeps your assistant on these Actors instead of reaching for whatever scraper it finds first.

***

### How to scrape RedNote (Xiaohongshu)

Each scenario below is a complete input. Pick the mode with `searchType`, then fill only the field that mode reads.

#### Notes matching a keyword

```json
{ "searchType": "search", "keywords": ["护肤", "口红"], "maxItems": 100 }
```

Chinese keywords give the best coverage, and brand names in Latin script (`lululemon`) work too. Each keyword paginates on its own up to `maxItems`.

#### The highest-engagement notes on a topic, narrowed for free

```json
{
  "searchType": "search",
  "keywords": ["防晒"],
  "maxItems": 50,
  "sortType": "popularity_descending",
  "noteType": "视频笔记",
  "timeFilter": "一周内"
}
```

`sortType`, `noteType` and `timeFilter` are **free** filters. They are sent to the search itself, so a narrow query genuinely returns fewer billable notes rather than paying to filter afterwards.

#### One note in full, with its comments

```json
{
  "searchType": "note-detail",
  "noteUrls": ["https://www.xiaohongshu.com/explore/69848696000000001a0272ba"],
  "includeComments": true,
  "maxComments": 50
}
```

Note detail returns the body text, every image, the playable video URL on a video note, and the topics and IP location. `includeComments` is a paid add-on billed on top of the note-detail charge.

#### A creator's profile and their recent notes

```json
{
  "searchType": "profile",
  "userUrls": ["https://www.xiaohongshu.com/user/profile/617175e1000000000201d2b9"],
  "includePosts": true,
  "maxPostsPerUser": 30
}
```

The profile is one row; with `includePosts` on, the notes ride inside that same row under `posts`, and each one bills as a keyword-search note.

#### Comments only, without paying for the note

```json
{
  "searchType": "comments",
  "noteUrls": ["69848696000000001a0272ba", "http://xhslink.com/a/AbCdEf"],
  "maxComments": 200
}
```

Use this mode instead of the `note-detail` add-on when you want comments and nothing else, and skip the $0.04 detail charge. Replies come nested inside each comment at no extra cost.

#### An influencer's rate card before you negotiate

```json
{
  "searchType": "influencer",
  "userUrls": ["617175e1000000000201d2b9", "5f3a2b1c000000000101abcd"]
}
```

One flat charge returns the whole 蒲公英 (PGY) record: picture and video prices, fans count, creator level, content and industry tags, median reads and interactions per note, sponsored notes in the last 30 days, and 30-day fan growth.

#### What is trending, and what is selling

```json
{ "searchType": "trending", "maxItems": 50 }
```

```json
{ "searchType": "products", "keywords": ["口红"], "maxItems": 100 }
```

`trending` needs no input at all and returns the RED hot list with rank and hot value. `products` searches the RED store and returns prices, vendors and links.

***

### Input

`searchType` is the only required field. Every other field belongs to one or two modes, and a field the chosen mode does not read is simply ignored.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchType` | string | `search` | The mode: `search`, `note-detail`, `profile`, `comments`, `products`, `trending`, `influencer`. Also accepted as `mode`. |
| `keywords` | string\[] | (none) | Search terms, for `search` and `products`. |
| `noteUrls` | string\[] | (none) | Note URLs, `xhslink.com` app share links, or bare 24-character note IDs, for `note-detail` and `comments`. |
| `userUrls` | string\[] | (none) | Profile URLs or bare 24-character user IDs, for `profile` and `influencer`. |
| `maxItems` | integer | `20` | Results per keyword or target, max `5000`. Used by `search`, `products` and `trending`. |
| `maxComments` | integer | `20` | Comments per note, max `5000`. Used by `comments` and the note-detail add-on. |
| `sortType` | string | `general` | Free filter, `search` only. `general`, `popularity_descending`, `time_descending`. |
| `noteType` | string | `不限` | Free filter, `search` only. `不限`, `视频笔记` (video), `普通笔记` (image), `直播笔记` (live). |
| `timeFilter` | string | `不限` | Free filter, `search` only. `不限`, `一天内` (day), `一周内` (week), `半年内` (6 months). |
| `includePosts` | boolean | `false` | 💲 `profile` only. Also returns the user's notes, billed per note. |
| `maxPostsPerUser` | integer | `20` | 💲 Cap for `includePosts`, max `5000`. `0` fetches none. |
| `includeComments` | boolean | `false` | 💲 `note-detail` only. Also returns the note's comments, billed per comment. |

> ⚠️ **Which URL forms work.** Notes: `https://www.xiaohongshu.com/explore/<noteId>`, a `/discovery/item/` link, an `http://xhslink.com/...` app share link (paste it as-is, it is resolved for you), or the bare 24-character hex note ID. Profiles: `https://www.xiaohongshu.com/user/profile/<userId>` or the bare 24-character user ID. Anything else is skipped with a log line and is never charged.

The `noteType`, `timeFilter` and `sortType` enums use RedNote's own values, so send them exactly as written above. An input that names no usable mode, or a mode whose field is empty, ends the run as **succeeded with nothing charged** and writes one row explaining which field to fill.

***

### What data does the RedNote Scraper return?

One dataset row per result. Every row carries `searchType`, saying which mode produced it; `search` and `products` rows also carry the `keyword` that found them, and comment rows carry their `note_id`.

| Object | Fields |
|---|---|
| **Note** (search, note detail, profile posts) | `id` · `type` (`normal` or `video`) · `title` · `desc` · `url` · `liked_count` · `collected_count` · `comments_count` · `shared_count` · `view_count` · `nice_count` · `images[]` · `video_url` · `cover` · `video_duration` · `hashtags[]` · `topics[]` · `ip_location` · `timestamp` · `xsec_token` |
| **Note author** (nested `user`) | `user_id` · `red_id` · `nickname` · `avatar` · `verified` |
| **Comment** | `id` · `content` · `like_count` · `sub_comment_count` · `ip_location` · `timestamp` · `note_id` · `user{...}` · `at_users[]` (mentions) · `sub_comments[]` (replies, each with its own `content`, `like_count`, `user`, `at_users` and `reply_to`) |
| **Profile** | `user_id` · `red_id` · `nickname` · `desc` · `desc_en` · `gender` · `avatar` · `banner` · `ip_location` · `location` · `fans` · `follows` · `interactions` · `notes_count` · `collected_count` · `liked_count` · `verified` · `verify_type` · `tags[]` · `url` · `posts[]` (only with the add-on) |
| **Product** | `id` · `title` · `price` · `origin_price` · `foreign_price` · `image` · `vendor` · `vendor_type` · `seller_id` · `sold` · `stock_status` · `goods_type` · `has_buyer_explain` · `link` |
| **Trending topic** | `rank` · `title` · `hot_value` · `trend` · `item_id` · `url` |
| **Influencer (PGY)** | `user_id` · `red_id` · `nickname` · `avatar` · `location` · `gender` · `fans_count` · `total_notes` · `business_notes` · `picture_price` · `video_price` · `lower_price` · `current_level` · `content_tags[]` · `feature_tags[]` · `industry_tag` · `trade_type` · `like_collect_count` · `click_mid_num` · `inter_mid_num` · `coop_notes_30d` · `fans_30d_growth_rate` · `fans_30d_growth_num` · `core_data` · `fans_summary` · `url` |

Two things worth knowing before you write the parser. Replies arrive **inside** each comment's `sub_comments` array rather than as their own rows, and they are not billed separately, so a comment row can be much richer than it looks; the array holds the first batch of replies, which can be shorter than `sub_comment_count`. And `view_count` and `nice_count` only appear on note **detail**, not on search results, because the search endpoint does not carry them.

#### Example row

```json
{
  "searchType": "search",
  "keyword": "护肤",
  "id": "69848696000000001a0272ba",
  "type": "normal",
  "title": "分享年度护肤爱用（上）",
  "desc": "无广纯绿，放心看！ #种草 #好物分享",
  "url": "https://www.xiaohongshu.com/explore/69848696000000001a0272ba?xsec_token=YBd5BH...",
  "liked_count": 641,
  "collected_count": 265,
  "comments_count": 21,
  "shared_count": 27,
  "images": ["https://sns-webpic.xhscdn.com/..."],
  "video_url": null,
  "hashtags": ["种草", "好物分享"],
  "topics": [],
  "ip_location": "Shanghai",
  "timestamp": 1770292886,
  "xsec_token": "YBd5BH-4wMfkhVF6rX6T3Zo4Q1Om9EymkzCvikehzjSIw=",
  "user": {
    "user_id": "617175e1000000000201d2b9",
    "red_id": "5346064794",
    "nickname": "飞侠桃",
    "avatar": "https://sns-avatar-qc.xhscdn.com/...",
    "verified": false
  }
}
```

***

### How much does it cost to scrape RedNote (Xiaohongshu)?

Pay per result, per mode, with no subscription. Apify plans of Gold and above pay 20% less.

| Mode | You get | Free–Silver | Gold+ |
|---|---|---|---|
| Keyword search | one note | $0.02 | $0.016 |
| Note detail (image) | one full note | $0.04 | $0.032 |
| Note detail (video) | one full note plus the video URL | $0.04 | $0.032 |
| User profile | one profile | $0.04 | $0.032 |
| Product search | one product | $0.04 | $0.032 |
| Note comments | one comment, minimum 2 per note | $0.01 | $0.008 |
| Trending / hot list | one topic, minimum 2 per run | $0.01 | $0.008 |
| Influencer analytics (PGY) | one full creator record | $0.05 | $0.040 |

**Add-ons, only when you turn them on:**

| Add-on | Billed as | Free–Silver | Gold+ |
|---|---|---|---|
| The user's notes, on a profile (`includePosts`) | one keyword-search note each | $0.02 | $0.016 |
| The note's comments, on a note detail (`includeComments`) | one comment each, minimum 2 | $0.01 | $0.008 |

A keyword search returning 25 notes costs 25 × $0.02 = $0.50. Every add-on is capped by the number you set, so the ceiling of a run is arithmetic you can do before you start it.

**Free:** `sortType`, `noteType` and `timeFilter`; de-duplication across pages, so a note that repeats between pages is never billed twice; the replies nested in each comment; and **failed lookups**, which are never charged.

**Why the minimums exist:** one request is one lookup, and that lookup does the same work whether it returns 50 results, 1, or none. The minimum on comments and trending, and the single-item floor on a note that turns out to be empty or deleted, cover the request itself. That is what keeps thin targets worth running instead of being refused outright.

**Free plan:** 5 results per mode per calendar month, so you can inspect every field of every mode before paying. The counters reset on the 1st. Any paid Apify plan removes the cap.

***

### What do people use the RedNote Scraper for?

- **China consumer and brand research**: read what shoppers actually say about a category before you commit a product or a campaign to the market.
- **Social listening**: watch a keyword or a hashtag on a schedule and see when sentiment or volume moves.
- **Influencer discovery and pricing**: shortlist creators by fans, level and tags, then pull the PGY rate card so you negotiate against a real number.
- **Influencer vetting**: check that median reads and interactions per note match the follower count before you pay for a placement.
- **E-commerce and pricing research**: search RED's store for a product line and compare prices, vendors and sales tags.
- **Competitor tracking**: follow a competitor's profile and their notes, and read the comments underneath.
- **Trend spotting**: pull the hot list on a schedule and catch a topic while it is still climbing.
- **AI training corpora**: collect first-person Chinese product reviews with engagement counts attached, which is hard to find anywhere else at this volume.

***

### RedNote Scraper vs cookie-based tools vs the official Xiaohongshu API

| | This RedNote Scraper | Cookie-based scrapers | Official Xiaohongshu API |
|---|---|---|---|
| **Cookie / login** | Not needed on any mode | A logged-in session cookie, sometimes even for search | Partner-gated |
| **`xsec_token`** | Not needed, and returned to you on every note | Usually must be pasted in by hand | Not applicable |
| **Account / ban risk** | None (no account used) | High (your account can be restricted) | None |
| **Coverage** | Notes, detail, comments, profiles, products, hot list, PGY analytics | Usually one surface at a time | No public content API for most of this |
| **PGY influencer rate cards** | Yes, one charge for the full record | Rare | No |
| **Pricing** | Pay per result, failed lookups free | Subscription plus your account risk | Gated / approval-based |
| **Maintenance** | None | Breaks when the site or the cookie changes | Not applicable |

***

### 🏆 Top China Scrapers

### FAQ

#### What is a RedNote (Xiaohongshu) scraper?

Xiaohongshu (小红书), known internationally as RedNote or RED, is one of China's largest social and e-commerce platforms. People post "notes" (笔记): image and video reviews, hauls and recommendations, then discover products and creators through search and the hot list. A RedNote scraper turns a keyword or a note URL into structured data: the notes and their like, collect, comment and share counts, the comment threads underneath, the authors, the products, and the creator rate cards. This Actor returns that as JSON rows without opening the app or logging in.

#### Do I need a cookie, a login or an `xsec_token`?

No, on any of the seven modes. A keyword or a plain URL is enough. There is no `cookieString` field and nothing to paste from a browser session, so there is no account to get restricted. The Actor also returns each note's own `xsec_token` back to you, which is what downstream RedNote links need.

#### Can I use this from ChatGPT or Claude?

Yes, two ways. Paste the "Copy to your AI assistant" block above into any LLM and it will write the call for you. Or connect the **Xiaohongshu MCP server** config above, and every Atomus Actor becomes a native tool your assistant can call on its own, including chaining several in one request.

#### How much does it cost?

It depends on the mode: $0.02 per note from keyword search, $0.04 for a full note, a profile or a product, $0.05 for an influencer record, and $0.01 per comment or trending topic. Gold plans and above pay 20% less. Failed lookups are free, and free Apify plans include 5 results per mode per month.

#### Can I search in Chinese and in English?

Yes. Chinese keywords such as `护肤` (skincare) or `口红` (lipstick) give the widest coverage because that is what the notes are written in, and Latin-script brand names such as `lululemon` also return results.

#### Does it work for video notes?

Yes. Note detail on a video note returns the playable `video_url`, the cover frame and the duration, at the same $0.04 as an image note. Keyword search can also be restricted to video notes with `noteType: "视频笔记"`.

#### Do I pay extra for the replies under a comment?

No. Each comment row carries its replies inline in `sub_comments`, billed as part of that one comment. The array holds the first batch of replies, so it can be shorter than `sub_comment_count` on a very long thread.

#### Why did my influencer lookup return nothing?

Influencer analytics reads the 蒲公英 (PGY) marketplace, so it only covers creators registered there. A user who is not on PGY comes back as an error, which is never charged.

#### How many results can I get per keyword?

Up to 5,000 per keyword or target. The Actor paginates automatically and de-duplicates across pages, so you are never billed for a repeated item. RedNote returns a finite set per keyword, so a narrow term returns what exists rather than the number you asked for.

#### Is there an official Xiaohongshu API for this?

There is no public content API covering notes, comments, profiles, products, the hot list and influencer data. For turning a keyword or a URL into structured records, a cookieless scraper like this one is the practical path.

#### Is it legal to scrape Xiaohongshu?

This Actor reads publicly visible content. You are responsible for using the output in line with applicable laws (GDPR/CCPA), Xiaohongshu's terms, and your own compliance requirements. It is an independent tool, not affiliated with Xiaohongshu.

#### Can I run this on a schedule?

Yes. Apify [Schedules](https://docs.apify.com/platform/schedules) run the Actor on a cron interval and [webhooks](https://docs.apify.com/platform/integrations/webhooks) push each finished run into your systems, which is how a keyword becomes a trend monitor.

***

### 小红书采集器中文说明

无需 Cookie、无需登录、无需 `xsec_token`，七种模式覆盖笔记搜索、笔记详情、评论、用户主页、商品搜索、热榜与蒲公英（PGY）达人数据。按关键词或链接抓取，每个关键词或目标最多 5,000 条，请求失败不收费。

#### 七种抓取模式

用 `searchType` 选择模式，然后只填写该模式读取的字段。

| 模式（`searchType`） | 输入 | 返回 |
|---|---|---|
| 关键词搜索（`search`） | 关键词 | 匹配该关键词的笔记 |
| 笔记详情（`note-detail`） | 笔记链接或 ID | 单条笔记的完整数据（图文或视频） |
| 用户主页（`profile`） | 主页链接或用户 ID | 用户资料，可选附带其笔记 |
| 笔记评论（`comments`） | 笔记链接或 ID | 该笔记的评论及内嵌回复 |
| 商品搜索（`products`） | 关键词 | 小红书商城搜索结果 |
| 热榜（`trending`） | 无需输入 | 小红书热榜 |
| 达人数据（`influencer`） | 主页链接或用户 ID | 蒲公英/PGY 报价与分析数据 |

#### 输入参数

| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `searchType` | string | `search` | 抓取模式，必填；也接受 `mode` 作为别名。 |
| `keywords` | string\[] | 无 | 关键词，用于「关键词搜索」「商品搜索」。 |
| `noteUrls` | string\[] | 无 | 笔记链接、`xhslink.com` App 分享短链接，或 24 位笔记 ID，用于「笔记详情」「笔记评论」。 |
| `userUrls` | string\[] | 无 | 主页链接或 24 位用户 ID，用于「用户主页」「达人数据」。 |
| `maxItems` | integer | `20` | 每个关键词或目标的最大结果数，上限 `5000`；用于搜索、商品搜索与热榜。 |
| `maxComments` | integer | `20` | 每条笔记的最大评论数，上限 `5000`。 |
| `sortType` | string | `general` | 免费筛选，仅「关键词搜索」：`general`（综合）、`popularity_descending`（最热）、`time_descending`（最新）。 |
| `noteType` | string | `不限` | 免费筛选，仅「关键词搜索」：`不限`、`视频笔记`、`普通笔记`、`直播笔记`。 |
| `timeFilter` | string | `不限` | 免费筛选，仅「关键词搜索」：`不限`、`一天内`、`一周内`、`半年内`。 |
| `includePosts` | boolean | `false` | 💲 仅「用户主页」：同时抓取该用户的笔记，按条计费。 |
| `maxPostsPerUser` | integer | `20` | 💲 `includePosts` 的上限，最大 `5000`，设为 `0` 则不抓取。 |
| `includeComments` | boolean | `false` | 💲 仅「笔记详情」：同时抓取该笔记的评论，按条计费。 |

支持的链接格式：笔记为 `https://www.xiaohongshu.com/explore/<noteId>`、`/discovery/item/` 链接、`http://xhslink.com/...` App 分享短链接（直接粘贴即可，自动解析），或 24 位十六进制笔记 ID；主页为 `https://www.xiaohongshu.com/user/profile/<userId>` 或 24 位用户 ID。其他格式会被跳过并记录日志，不计费。`noteType`、`timeFilter`、`sortType` 使用小红书自身的取值，请按上表原样填写。

#### 输出字段

每条结果为数据集中的一行，均带有 `searchType` 标明来源模式；搜索与商品结果另带 `keyword`，评论带 `note_id`。

- **笔记**：`id`、`type`、`title`、`desc`、`url`、`liked_count`、`collected_count`、`comments_count`、`shared_count`、`view_count`、`nice_count`、`images[]`、`video_url`、`cover`、`video_duration`、`hashtags[]`、`topics[]`、`ip_location`、`timestamp`、`xsec_token`，以及嵌套的 `user`（`user_id`、`red_id`、`nickname`、`avatar`、`verified`）。`view_count` 与 `nice_count` 仅在「笔记详情」中出现。
- **评论**：`id`、`content`、`like_count`、`sub_comment_count`、`ip_location`、`timestamp`、`note_id`、`user`、`at_users[]`，以及 `sub_comments[]`——回复内嵌在评论内，不单独计费。
- **用户主页**：`user_id`、`red_id`、`nickname`、`desc`、`desc_en`、`gender`、`avatar`、`banner`、`ip_location`、`location`、`fans`、`follows`、`interactions`、`notes_count`、`collected_count`、`liked_count`、`verified`、`verify_type`、`tags[]`、`url`，启用附加项时另有 `posts[]`。
- **商品**：`id`、`title`、`price`、`origin_price`、`foreign_price`、`image`、`vendor`、`vendor_type`、`seller_id`、`sold`、`stock_status`、`goods_type`、`has_buyer_explain`、`link`。
- **热榜**：`rank`、`title`、`hot_value`、`trend`、`item_id`、`url`。
- **达人（蒲公英）**：`fans_count`、`total_notes`、`business_notes`、`picture_price`、`video_price`、`lower_price`、`current_level`、`content_tags[]`、`feature_tags[]`、`industry_tag`、`trade_type`、`like_collect_count`、`click_mid_num`、`inter_mid_num`、`coop_notes_30d`、`fans_30d_growth_rate`、`fans_30d_growth_num`、`core_data`、`fans_summary`、`url`。

#### 价格

按结果计费，无订阅。Apify Gold 及以上套餐享 8 折。

| 模式 | 计费单位 | Free–Silver | Gold+ |
|---|---|---|---|
| 关键词搜索 | 每条笔记 | $0.02 | $0.016 |
| 笔记详情（图文） | 每条笔记 | $0.04 | $0.032 |
| 笔记详情（视频） | 每条笔记，含视频地址 | $0.04 | $0.032 |
| 用户主页 | 每个用户 | $0.04 | $0.032 |
| 商品搜索 | 每个商品 | $0.04 | $0.032 |
| 笔记评论 | 每条评论，每条笔记最低 2 条 | $0.01 | $0.008 |
| 热榜 | 每个话题，每次请求最低 2 条 | $0.01 | $0.008 |
| 达人数据（蒲公英） | 每个达人 | $0.05 | $0.040 |

付费附加项：「同时抓取用户笔记」（`includePosts`，按 $0.02/条计费）与「同时抓取笔记评论」（`includeComments`，按 $0.01/条、每条笔记最低 2 条计费），默认均为关闭。

免费的部分：`sortType`、`noteType`、`timeFilter` 三项筛选；跨页去重，重复的笔记不会重复计费；评论内嵌的回复；以及**失败的请求**，永不计费。

为什么有最低计费：一次请求就是一次查询，无论返回 50 条、1 条还是 0 条，工作量都相同。最低计费覆盖的是这次请求本身，这样结果很少的目标依然值得抓取，而不是被直接拒绝。

免费套餐：每个模式每自然月 5 条结果，足以在付费前查看所有字段；计数在每月 1 日重置，任何付费 Apify 套餐都会解除该上限。

#### 常见问题

**需要 Cookie 或登录吗？** 七种模式都不需要。一个关键词或一条普通链接即可，没有 `cookieString`，也无需从浏览器复制 `xsec_token`；同时每条笔记的 `xsec_token` 会返回给你。

**支持中文和英文关键词吗？** 都支持。中文关键词（如 `护肤`、`口红`）覆盖最广，拉丁字母的品牌名（如 `lululemon`）同样有结果。

**支持视频笔记吗？** 支持。「笔记详情」返回可播放的 `video_url`、封面与时长，价格与图文笔记同为 $0.04；「关键词搜索」也可用 `noteType: "视频笔记"` 只取视频笔记。

**达人查询没有结果？** 达人数据来自蒲公英（PGY）平台，只覆盖已入驻的创作者。未入驻的用户会返回错误，且不计费。

**每个关键词最多能取多少条？** 每个关键词或目标最多 5,000 条。采集器自动翻页并跨页去重；小红书对每个关键词返回的结果数量有限，冷门词只会返回实际存在的数量。

**有官方 API 吗？** 没有公开的内容 API 覆盖笔记、评论、主页、商品、热榜与达人数据。

**可以定时运行吗？** 可以。用 Apify [Schedules](https://docs.apify.com/platform/schedules) 按 cron 周期运行，用 [webhooks](https://docs.apify.com/platform/integrations/webhooks) 把每次运行结果推送到你的系统，关键词监控就是这样搭起来的。

***

### All Atomus scrapers

<span style="background:#10B981;color:#FFFFFF;font-size:13px;font-weight:700;padding:6px 13px;border-radius:5px">2.4M+ RESULTS DELIVERED</span>

### Support

### ⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Xiaohongshu (小红书), also known as RedNote or RED. All trademarks are property of their respective owners.

Use the data extracted by this Actor in compliance with applicable data protection laws (GDPR, CCPA) and Xiaohongshu's terms of service. Do not use it for spam, harassment, or unlawful purposes.

本采集器为独立工具，与小红书（RedNote / RED）无任何隶属、认可或赞助关系。请在遵守相关法律法规（GDPR、CCPA）及小红书服务条款的前提下使用所采集的数据，不得用于垃圾信息、骚扰或任何违法用途。

# Actor input Schema

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

Choose the mode. 💲 Each mode is its own PAID event: the price is shown on every option below. Then fill ONLY the section marked with the same mode. // 选择模式。💲 每种模式为独立的付费事件，价格已标注在下方每个选项上；然后只填写标有相同模式的分区。

## `keywords` (type: `array`):

💲 Paid per result of the selected mode: keyword search $0.02/note, product search $0.04/product. One or more terms, e.g. "护肤" (skincare), "口红" (lipstick). // 💲 按所选模式的结果计费：关键词搜索 $0.02/条，商品搜索 $0.04/个。可填写一个或多个关键词。

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

Only for "Keyword search". FREE: restrict results to a note type, no extra charge. // 仅用于「关键词搜索」，免费，按笔记类型筛选，不额外计费。

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

Only for "Keyword search". FREE: restrict results by publish time, no extra charge. // 仅用于「关键词搜索」，免费，按发布时间筛选，不额外计费。

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

Only for "Keyword search". FREE: order the results. "Most liked" is the way to get the highest-engagement notes first. // 仅用于「关键词搜索」，免费，对结果排序。「最热」可优先获取高互动笔记。

## `noteUrls` (type: `array`):

💲 Paid per selected mode: note detail $0.04/note, comments $0.01/comment (min 2 per note). Paste full note URLs (https://www.xiaohongshu.com/explore/...), app share links (http://xhslink.com/... - just paste as-is, resolved automatically), or bare 24-character note IDs. // 💲 按所选模式计费：笔记详情 $0.04/条，评论 $0.01/条（每条笔记最低2）。可粘贴完整笔记链接、App分享短链接（http://xhslink.com/... 直接粘贴即可，自动解析）或24位笔记ID。

## `maxComments` (type: `integer`):

For "Note comments" mode and the "Also fetch comments" add-on. 💲 Each comment returned is billed comment ($0.01, min 2 per note). Why there is a minimum: one request is one lookup, and that lookup does the same work whether it comes back with 50 results, with 1, or with none. The minimum covers the request itself, which is what keeps thin targets worth running instead of being refused outright. Requests that fail are free. // 用于「笔记评论」模式及「同时抓取评论」附加项。💲 每返回一条评论按 comment 计费（$0.01，每条笔记最低2）。 为什么有最低计费：一次请求就是一次查询，无论返回 50 条、1 条还是 0 条，工作量都相同。最低计费覆盖的是这次请求本身，这样结果很少的目标依然值得抓取，而不是被直接拒绝。请求失败不收费。

## `userUrls` (type: `array`):

💲 Paid per selected mode: profile $0.04/profile, influencer analytics $0.05/creator. Paste profile URLs (https://www.xiaohongshu.com/user/profile/...) or bare 24-character user IDs. // 💲 按所选模式计费：主页 $0.04/个，达人分析 $0.05/个。可粘贴主页链接或24位用户ID。

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

How many results to return per keyword or target for search, product search and trending. 💲 Affects cost: these bill per result, so a higher value costs more. Detail/profile/influencer return one record per target; comments use their own "Max comments per note" below. Trending bills a minimum of 2 rows per request. Why there is a minimum: one request is one lookup, and that lookup does the same work whether it comes back with 50 results, with 1, or with none. The minimum covers the request itself, which is what keeps thin targets worth running instead of being refused outright. Requests that fail are free. // 用于搜索、商品搜索与热榜，每个关键词或目标返回的最大结果数。💲 影响费用：按条计费，数值越大费用越高；详情/主页/达人每个目标一条记录；评论用下方「每条笔记最大评论数」。 「热榜」每次请求最低计费 2 条。为什么有最低计费：一次请求就是一次查询，无论返回 50 条、1 条还是 0 条，工作量都相同。最低计费覆盖的是这次请求本身，这样结果很少的目标依然值得抓取，而不是被直接拒绝。请求失败不收费。

## `includePosts` (type: `boolean`):

For "User profile" only. 💲 PAID add-on: also returns the user's recent posts, billed as post-scraped ($0.02 per post returned) ON TOP of the $0.04 profile charge. Off by default. // 仅用于「用户主页」。💲 付费附加项——在 $0.04 主页费用之外，额外返回用户最近发布的笔记，按 post-scraped 计费（$0.02/条）。默认关闭。

## `maxPostsPerUser` (type: `integer`):

Only used when "Also fetch the user's posts" is on. 💲 Each post returned is billed post-scraped ($0.02). Set 0 to fetch none. // 仅在启用「同时抓取用户笔记」时生效。💲 每返回一条笔记按 post-scraped 计费（$0.02）。设为 0 则不抓取。

## `includeComments` (type: `boolean`):

For "Note detail" only. 💲 PAID add-on: also returns the note's comments, billed as comment ($0.01/comment, min 2 per note) ON TOP of the $0.04 note-detail charge. Use "Max comments per note" above to cap. Off by default. // 仅用于「笔记详情」。💲 付费附加项——在 $0.04 笔记详情费用之外，额外返回该笔记的评论，按 comment 计费（$0.01/条，每条笔记最低2）。用上方「每条笔记最大评论数」限制数量。默认关闭。

## Actor input object example

```json
{
  "searchType": "search",
  "keywords": [
    "护肤"
  ],
  "noteType": "不限",
  "timeFilter": "不限",
  "sortType": "general",
  "noteUrls": [
    "69848696000000001a0272ba"
  ],
  "maxComments": 20,
  "userUrls": [
    "617175e1000000000201d2b9"
  ],
  "maxItems": 20,
  "includePosts": false,
  "maxPostsPerUser": 20,
  "includeComments": false
}
```

# Actor output Schema

## `results` (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 = {
    "keywords": [
        "护肤"
    ],
    "noteUrls": [
        "69848696000000001a0272ba"
    ],
    "userUrls": [
        "617175e1000000000201d2b9"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("atomus/xiaohongshu-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 = {
    "keywords": ["护肤"],
    "noteUrls": ["69848696000000001a0272ba"],
    "userUrls": ["617175e1000000000201d2b9"],
}

# Run the Actor and wait for it to finish
run = client.actor("atomus/xiaohongshu-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 '{
  "keywords": [
    "护肤"
  ],
  "noteUrls": [
    "69848696000000001a0272ba"
  ],
  "userUrls": [
    "617175e1000000000201d2b9"
  ]
}' |
apify call atomus/xiaohongshu-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,atomus/xiaohongshu-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/hze9g9xvmpSRztttq/builds/iVLmJEuzAz5ZNwxXv/openapi.json
