# Xiaohongshu (RedNote) Notes Scraper

> Xiaohongshu (RedNote) scraper: get public notes from links, profiles or the trending feed. Text, hashtags, images, video, likes and saves. No login.

URL: https://cliqtomedia.com/actors/xiaohongshu-scraper/

Category: Social media & communities · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/xiaohongshu-scraper?fpr=cliqto

Get public Xiaohongshu notes without login. Start from note links, author profiles or the trending Explore feed. Each note is one clean row.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `trending` in What to scrape. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Get public Xiaohongshu (RedNote, 小红书) notes as clean data rows: title, text, hashtags, images, video, likes, saves, comments, shares, author and date. Start from note links, author profiles or the trending Explore feed.

- Note links — full notes from your links: text, hashtags, all images, video link, counters, author, dates.
- Author profiles — the notes a profile shows to visitors (about 30 latest per profile). Xiaohongshu hides note text and note IDs on profiles from visitors, so these rows are short "cards": title, cover, likes, author, date.
- Trending feed — notes from the Explore feed or one of its channels (fashion, food, travel and more). Each note is opened and saved in full.

### Good for

- Check likes, saves and comments of your own or competitor notes.
- See what the Explore feed of a channel shows right now, on a schedule. The feed mixes new and older notes, so check `createdAt` if you need only recent ones.
- Watch the latest posts of creators you work with.

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.01 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Note | $0.00249 (from $0.00174 on paid Apify plans) | Charged for each saved note row. Links that are not found or fail are free. |

- One result: about $0.01.
- 1,000 results: about $2.50.
- Every day 100 results, for 30 days: about $7.77 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 8 November 2026. Current price: https://apify.com/cliqtomedia/xiaohongshu-scraper?fpr=cliqto

## Questions

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

No. The tool reads only what any visitor sees.

### Can I search by keyword?

No. Xiaohongshu shows search only to signed-in users.

### Why do profile rows have no text?

Xiaohongshu shows visitors only note cards on a profile. Open the note links for full text.

### Why are some `ipLocation` or `title` values empty?

The site does not show them on many notes. `null` means "not shown", not an error.

### Do I pay for links that do not work?

No. Only saved rows (also `partial` ones) and the start fee are charged.

## Data fields

- `noteId` (string): Note ID. Null on profile cards: Xiaohongshu hides note IDs on profiles to visitors.
- `url` (string): Note page with its xsec_token, so it opens in a browser.
- `title` (string): Note title.
- `desc` (string): Note text with hashtags as written. Full notes only.
- `type` (string): image: photo note; video: video note.
- `author` (object): Author: userId, nickname, avatarUrl, profileUrl. In user mode also redId, followers, following, likesAndCollects (rounded as on the page) and location; null in other modes.
- `likes` (integer): Likes. Null when Xiaohongshu does not show it.
- `collects` (integer): Saves (collects). Full notes only.
- `comments` (integer): Comments count (0 when the note has none). Full notes only; null on cards.
- `shares` (integer): Shares. Full notes only.
- `tags` (array): Hashtags of the note.
- `images` (array): Images: url, width, height.
- `coverUrl` (string): First image or video cover.
- `videoUrl` (string): Video stream URL (video notes).
- `createdAt` (string): Publish time, ISO 8601 UTC.
- `updatedAt` (string): Last edit time, ISO 8601 UTC.
- `ipLocation` (string): Region Xiaohongshu shows for the author's IP, e.g. 浙江.
- `detail` (string): full: read from the note page; card: what a profile grid or the feed shows (title, cover, likes, author); null for not_found and error rows.
- `mode` (string): Mode that found the note.
- `channel` (string): Feed channel (trending mode).
- `inputUrl` (string): The input link this row comes from.
- `status` (string): complete: all fields Xiaohongshu shows for this kind of row; partial: the note page did not open, feed card fields only; not_found: deleted, private, expired share token or empty profile (free); error: the page could not be read (free).
- `error` (string): Why the row is partial, not_found or error.
- `fetchedAt` (string): When the row was collected, ISO 8601 UTC.

## Input settings

