# RedNote (Xiaohongshu) Scraper API — Notes, Creators & Comments (`pro100chok/rednote-xiaohongshu-scraper`) Actor

RedNote scraper and unofficial Xiaohongshu API: extract trending category feeds, full note details with images and video URLs, creator profiles with 小红书号, comment threads and keyword suggestions. Six of eight modes need no login or cookie. Export JSON, CSV, Excel. From $3.50/1k notes.

- **URL**: https://apify.com/pro100chok/rednote-xiaohongshu-scraper.md
- **Developed by:** [Raven](https://apify.com/pro100chok) (community)
- **Categories:** Social media, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 notes

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/platform/actors/running/actors-in-store#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

## RedNote (Xiaohongshu / 小红书) Scraper | Notes, Creators, Comments & Keywords — No Login (2026)

> **Scrape RedNote / Xiaohongshu (小红书 · XHS · Little Red Book · RED) without an account, a cookie or a browser.** Trending category feeds, full note payloads (caption, every image, direct video links, hashtags, region, exact engagement), creator profiles with followers and 小红书号, comment threads with replies, and RedNote's own keyword suggestions — **from $4 per 1,000 notes**, streamed straight into a dataset you can export to JSON, CSV, Excel or XML.

**Six of the eight modes need no login at all.** No cookie export, no QR scan, no API key, no proxies to buy, no code.

![RedNote 小红书 on Apify — every note every creator as structured JSON](https://raw.githubusercontent.com/PRO100CHOK/apify-readme-assets/main/rednote-xiaohongshu-scraper/hero.png)

<table>
<tr>
<td colspan="4" style="padding:10px 14px;background:#CC1D35;border:none;border-radius:4px 4px 0 0">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">Raven &middot; Social-commerce suite</span>
<span style="color:#FFD3D9;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;RedNote, TikTok Shop, AliExpress, Instagram</span>
</td>
</tr>
<tr>
<td style="background:#FFD8DD;padding:10px 12px;border:1px solid #E4E4E7;border-right:none;border-top:none;vertical-align:top;width:25%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-r3YXQ95TB2FiMAMDE-hLw7rKePQh-5fb846a2-1b5c-4ebf-ac90-dce3c1e1bcb8.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/pro100chok/rednote-xiaohongshu-scraper" style="color:#BF1B32;text-decoration:none;font-weight:700;font-size:13px">RedNote&nbsp;小红书</a></span><br>
<span style="color:#BF1B32;font-size:11px;font-weight:600">&#10148; You are here</span>
</td>
<td style="background:#FFEDF0;padding:10px 12px;border:1px solid #E4E4E7;border-right:none;border-top:none;vertical-align:top;width:25%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-FzXXmis0AF2EYyyii-53r5wDrRmH-5ed275b8-951f-4995-a100-189ea3a131d0.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/pro100chok/tiktok-shop-scraper-usage" style="color:#18181B;text-decoration:none;font-weight:700;font-size:13px">TikTok&nbsp;Shop</a></span><br>
<span style="color:#71717A;font-size:11px">Products, stores, creators</span>
</td>
<td style="background:#FFEDF0;padding:10px 12px;border:1px solid #E4E4E7;border-right:none;border-top:none;vertical-align:top;width:25%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-mBQQG1GlbZlkcetR5-eMoPkpmd5b-71e03f8b-8565-41c8-8fc8-fe73a3dd6f12.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/pro100chok/aliexpress-scraper" style="color:#18181B;text-decoration:none;font-weight:700;font-size:13px">AliExpress&nbsp;Scraper</a></span><br>
<span style="color:#71717A;font-size:11px">Products, variants, reviews</span>
</td>
<td style="background:#FFEDF0;padding:10px 12px;border:1px solid #E4E4E7;border-top:none;vertical-align:top;width:25%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-7fyOP12UzHR5Zlnc5-j1W3HZr7l6-cba15940-85de-4f61-b150-a2401b420876.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/pro100chok/instagram-scraper-all-in-one" style="color:#18181B;text-decoration:none;font-weight:700;font-size:13px">Instagram&nbsp;Scraper</a></span><br>
<span style="color:#71717A;font-size:11px">Posts, followers, comments</span>
</td>
</tr>
</table>

#### Copy to your AI assistant

```text
Apify Actor: pro100chok/rednote-xiaohongshu-scraper
What it does: scrapes RedNote / Xiaohongshu (小红书) — category feeds, full note details
(images + video URLs + hashtags + engagement), creator profiles, comment threads,
keyword suggestions. Six of eight modes require no login or cookie.

Run it from Python:
    from apify_client import ApifyClient
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    run = client.actor("pro100chok/rednote-xiaohongshu-scraper").call(run_input={
        "scrapeType": "discoverFeed",
        "feedCategories": ["food", "beauty"],
        "maxItems": 100,
        "fullNoteDetail": True
    })
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)

Modes: discoverFeed | noteDetails | noteComments | userProfiles | userNotes |
       keywordResearch | searchNotes* | searchUsers*      (* need a cookie)
Input schema: https://api.apify.com/v2/acts/pro100chok~rednote-xiaohongshu-scraper/builds/default
Get a token: https://console.apify.com/settings/integrations
```

***

### What does this RedNote (Xiaohongshu) scraper do?

RedNote has **no public content API** for third parties — its open platform is limited to business and advertising integrations, so there is no official endpoint that hands you notes, creators or comments. This actor is the practical **unofficial Xiaohongshu API**: one actor, eight operations, one flat dataset.

| Mode | What you get | Login needed? |
|---|---|---|
| 🔥 `discoverFeed` | Trending notes from 12 RedNote category channels (food, beauty, fashion, travel, fitness, gaming, home, career, relationships, movies, video, recommended), paginated by cursor for as many notes as you ask for | **No** |
| 📝 `noteDetails` | Full payload for the exact notes you paste: caption, every image, direct video links, hashtags + topic IDs, region, mentions, exact counters, edit time | **No** |
| 💬 `noteComments` | Comment threads with replies as separate linked rows, commenter profile, likes, region | **No** |
| 👤 `userProfiles` | Creator profile: followers, following, likes+saves, 小红书号 (RedNote handle), bio, gender, region, profile tags | **No** |
| 📚 `userNotes` | A creator's profile plus their recent posts (titles, covers, likes, dates, post type) | **No** |
| 🔎 `keywordResearch` | RedNote's own search suggestions for any seed keyword, expandable into a long-tail map | **No** |
| 🔍 `searchNotes` | Keyword search over notes, with sort + post-type + date filters | Cookie |
| 🔍 `searchUsers` | Keyword search over creators | Cookie |

Every row streams into the dataset the moment it is parsed, so an aborted run keeps everything already collected.

***

### Why use this scraper?

- ✅ **No account, no cookie, no QR login** for feeds, note details, comments, profiles, creator notes and keyword research. The actor gets its own anonymous guest session automatically.
- ✅ **41 fields on a photo note, 56 on a video note** (measured medians over 100 live notes), 26 on a creator profile, up to 26 on a comment — **111 documented fields** in total.
- ✅ **Counters you can actually sort by.** RedNote prints `10万+`; you get both `likesText: "10万+"` **and** `likes: 100000`, plus a pre-computed `engagementTotal`.
- ✅ **Direct video links** with duration, resolution, fps, file size, codec and mirror URLs — every rendition RedNote exposes (h264 / h265 / av1 when present).
- ✅ **Access tokens handed back to you.** Every note and profile row carries its `xsecToken`, so you can re-run or chain modes later without re-copying links.
- ✅ **No headless browser.** Plain HTTP requests — no Chromium, no captcha overhead.
- ✅ **You are never charged for a failed row.** Inputs that cannot be opened come back as an explanatory row at zero cost.
- ✅ **Share links work.** Paste `xhslink.com/...` and the actor resolves it for you.

| | Official RedNote API | Typical store scrapers | This actor |
|---|---|---|---|
| Access to note/creator data | Not offered to third parties | Yes | Yes |
| Works with no login | — | Usually requires your session cookie | **6 of 8 modes, cookie-free** |
| Operations per actor | — | Often one (search *or* comments *or* profiles) | **8 in one** |
| Parsed numeric counters | — | Usually the raw `1.9万` string only | **String + integer** |
| Video renditions | — | Often one URL | **Every variant + mirrors** |
| Keyword suggestion research | — | Rarely offered | **Included** |
| Charged for error rows | — | Sometimes | **Never** |
| Full note detail per 1,000 | — | $8–$20 | **$5.00, from $3.50** |

***

### What data can you extract from RedNote?

#### Notes (`discoverFeed`, `noteDetails`, `userNotes`, `searchNotes`)

- **Identity** — `noteId`, `noteUrl`, `xsecToken`, `noteType` (`image` / `video` / `live`), `trackId`
- **Content** — `title`, `description`, `hashtags[]`, `topics[]` (id + name + type)
- **Engagement** — `likes`, `collects`, `commentsCount`, `shares`, `niceCount`, `engagementTotal`, plus `likesText` / `collectsText` / `commentsText` / `sharesText` exactly as RedNote displays them
- **Timing** — `publishedAt`, `publishedTimestamp`, `lastUpdatedAt`, `lastUpdatedTimestamp`
- **Author** — `authorId`, `authorName`, `authorAvatar`, `authorUrl`, `authorXsecToken`
- **Images** — `imageCount`, `coverUrl`, `imageUrls[]`, `images[]` (url, preview, width, height, fileId, live-photo flag). Up to 18 images seen on a single note.
- **Video** — `videoUrl`, `videoBackupUrls[]`, `videoStreams[]`, `videoStreamCount`, `videoDuration`, `videoWidth`, `videoHeight`, `videoFps`, `videoSizeBytes`, `videoQuality`, `videoCodec`, `videoBitrate`, `videoId`, `videoMd5`
- **Extras** — `ipLocation` (when RedNote publishes it for that note), `atUsers[]`, `atUserNames[]`, `hasLivePhoto`, `shareDisabled`

#### Creators (`userProfiles`, `userNotes`, `searchUsers`)

`userId`, `profileUrl`, `xsecToken`, `nickname`, `redId` (小红书号), `description`, `followers` + `followersText`, `following` + `followingText`, `likesAndCollects` + `likesAndCollectsText`, `gender`, `genderCode`, `ipLocation`, `avatar`, `avatarLarge`, `tags[]` (age, city, occupation, school when public), `verified`, `verifyType`, `collectionPublic`, `followStatus`, `notesCollected`

#### Comments (`noteComments`, or the comment add-on)

`commentId`, `noteId`, `noteUrl`, `content`, `likes` + `likesText`, `replyCount`, `isReply`, `parentCommentId`, `rootCommentId`, `repliedToUserId`, `repliedToUserName`, `authorId`, `authorName`, `authorAvatar`, `authorUrl`, `ipLocation`, `createdAt`, `createdTimestamp`, `showTags[]`, `pictures[]`, `atUsers[]`

#### Keywords (`keywordResearch`)

`keyword`, `suggestion`, `searchType`, `suggestionType`, `position`

***

### How to scrape RedNote step by step

1. Click **Try for free** — an Apify account takes a few seconds and the free plan comes with **$5 of monthly credits** (about 1,000 fully-detailed notes).
2. Pick a **mode** in the first field. The form arrives prefilled on `discoverFeed` with the food and beauty channels, so your very first run returns real notes.
3. Fill in only the field that belongs to your mode — categories for feeds, note links for note details or comments, profile links for creators, keywords for research.
4. Set **Max results** to cap the run precisely, then press **Start**.
5. Watch rows land live in the **Output** tab, then export to **JSON, CSV, Excel, XML or HTML**, or pull them from the API.

***

### Accepted inputs — what to paste where

| You have | Paste it into | Works |
|---|---|---|
| `https://www.xiaohongshu.com/explore/6a51b7...?xsec_token=ABz...` | `noteUrls` | ✅ Best — the token in the link is the access key |
| `https://www.xiaohongshu.com/discovery/item/6a51b7...?xsec_token=...` | `noteUrls` | ✅ |
| `http://xhslink.com/a/AbCdEf` (share link) | `noteUrls` | ✅ Resolved automatically |
| A bare 24-character note id, e.g. `6a51b700000000000f028107` | `noteUrls` | ⚠️ Only if you already hold a matching token from an earlier run |
| `https://www.xiaohongshu.com/user/profile/5bbe0958...` | `userUrls` | ✅ Profile stats work with or without a token |
| A bare 24-character user id | `userUrls` | ✅ For profile stats |
| A nickname, a 小红书号, or a keyword | — | ❌ Not a note or profile reference — use `keywordResearch` or the search modes |

**Where the links live:** open a note in RedNote, hit share → copy link. The link already contains `xsec_token`. In every dataset row the actor gives that token back as `xsecToken` and rebuilds the full `noteUrl` / `authorUrl` for you.

***

### Ready-to-paste input recipes

#### Trend scan of a niche (no login)

```json
{
  "scrapeType": "discoverFeed",
  "feedCategories": ["beauty", "fashion"],
  "maxItems": 500,
  "fullNoteDetail": true
}
```

#### Brand or product deep-dive on specific posts

```json
{
  "scrapeType": "noteDetails",
  "noteUrls": [
    "https://www.xiaohongshu.com/explore/6a51b700000000000f028107?xsec_token=ABzPDMicao11A7ioBtbwH1ox1LqAtrhBjv1vTx6xbsXIQ%3D&xsec_source=pc_feed"
  ],
  "includeComments": true,
  "maxCommentsPerNote": 50,
  "includeAuthorProfile": true
}
```

#### Comment sentiment mining

```json
{
  "scrapeType": "noteComments",
  "noteUrls": [
    "https://www.xiaohongshu.com/explore/6a51b700000000000f028107?xsec_token=ABzPDMicao11A7ioBtbwH1ox1LqAtrhBjv1vTx6xbsXIQ%3D&xsec_source=pc_feed"
  ],
  "maxItems": 500,
  "maxCommentsPerNote": 100,
  "includeSubComments": true
}
```

#### KOL / influencer vetting

```json
{
  "scrapeType": "userProfiles",
  "userUrls": [
    "https://www.xiaohongshu.com/user/profile/5bbe0958e1e44e00014185bb",
    "https://www.xiaohongshu.com/user/profile/55878481f5a2632c8480b32f"
  ],
  "maxItems": 50
}
```

#### Keyword and SEO research, expanded automatically

```json
{
  "scrapeType": "keywordResearch",
  "keywords": ["口红", "coffee", "护肤"],
  "expandKeywords": true,
  "maxItems": 300
}
```

#### Cheap, fast harvest — listing data only

```json
{
  "scrapeType": "discoverFeed",
  "feedCategories": ["food", "travel", "fitness"],
  "maxItems": 2000,
  "fullNoteDetail": false
}
```

Turning `fullNoteDetail` off skips the per-note page load: several times faster and a fraction of the bandwidth, keeping title, cover, author, likes, date and post type.

***

### Output examples

#### Photo note

```json
{
  "type": "note",
  "noteId": "6453436d000000000800c87b",
  "noteUrl": "https://www.xiaohongshu.com/explore/6453436d000000000800c87b?xsec_token=ABjM1Za...",
  "noteType": "image",
  "title": "芭蕾舞女孩蛋糕 六寸蛋糕 女生蛋糕",
  "description": "#蛋糕[话题]# #最好吃的奶油蛋糕[话题]# #生日蛋糕[话题]# ...",
  "likes": 23,
  "collects": 15,
  "commentsCount": 4,
  "shares": 4,
  "engagementTotal": 46,
  "likesText": "23",
  "publishedAt": "2023-05-04T05:32:29Z",
  "lastUpdatedAt": "2023-05-04T05:32:29Z",
  "ipLocation": "河南",
  "authorId": "55878481f5a2632c8480b32f",
  "authorName": "宸一烘焙~（👀简介）",
  "authorUrl": "https://www.xiaohongshu.com/user/profile/55878481f5a2632c8480b32f?xsec_token=...",
  "hashtags": ["蛋糕", "最好吃的奶油蛋糕", "生日蛋糕", "定制蛋糕", "动物奶油"],
  "topics": [{ "id": "53cb2602b4c4d60d1602cc2a", "name": "蛋糕", "type": "topic" }],
  "imageCount": 9,
  "coverUrl": "http://sns-webpic-qc.xhscdn.com/.../nd_dft_wlteh_jpg_3",
  "imageUrls": ["http://sns-webpic-qc.xhscdn.com/...", "..."],
  "images": [{ "url": "...", "width": 1440, "height": 1920, "livePhoto": false }],
  "sourceCategory": "food",
  "scrapedAt": "2026-08-13T18:21:39Z"
}
```

#### Video note (media block)

```json
{
  "noteType": "video",
  "videoUrl": "http://sns-video-v27.xhscdn.com/stream/1/110/259/01ea59b0...mp4?sign=...",
  "videoDuration": 57,
  "videoWidth": 720,
  "videoHeight": 1280,
  "videoFps": 30,
  "videoSizeBytes": 13057498,
  "videoQuality": "HD",
  "videoCodec": "h264",
  "videoStreamCount": 2,
  "videoStreams": [
    { "codec": "h265", "width": 720, "height": 1280, "avgBitrate": 1163648, "url": "..." },
    { "codec": "h264", "width": 720, "height": 1280, "avgBitrate": 1835432, "url": "..." }
  ],
  "videoBackupUrls": ["http://sns-bak-v8.xhscdn.com/...", "..."]
}
```

#### Creator profile

```json
{
  "type": "user",
  "userId": "5ec5e2b0000000000101ef59",
  "nickname": "二娃的楼顶菜园",
  "redId": "erwa19491001",
  "description": "草莓🍓番茄🍅 蔬菜🥬水果🍈 分享种菜日常和干货 ...",
  "followers": 10000,
  "followersText": "1万+",
  "following": 10,
  "likesAndCollects": 10000,
  "likesAndCollectsText": "1万+",
  "gender": "male",
  "ipLocation": "四川",
  "tags": ["27岁", "四川成都", "vlog博主", "景观设计师", "四川农业大学"],
  "avatar": "https://sns-avatar-qc.xhscdn.com/avatar/63229a46faf1f66cf07425ab.jpg",
  "profileUrl": "https://www.xiaohongshu.com/user/profile/5ec5e2b0000000000101ef59?xsec_token=..."
}
```

#### Comment reply (threads reconstruct in a spreadsheet)

```json
{
  "type": "comment",
  "commentId": "646367f50000000016037fcf",
  "noteId": "6461e80e000000002702ad27",
  "content": "都不用点进主页就知道是男宝呢[汗颜R]",
  "likes": 10,
  "isReply": true,
  "parentCommentId": "646311570000000016036642",
  "rootCommentId": "646311570000000016036642",
  "repliedToUserName": "？",
  "authorName": "小红薯54318",
  "authorId": "5a81a2744eacab0af8e1deb2",
  "ipLocation": "江西",
  "createdAt": "2024-01-24T06:00:23Z"
}
```

#### Keyword suggestion

```json
{
  "type": "keyword",
  "keyword": "口红",
  "suggestion": "口红色号大全",
  "searchType": "notes",
  "suggestionType": "top_note",
  "position": 1
}
```

***

### How fast is it?

Measured on the platform at the default concurrency of 5:

| Mode | Throughput | Example |
|---|---|---|
| `discoverFeed`, full detail | ~19 notes/min | 50 notes in 2 min 40 s |
| `discoverFeed`, listing only | ~120 notes/min | 50 notes in 25 s |
| `noteComments` | ~80 comments/min | 48 comments in 35 s |
| `userProfiles` | ~36 profiles/min | 12 profiles in 20 s |
| `keywordResearch` | ~180 suggestions/min | 60 suggestions in 20 s |

Raise **Concurrency** for more speed, lower it for gentler large runs.

***

### How much does it cost to scrape RedNote?

Pay per result. Higher Apify subscription tiers pay less per result automatically.

| You are charged for | Free | Bronze | Silver | Gold | Platinum | Diamond |
|---|---|---|---|---|---|---|
| Note (per 1,000) | $5.00 | $4.50 | $4.20 | $4.00 | $3.80 | $3.50 |
| Comment or reply (per 1,000) | $2.00 | $1.80 | $1.60 | $1.40 | $1.20 | $1.00 |
| Creator profile (per 1,000) | $10.00 | $9.00 | $8.00 | $7.00 | $6.00 | $5.00 |
| Keyword suggestion (per 1,000) | $1.00 | $0.90 | $0.80 | $0.70 | $0.60 | $0.50 |
| Actor start (per run, per GB of memory) | $0.001 | $0.0001 | $0.0001 | $0.0001 | $0.0001 | $0.0001 |

What a real job costs:

| Job | Free plan | Gold and above |
|---|---|---|
| 1,000 trending notes, full detail | ~$5.00 | ~$4.00 |
| 100 notes + 10 comments each | ~$2.50 | ~$1.80 |
| 500 creator profiles | ~$5.00 | ~$3.50 |
| 50 notes + their authors + 500 comments | ~$1.75 | ~$1.25 |
| 2,000 keyword suggestions | ~$2.00 | ~$1.40 |

**On the free plan**, $5 of monthly credits is roughly 1,000 fully-detailed notes, 2,500 comments, 500 creator profiles or 5,000 keyword suggestions. The price is all-inclusive — there is nothing else to add on top — and **rows that only explain why an input failed are never charged**. Set `maxItems` to cap any run exactly.

Cheaper still: run `fullNoteDetail: false` when you only need listing-level data.

***

### What needs a cookie, and what doesn't

Straight answer, because it is the one thing every RedNote scraper trips over:

| Capability | Cookie-free | With the optional cookie |
|---|---|---|
| Category feeds, unlimited cursor pagination | ✅ Full | ✅ Full |
| Full note details (caption, images, video, hashtags) | ✅ Full | ✅ Full |
| Creator profile stats | ✅ Full | ✅ Full |
| Keyword suggestions | ✅ Full | ✅ Full |
| Comments | ✅ Top comment page plus the replies inside those threads (about 10 top-level comments and their replies per note) | ✅ Paginates to your `maxCommentsPerNote` |
| A specific creator's notes | ⚠️ RedNote blanks the note ids in creator listings for anonymous sessions, so those rows carry title, cover, likes, date and post type, flagged `noteIdHiddenByRedNote`, without a per-note link | ✅ Full per-note detail |
| Keyword search over notes / creators | ❌ RedNote answers search only for signed-in sessions | ✅ Full |

If you need search, paste the cookie header from a logged-in `xiaohongshu.com` tab into the optional **cookie** field (stored as a secret). Everything else runs anonymously and needs nothing from you.

***

### Troubleshooting

| Symptom | Likely cause | Fix |
|---|---|---|
| A note row has only listing fields plus `detailError` | The note is deleted or private, or its access token expired | Copy a fresh link from RedNote; tokens travel inside the link |
| `error: Could not read a note id from this input` | A nickname, keyword or plain profile link landed in `noteUrls` | Put note links in `noteUrls`, profile links in `userUrls` |
| Search mode returns one row saying the endpoint is restricted | RedNote gates keyword search to signed-in sessions | Fill in the optional cookie field, or use `discoverFeed` + `keywordResearch` |
| Creator notes come back without links, flagged `noteIdHiddenByRedNote` | RedNote hides note ids from anonymous creator listings | Use the cookie field for full per-note detail |
| Fewer comments than the note's comment count | Anonymous sessions see the first comment page plus its replies | Raise `maxCommentsPerNote` **and** supply the cookie |
| Fewer rows than `maxItems` | The channel or creator ran out of items first | Add more categories, keywords or URLs |
| Media URL stops working after a while | RedNote CDN links are signed and time-limited | Download the file soon after the run, or re-run to refresh links |

***

### Input parameters

| Field | Type | Default | What it does |
|---|---|---|---|
| `scrapeType` | enum | `discoverFeed` | Which of the eight modes to run |
| `feedCategories` | array | `["recommended"]` | Category channels to page through: recommended, fashion, food, beauty, movies, career, relationships, home, gaming, travel, fitness, video |
| `noteUrls` | array | — | Note links, share links or bare note ids |
| `userUrls` | array | — | Profile links or bare user ids |
| `keywords` | array | — | Seed keywords for research and search |
| `expandKeywords` | boolean | `false` | Feed each suggestion back as a new seed |
| `searchSortBy` | enum | `relevance` | relevance, popularity, latest, mostCommented, mostCollected |
| `searchNoteType` | enum | `all` | all, video, image |
| `searchTimeFilter` | enum | `all` | all, day, week, halfYear |
| `maxItems` | integer | `100` | Hard cap on dataset rows for the run |
| `maxNotesPerUser` | integer | `30` | Notes per creator |
| `maxCommentsPerNote` | integer | `50` | Comments, replies included, per note |
| `fullNoteDetail` | boolean | `true` | Open each note for the full payload |
| `includeComments` | boolean | `false` | Add comment rows for every note collected |
| `includeSubComments` | boolean | `true` | Include replies inside comment threads |
| `includeAuthorProfile` | boolean | `false` | Add a profile row per distinct author, fetched once |
| `includeVideoStreams` | boolean | `true` | Keep every video rendition, not just the best MP4 |
| `includeRawData` | boolean | `false` | Attach RedNote's untouched payload as `raw` |
| `maxConcurrency` | integer | `5` | Parallel requests, 1–10 |
| `maxRetries` | integer | `5` | Retries per request |
| `cookie` | string (secret) | — | Only needed to unlock the two search modes |
| `proxyConfiguration` | object | Residential | Proxy settings; custom proxies supported |

***

### Integrations

Send RedNote data wherever it needs to go, with no glue code:

- **Google Sheets, Airtable, Slack, Gmail** — through Apify's native integrations
- **Make, Zapier, n8n** — trigger a run and pipe rows into any workflow
- **Webhooks** — fire on run finish and push the dataset to your own endpoint
- **REST API + JavaScript / Python clients** — call the actor and read the dataset programmatically
- **Schedules** — run any mode on a cron and let the dataset accumulate
- **Exports** — JSON, JSONL, CSV, Excel, XML, HTML table

***

### Use with AI agents (MCP)

This actor is callable through the **Apify MCP server**, so Claude, Cursor, VS Code or any MCP-capable agent can run it as a tool and read the results directly. Point your client at `https://mcp.apify.com`, add `pro100chok/rednote-xiaohongshu-scraper`, then just ask:

> "Pull 200 trending beauty notes from RedNote, keep the ones above 5,000 likes, and summarise which ingredients keep coming up in the captions."

Because six of the eight modes need no cookie, an autonomous agent can use them without ever handling credentials.

***

### Popular use cases

- **China market entry** — measure real demand and objections in first-person consumer posts before launching a product.
- **KOL / influencer discovery and vetting** — followers, likes+saves, region, niche tags and actual posting output per creator.
- **Brand and competitor monitoring** — schedule a daily category sweep and track engagement on your and rivals' content.
- **Beauty, fashion, food and travel trend research** — RedNote is where these trends surface first in China.
- **Comment sentiment mining** — thread-level opinions with likes and commenter region.
- **SEO and content planning** — RedNote's own suggestions expanded into a long-tail keyword map.
- **AI / LLM training corpora** — clean, flat Chinese-language UGC with engagement labels.
- **Video and image asset collection** — direct MP4 links and full-resolution galleries.

***

### Is it legal to scrape RedNote (Xiaohongshu)?

This actor collects only what RedNote shows publicly, and it does not log in anywhere or bypass authentication to reach content you could not otherwise see. Scraping publicly available data is generally lawful, but what you do with it matters: RedNote rows contain personal data such as nicknames, avatars, bios and coarse region, so handle them under **GDPR, CCPA and PIPL**, respect RedNote's terms of service, and respect creators' rights when storing or republishing media. When in doubt, talk to your legal team — and see Apify's guide, [is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

This actor is an independent, unofficial tool. It is **not affiliated with, endorsed by or sponsored by** Xiaohongshu / RedNote or Xingin (Xingyin Information Technology). The **Xiaohongshu**, **RedNote**, **小红书** and **Little Red Book** names are the property of their respective owners and are used here descriptively.

***

### FAQ

#### What is RedNote (Xiaohongshu / 小红书 / Little Red Book)?

China's leading lifestyle-discovery and social-commerce platform, with 300M+ monthly users posting first-person reviews of products, restaurants, travel and beauty routines. It is also known as XHS, RED and Little Red Book. It went viral internationally in 2025 when US users migrated to it.

#### Does RedNote have a public API?

Not for content. RedNote's open platform serves business and advertising integrations, so there is no official endpoint that returns notes, creators or comments to third-party developers. This actor is the practical alternative.

#### Do I need a RedNote account or cookies?

Not for six of the eight modes. Category feeds, note details, comments, creator profiles, creator notes and keyword research all run anonymously. Only the two keyword-search modes need a cookie, because RedNote itself refuses search for anyone who is not signed in.

#### Why does keyword search need a cookie?

Because RedNote answers its search endpoint only for signed-in sessions — it returns "this account has no access" to everyone else, from any location. No scraper can change that. Paste a cookie to unlock it, or use `discoverFeed` plus `keywordResearch`, which cover most content research without one.

#### How many comments do I get per note?

Anonymously: the top comment page plus the replies inside those threads, typically around 10 top-level comments with their replies. With the optional cookie the actor keeps paginating up to your `maxCommentsPerNote`.

#### How many notes do I get per creator?

RedNote returns a creator's recent posts but blanks the individual note ids for anonymous sessions, so those rows arrive with title, cover, likes, date and post type — flagged `noteIdHiddenByRedNote` — and no per-note link. Profile stats are complete either way; full per-note detail needs the cookie.

#### Where do I find a note or profile link?

Open the note or profile in RedNote and use share → copy link. The link contains the `xsec_token` the actor needs, and every dataset row hands that token back so you can reuse it later.

#### Can I download RedNote videos and images?

You get direct, ready-to-use MP4 links plus mirrors, and full-resolution image URLs. The links are signed by RedNote's CDN and expire after a while, so fetch the files soon after the run.

#### Are the engagement counts exact?

They are exactly what RedNote publishes. Above a threshold RedNote itself rounds to forms like `10万+`, so you get both the original string and the parsed integer, and you can see which is which.

#### Why is `ipLocation` missing on some notes?

RedNote only attaches a publish region to some posts. When it is absent upstream, the field is simply omitted rather than guessed.

#### Can I export to CSV or Excel?

Yes — JSON, JSONL, CSV, Excel, XML and HTML table, from the Output tab or the API. The dataset also ships preset views for notes, creators, comments, keywords and media.

#### Will I be charged for URLs that return nothing?

No. A row that only explains why an input failed is never billed.

#### Can I schedule recurring runs?

Yes. Use Apify Schedules to run any mode on a cron, and add a webhook if you want each finished dataset pushed into your own system.

#### How fast is it, and can I speed it up?

At the default concurrency of 5, roughly 19 fully-detailed notes per minute, or about 120 notes per minute in listing-only mode. Raise the Concurrency input to go faster.

#### Is the data in Chinese?

Yes — RedNote is a Chinese platform, so titles, captions, comments and region names come back in the original language, exactly as posted. Tip: searching or scanning with the Chinese brand name (`耐克` rather than Nike) surfaces far more native consumer content.

#### Is it legal to scrape RedNote?

See [the section above](#is-it-legal-to-scrape-rednote-xiaohongshu) — public data only, no login, and GDPR / CCPA / PIPL apply to how you use it.

***

### 中文说明

本 Actor 用于采集 **小红书 / RedNote / Xiaohongshu (XHS)** 公开数据：分类推荐流、笔记详情（正文、全部图片、视频直链、话题标签、点赞收藏评论分享数）、博主主页（粉丝数、小红书号、简介、地区）、笔记评论及回复、以及小红书搜索联想词。**八个模式中有六个完全无需登录、无需 Cookie。** 支持导出 JSON / CSV / Excel，按结果计费，失败行不计费。

***

### Feedback & support

Found a bug, a missing field, or a note that will not parse? Open an issue on the actor's **Issues** tab with the run URL — that is the fastest path to a fix. Feature requests are welcome there too, and a ⭐ review helps other RedNote researchers find the actor.

***

### More scrapers by this developer

- 🛒 [TikTok Shop Scraper & Analytics](https://apify.com/pro100chok/tiktok-shop-scraper-usage) — products, shops and sales analytics
- 🎵 [TikTok Profile API Scraper](https://apify.com/pro100chok/tiktok-profile-pro) — profiles, contacts and engagement analytics
- 📸 [Instagram Scraper API](https://apify.com/pro100chok/instagram-scraper-all-in-one) — profiles, posts, followers and comments
- 🧵 [Threads Scraper](https://apify.com/pro100chok/threads-scraper-usage) — posts, profiles and replies, no login
- 📌 [Pinterest Full Scraper](https://apify.com/pro100chok/pinterest-scraper-all-in-one) — pins, profiles and boards
- ▶️ [YouTube Scraper API](https://apify.com/pro100chok/youtube-scraper-all-in-one) — videos, transcripts and comments
- 🏬 [AliExpress Scraper API](https://apify.com/pro100chok/aliexpress-scraper) — products, variants and reviews
- 🏭 [Alibaba Scraper API](https://apify.com/pro100chok/alibaba-scraper) — products, suppliers and prices

***

**Tags:** rednote scraper, xiaohongshu scraper, 小红书 采集, xhs scraper, little red book scraper, red scraper, rednote api, xiaohongshu api, unofficial xiaohongshu api, rednote data extraction, xiaohongshu notes scraper, rednote comments scraper, xiaohongshu comments api, rednote profile scraper, xiaohongshu kol scraper, rednote influencer scraper, xiaohongshu keyword research, rednote trending feed, xiaohongshu video downloader, rednote video url, xiaohongshu without login, rednote no cookie, china social media scraper, chinese consumer research, china market entry data, kol discovery china, beauty trends china, fashion trends china, food trends china, chinese ugc dataset, llm training data chinese, brand monitoring china, social listening china, xiaohongshu engagement metrics, rednote hashtags, xiaohongshu export csv

# Actor input Schema

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

Every mode except the two keyword-search ones works with no login and no cookie at all. Fill in only the input field that belongs to the mode you pick.

## `feedCategories` (type: `array`):

Used by the 🔥 Discovery feed mode. Pick one or more RedNote channels; the actor pages through each of them until your result limit is met. Results are split evenly between the selected categories.

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

Used by the 📝 Note details and 💬 Comments modes. Paste note links exactly as you copied them from RedNote — the `xsec_token` in the link is what unlocks the note. Share links (xhslink.com) are resolved automatically. Bare 24-character note IDs also work if you already have a matching token from an earlier run.

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

Used by the 👤 Creator profiles and 📚 Creator notes modes. Paste profile links as copied from RedNote, or bare 24-character user IDs.

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

Used by the 🔎 Keyword research and 🔍 Keyword search modes. Chinese, English or mixed queries all work.

## `expandKeywords` (type: `boolean`):

Keyword research only: feed every suggestion back in as a new seed, so one keyword grows into a full long-tail map until the result limit is reached.

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

Keyword search only: how RedNote should rank the results.

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

Keyword search only: restrict results to one post format.

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

Keyword search only: restrict results by how recently they were published.

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

Hard cap on how many records this run pushes to the dataset. Notes, profiles, comments and keywords all count as one record each.

## `maxNotesPerUser` (type: `integer`):

Creator notes mode: how many posts to collect per creator before moving on to the next one.

## `maxCommentsPerNote` (type: `integer`):

Comments mode (and the comment add-on): how many comments — replies included — to collect per note.

## `fullNoteDetail` (type: `boolean`):

On: every discovered note is opened to collect the body text, all images, video streams, hashtags, region and the complete engagement counters — one page load per note. Off: only the listing card (title, cover, author, likes, date) is kept, which runs several times faster and uses a fraction of the bandwidth.

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

Add comment records for every note collected in the feed, note, creator and search modes.

## `includeSubComments` (type: `boolean`):

Include replies inside comment threads, each as its own record linked to its parent comment.

## `includeAuthorProfile` (type: `boolean`):

Add a full creator profile record (followers, RedNote handle, bio, region) for every distinct author encountered. Each author is fetched only once per run.

## `includeVideoStreams` (type: `boolean`):

Keep the full list of video renditions (h264/h265/av1 with resolution, fps, bitrate and file size) next to the ready-to-use best-quality MP4 link.

## `includeRawData` (type: `boolean`):

Attach the untouched RedNote response to each record under `raw`. Useful when you need a field the actor does not map yet.

## `maxConcurrency` (type: `integer`):

How many requests run in parallel. Higher is faster; lower is gentler and more reliable on large runs.

## `maxRetries` (type: `integer`):

How many times a failed request is retried before the actor moves on.

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

Only needed for the two 🔍 keyword-search modes, which RedNote answers exclusively for signed-in sessions. Paste the full cookie header from a logged-in xiaohongshu.com browser tab. Leave empty for every other mode — those run fully anonymously.

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

Residential proxies are strongly recommended and used by default. You can also switch to your own proxies on the Custom proxies tab.

## Actor input object example

```json
{
  "scrapeType": "discoverFeed",
  "feedCategories": [
    "food",
    "beauty"
  ],
  "noteUrls": [
    "https://www.xiaohongshu.com/explore/6a51b700000000000f028107?xsec_token=ABzPDMicao11A7ioBtbwH1ox1LqAtrhBjv1vTx6xbsXIQ%3D&xsec_source=pc_feed"
  ],
  "userUrls": [
    "https://www.xiaohongshu.com/user/profile/5bbe0958e1e44e00014185bb"
  ],
  "keywords": [
    "口红",
    "coffee"
  ],
  "expandKeywords": false,
  "searchSortBy": "relevance",
  "searchNoteType": "all",
  "searchTimeFilter": "all",
  "maxItems": 100,
  "maxNotesPerUser": 30,
  "maxCommentsPerNote": 50,
  "fullNoteDetail": true,
  "includeComments": false,
  "includeSubComments": true,
  "includeAuthorProfile": false,
  "includeVideoStreams": true,
  "includeRawData": false,
  "maxConcurrency": 5,
  "maxRetries": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

No description

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

No description

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

No description

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

No description

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

No description

## `media` (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 = {
    "scrapeType": "discoverFeed",
    "feedCategories": [
        "food",
        "beauty"
    ],
    "noteUrls": [
        "https://www.xiaohongshu.com/explore/6a51b700000000000f028107?xsec_token=ABzPDMicao11A7ioBtbwH1ox1LqAtrhBjv1vTx6xbsXIQ%3D&xsec_source=pc_feed"
    ],
    "userUrls": [
        "https://www.xiaohongshu.com/user/profile/5bbe0958e1e44e00014185bb"
    ],
    "keywords": [
        "口红",
        "coffee"
    ],
    "maxItems": 100,
    "maxNotesPerUser": 30,
    "maxCommentsPerNote": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("pro100chok/rednote-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 = {
    "scrapeType": "discoverFeed",
    "feedCategories": [
        "food",
        "beauty",
    ],
    "noteUrls": ["https://www.xiaohongshu.com/explore/6a51b700000000000f028107?xsec_token=ABzPDMicao11A7ioBtbwH1ox1LqAtrhBjv1vTx6xbsXIQ%3D&xsec_source=pc_feed"],
    "userUrls": ["https://www.xiaohongshu.com/user/profile/5bbe0958e1e44e00014185bb"],
    "keywords": [
        "口红",
        "coffee",
    ],
    "maxItems": 100,
    "maxNotesPerUser": 30,
    "maxCommentsPerNote": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("pro100chok/rednote-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 '{
  "scrapeType": "discoverFeed",
  "feedCategories": [
    "food",
    "beauty"
  ],
  "noteUrls": [
    "https://www.xiaohongshu.com/explore/6a51b700000000000f028107?xsec_token=ABzPDMicao11A7ioBtbwH1ox1LqAtrhBjv1vTx6xbsXIQ%3D&xsec_source=pc_feed"
  ],
  "userUrls": [
    "https://www.xiaohongshu.com/user/profile/5bbe0958e1e44e00014185bb"
  ],
  "keywords": [
    "口红",
    "coffee"
  ],
  "maxItems": 100,
  "maxNotesPerUser": 30,
  "maxCommentsPerNote": 50
}' |
apify call pro100chok/rednote-xiaohongshu-scraper --silent --output-dataset

```

## MCP server setup

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