- `mode` (string, required): Note links: full notes from the links below. Author profiles: the notes an author profile shows to visitors (about 30 latest, card fields only: Xiaohongshu hides note text and IDs there without login). Trending feed: notes from the Explore feed or one of its channels, each read in full.
- `urls` (array): Note links (https://www.xiaohongshu.com/explore/<id>?xsec_token=…, /discovery/item/… or share links http://xhslink.com/…) for Note links mode, or profile links (https://www.xiaohongshu.com/user/profile/<userId>) and 24-character user IDs for Author profiles mode. Copy note links from the app's Share button or from the browser: Xiaohongshu opens a note to visitors only with its xsec_token. Up to 100 note links or 20 profiles per run.
- `channel` (string): Trending feed mode only: which Explore channel to read.
- `maxItems` (integer): Most notes to return in the whole run (1–500). Each returned note is one Note event; not found and failed links are free.
- `onlyNew` (boolean): Skip notes this account already got from earlier runs with the same memory name, so scheduled runs pay only for new notes.
- `stateName` (string): Name of the memory used by "Only new notes" (letters, digits and -). Use a different name for each monitoring task.
- `proxyConfiguration` (object): Apify Proxy datacenter addresses are used by default and are included in the price. Residential and other paid proxy groups are not used: the Actor falls back to datacenter. You can also give your own proxy URLs.
- `deliveryConnector` (string): Your Slack, Notion or other MCP connector. After the run the Actor posts a short summary there. Connect services once in Apify Console → MCP connectors.
- `deliveryTarget` (string): Where to post the summary: a Notion page link (each run is added on top of that page) or a Slack channel ID. Leave empty to let the connector decide.

## Step by step on Apify

1. Open the Input tab. What to scrape is already `Trending feed` (box 1). To use your own links, pick `Note links` or `Author profiles` and add them in Links.
2. Keep Feed channel = `Recommended`, or pick another channel (box 2).
3. Keep Max notes = `20` (box 3), then click Start at the bottom of the form.
4. Open the Output tab and check the title, author, likes, saves and comments (box 4).

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Track counters of chosen notes | `mode: note`, `urls` | full note | `likes`, `collects`, `comments`, `shares` | schedule + export to Google Sheets |
| Find trending content in a niche | `mode: trending`, `channel` | full note | `title`, `tags`, `likes`, `createdAt` | schedule + `onlyNew` |
| Watch creators' new posts | `mode: user`, `urls` | note card | `title`, `likes`, `coverUrl`, `createdAt`, `author.followers` | schedule + `onlyNew`, webhook |

## Tips

- Copy note links with Share, then Copy link. Links need their xsec_token.
- Profiles show about 30 latest notes, as short cards without text.
- Use onlyNew with a schedule to get only new notes.

## Limits



- No keyword search: Xiaohongshu shows search only to signed-in users.
- Note links need their `xsec_token`. A bare `/explore/<id>` link, or a link with an expired token, gives `not_found`.
- Profiles show visitors about 30 latest notes, as short cards without text, hashtags or note IDs.
- Xiaohongshu refuses profile pages more often than note pages. A run with many profiles can stop early with `SOURCE_ERROR`; rows saved before the stop stay in the Dataset, and the run still ends as Succeeded with a warning. For big lists, use several smaller runs.
- The trending feed shows visitors about 180–280 notes per channel per run (280 in our largest test). For more, run it on a schedule with `onlyNew`.
- Up to 100 note links or 20 profiles per run. In our tests 20 profiles gave 500 short cards in one run and stopped at 246 after a refusal in another; see the line above.
- The Actor stops opening pages 240 seconds after the start (`stopReason: TIMEOUT`) and keeps the saved rows.
- If you set a maximum charge per run, the run stops there (`stopReason: CHARGE_LIMIT`) and keeps the saved notes.

## Sample result

```json
{
  "noteId": "64abf31b00000000120125be",
  "url": "https://www.xiaohongshu.com/explore/64abf31b00000000120125be?xsec_token=ABtBwHcu7rrk2ZOH0uuALyQCzfi9sLXTZzr34IPsd2p6o%3D&xsec_source=pc_feed",
  "title": "大家要的短裙来咯",
  "desc": "姐妹们要的网红格子短裙来咯，这个颜色很赞！#公主的100条连衣裙 #无法拒绝温柔感小裙子 #ootd穿搭 #网红女装测评 #辣妹穿搭",
  "type": "video",
  "author": {
    "userId": "6416ce0f0000000011020e22",
    "nickname": "油克李李",
    "avatarUrl": "https://sns-avatar-qc.xhscdn.com/avatar/642d445bc687b724391f6a2a.jpg",
    "profileUrl": "https://www.xiaohongshu.com/user/profile/6416ce0f0000000011020e22",
    "redId": null,
    "followers": null,
    "following": null,
    "likesAndCollects": null,
    "location": null
  },
  "likes": 2526,
  "collects": 646,
  "comments": 140,
  "shares": 151,
  "tags": ["公主的100条连衣裙", "无法拒绝温柔感小裙子", "ootd穿搭", "网红女装测评", "辣妹穿搭"],
  "images": [
    { "url": "https://sns-webpic-qc.xhscdn.com/…!nd_dft_wlteh_jpg_3", "width": 1080, "height": 1920 }
  ],
  "coverUrl": "https://sns-webpic-qc.xhscdn.com/…!nd_dft_wlteh_jpg_3",
  "videoUrl": "https://sns-video-zl.xhscdn.com/stream/110/258/…_258.mp4?sign=…",
  "createdAt": "2023-07-10T12:01:31.000Z",
  "updatedAt": "2023-07-10T12:01:31.000Z",
  "ipLocation": null,
  "detail": "full",
  "mode": "trending",
  "channel": "fashion",
  "inputUrl": null,
  "fetchedAt": "2026-10-26T14:25:21.971Z",
  "status": "complete",
  "error": null
}
```

## Use it from code

Actor ID: `cliqtomedia/xiaohongshu-scraper`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/xiaohongshu-scraper").call(run_input={
    "mode": "trending",
    "channel": "recommend"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~xiaohongshu-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "trending", "channel": "recommend"}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/xiaohongshu-scraper")
result = tool.invoke({"run_input": {"mode": "trending", "channel": "recommend"}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Similar tools

- [Bilibili Scraper: Videos, Comments & Creators, No Login](https://cliqtomedia.com/actors/bilibili-scraper/)
- [Weibo Scraper: Posts, Comments & Profiles, No Login](https://cliqtomedia.com/actors/weibo-scraper/)
- [Douyin Scraper - Videos, Search & Trends, No Login](https://cliqtomedia.com/actors/douyin-scraper/)
- [Substack Newsletter Scraper: RSS Feed Metadata](https://cliqtomedia.com/actors/substack-newsletter-scraper/)
- [Hacker News Scraper: Stories, Comments & Parent IDs](https://cliqtomedia.com/actors/hacker-news-stories-comments-scraper/)
- [Bluesky Scraper — Posts, Profiles & Followers, No Login](https://cliqtomedia.com/actors/bluesky-scraper/)
