RedNote Scraper - Xiaohongshu Notes & Engagement
Pricing
from $0.87 / 1,000 notes
RedNote Scraper - Xiaohongshu Notes & Engagement
Scrape public RedNote (Xiaohongshu) notes from note links, share text from the app, or the explore feed. One row per note: text, author, likes, collects, comments, shares, hashtags, images, video link and publish time. Counts come back as real numbers. No keyword search. $0.90 per 1,000 notes.
Pricing
from $0.87 / 1,000 notes
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
3
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape RedNote (Xiaohongshu) notes with real like and collect counts: paste RedNote note links, share links or share text and get one row per note, with the title, the description, the author and their profile link, likes, collects, comments, shares, publish time, hashtags and images, plus the video link and length on video notes. Leave the links empty and it reads the public explore feed instead.
The catch is the link itself. A RedNote URL only resolves with the xsec_token it was shared with,
so paste the whole thing, query string and all. Those tokens go stale, and share links with them,
which is why a list saved last month comes back empty.
| Input | Note URLs with their share token, share links or share text, or nothing at all |
| Output | One row per note: title, description, author and profile link, likes, collects, comments, shares, publish time, hashtags, images, note type, video link |
| Ceiling | 200 notes per run |
| Account needed | None, no login and no cookies |
| Price | $0.90 per 1,000 notes on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 5,500 |
🔍 What RedNote Scraper does
Two ways in.
Note URLs. Paste the full link, including ?xsec_token=.... Copy it from the share sheet or
straight out of the address bar; a link stripped back to the note id will not open. A share link from
the app (xhslink.com/...) works as well, and so does the whole share text: the run follows the link
to its note.
The explore feed. Leave Note URLs empty and it reads RedNote's public explore feed and returns what is on it. This is switched on by default. The feed is different every time you look at it, so two runs an hour apart will not agree.
Counts come back as numbers. RedNote writes 13,000 as 1.3万, because 万 means ten thousand, and
250 million as 2.5亿. Rows here carry 13000 and 250000000. Where RedNote only publishes a
bucket like 1千+, you get the floor of that bucket, 1000.
📋 What data you get from each RedNote note
| What you get | Field |
|---|---|
| The note's id and the exact link that was fetched | noteId, url |
| The headline and the caption, hashtags included | title, description |
| Who posted it, their profile link and avatar | authorName, authorId, authorProfileUrl, authorAvatar |
| Likes, collects, comments and shares, as real numbers | likedCount, collectedCount, commentCount, shareCount |
| When it was published and last edited | publishedAt, lastUpdateTime |
| Image note or video note | noteType |
| On video notes, the length in seconds and one playback link | videoDurationSec, videoUrl |
| The cover and up to 20 image links | coverImageUrl, images |
| The hashtags as a list, and the accounts tagged with @ | hashtags, mentions |
| The location label RedNote shows on the note | ipLocation |
| What kind of row it is | recordType |
| Where it came from and when it was read | source, scrapedAt |
▶️ How to scrape RedNote notes
- Open RedNote Scraper and click Try for free.
- Paste your note links, share links or share text into Note URLs. A full link needs its
?xsec_token=part. - Set Maximum notes to what you actually want.
- Click Start.
- Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
To see what the feed is showing right now, skip step 2 and leave Include explore feed on.
💰 How much does it cost to scrape RedNote notes?
$0.90 per 1,000 notes on the Free plan. Paid plans pay a little less: $0.89 on Starter, $0.88 on Scale and $0.87 on Business. On the free plan, the $5 Apify gives you each month covers about 5,500 notes.
One row is one note. The sample row and every diagnostic row are not charged, so a link that will not open produces no note row to pay for.
Worth knowing: with Include explore feed left on, a run with no URLs is not an idle run. It reads the feed and returns real notes, and those are charged like any other.
📥 What you give it
{"noteUrls": ["https://www.xiaohongshu.com/explore/6a72ba26000000003302db55?xsec_token=ABgKYGq72MJJJWO8OVQh3Mtv79Mx-v2eHs6IaBJtUp2Ow=&xsec_source=pc_feed"],"maxItems": 50}
| Field | Default | What it is |
|---|---|---|
noteUrls | empty | One per line: full note links, each with its own xsec_token, share links from the app, or share text. |
includeExploreFeed | true | Read the public explore feed. Leave it on when you have no links. |
maxItems | 20 | How many notes to return, 1 to 200. You are charged per note returned, so this is your spend cap. |
proxyConfiguration | leave it alone | Optional. Only fill this in if you want the run to go out through your own servers. |
Run it with the URL box empty and Include explore feed left on, and it reads the feed and returns notes from it. Switch that off with no URLs and you get one labelled sample row instead.
📤 What you get back
A real note row, a news account's video note read on 17 October 2026. The text and the links are trimmed here.
{"ok": true,"noteId": "6aaf5789000000002800001d","url": "https://www.xiaohongshu.com/explore/6aaf5789000000002800001d?xsec_token=ABQ77lS4WJjr...&xsec_source=pc_feed","title": "上海居民家窗台惊现巨型白蛇,长度超过3米!...","description": "上海居民家窗台惊现巨型白蛇,长度超过3米!消防部门回应:已经移交给林业局...","authorName": "上观新闻","likedCount": 31000,"collectedCount": 1672,"commentCount": 2144,"shareCount": 10000,"publishedAt": "2026-09-20T03:48:25.000Z","images": ["http://sns-webpic-qc.xhscdn.com/202610171133/c8632782.../spectrum/1040g0k0325atligeka0g5oajrhk0kbsa41leg90!nd_dft_wlteh_webp_3"],"source": "xiaohongshu.com","scrapedAt": "2026-10-17T03:48:57.402Z","recordType": "note","authorId": "6153dc680000000002022f8a","authorProfileUrl": "https://www.xiaohongshu.com/user/profile/6153dc680000000002022f8a","authorAvatar": "https://sns-avatar-qc.xhscdn.com/avatar/618b8944a2d28269eb72245f.jpg","noteType": "video","videoDurationSec": 10.1,"videoUrl": "http://sns-video-zl.xhscdn.com/stream/1/110/258/01eaaf5760...683_258.mp4?sign=...","coverImageUrl": "http://sns-webpic-qc.xhscdn.com/202610171133/c8632782.../spectrum/1040g0k0325atligeka0g5oajrhk0kbsa41leg90!nd_dft_wlteh_webp_3","hashtags": [],"mentions": [],"ipLocation": "上海","lastUpdateTime": "2026-09-20T03:48:26.000Z"}
hashtags is empty on that row although the caption has #上海: those were typed as plain text, and
RedNote did not link them as topics.
| Field | How to read it |
|---|---|
noteId | RedNote's own id. It is the key to join on between runs. |
title, description | The headline and the caption, exactly as posted, hashtags included. |
likedCount, collectedCount | Likes and saves as real integers. A collect is RedNote's save-for-later, and on this platform it often runs ahead of likes. |
commentCount, shareCount | The counters on the note. null when RedNote does not publish one. |
publishedAt, lastUpdateTime | ISO timestamps. null when the note does not carry a usable one. |
images, coverImageUrl | Up to 20 image URLs, and the first of them, which RedNote uses as the cover. The files stay on RedNote's servers. |
noteType | image or video. |
videoUrl, videoDurationSec | One normal playback link and the length in seconds, on video notes only; null on image notes. A link, not a file. |
hashtags | The topic tags RedNote links on the note, as a list. |
mentions | The accounts tagged with @, each with userId and nickname. Empty when nobody is tagged. |
ipLocation | The location label RedNote prints on the note, such as a province. null when it shows none. |
authorProfileUrl | The author's profile page. It goes straight into RedNote Profile Scraper. |
url | The exact link that was fetched, token included, so you can reopen it. For a share link, the share link. |
🧾 Reading the output
Three kinds of row can land in your dataset.
| Row | How to spot it | Charged |
|---|---|---|
| A note | recordType is note | yes |
| The sample row | It carries _sample | no |
| A diagnostic | It carries _diagnostic and an errorCode | no |
Keep the rows where recordType is note and you have your notes. Each note is charged once a run,
even when a share link and the feed both lead to it.
| Code | What it means |
|---|---|
NOT_FOUND | That note is gone, private, or the link arrived without a working token. An old share link lands here too. The row carries a hint saying which. |
NOT_A_NOTE | The entry held no note: a profile link, a share link that opens something else, or text with no RedNote link in it. |
NO_RESULTS | The page came back without that note in it. |
NOT_SERVED | This note was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED. |
NETWORK | RedNote was unreachable. |
TIME_LIMIT | The run got close to its time limit and stopped on its own. The notes delivered before that are complete and charged. Give the run more time, or ask for fewer notes, to get the rest. |
A diagnostic never fails the run, except one: when the time limit stopped the run before any note came back, the
run ends as failed, with a TIME_LIMIT row saying so.
💡 What people use it for
- Tracking how a product or a brand is being talked about on RedNote, with real numbers instead of
1.3万. - Watching what the explore feed pushes over a week, on a schedule, joining runs on
noteId. - Counting which tags a niche actually uses, straight from
hashtags. - Comparing collects against likes, which on RedNote says more about saving intent than a like does.
🚧 What it does not do
- No keyword search and no topic pages. You give it links, or you take what the explore feed offers. There is no search box to query.
- No comment text. You get
commentCount, not what anyone wrote underneath. - No video files.
videoUrlis a link to the video where RedNote keeps it. Nothing is downloaded. - No follower lists, no shop products and no product reviews.
- Links go stale. The
xsec_tokenon a shared URL expires, and an expired link comes back asNOT_FOUND. Share links too. Re-copy the link rather than re-running the old one. - Public notes only. A private or deleted note returns a diagnostic row.
- A profile is not a note. A profile link gets a free
NOT_A_NOTErow. Accounts are read by RedNote Profile Scraper. - The explore feed is not a search result. It is whatever RedNote is showing, and it changes between runs. Do not expect two runs to overlap.
- 200 notes per run. Split a bigger job across runs.
- Bucket counts lose precision.
1千+becomes1000, which is the floor of the bucket, not the real figure. - It is not an official RedNote (Xiaohongshu) tool. Dami's Studio is independent and is not affiliated with or endorsed by RedNote (Xiaohongshu), or by any other company named on this page.
🧭 Which Chinese platform scraper do you need?
| If you want | Use |
|---|---|
| Individual RedNote notes and their engagement | This one |
| RedNote accounts, with followers and recent notes | RedNote Profile Scraper |
| What China is searching and posting about on Douyin right now | Douyin Hot Search Scraper |
| Bilibili videos, leaderboards, uploaders and comments | Bilibili Scraper |
| The same job on TikTok: videos with plays, likes and saves | TikTok Scraper |
❓ Questions people ask
Do I need a RedNote account or a cookie?
No. Nothing to log into and nothing to paste.
Can I paste a share link or share text from the RedNote app?
Yes. Paste the xhslink.com link or the whole block of share text, and the run follows the link to
the note. A share link that no longer opens comes back as a free NOT_FOUND row.
Why did my saved RedNote links return nothing?
The token in the URL expired. Copy the links again from RedNote and re-run.
Where do I get RedNote note links if I have none?
Leave the URL box empty. The explore feed returns notes with their links, and you can feed those back in.
What is a collect on RedNote?
RedNote's save-for-later. It is a stronger signal than a like on this platform, and
collectedCount often runs higher than likedCount.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab has ready-made code for
Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect
https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/rednote-scraper. Either way the run
happens on your Apify account at the same price.
Is it legal to scrape RedNote?
These are public notes. Author names are personal data under GDPR and similar laws, so have a reason for collecting them. Apify's write-up on the legality of web scraping is a good place to start, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send one of the note links and the run ID. The
errorCode and its hint on the diagnostic row usually name the problem on their own.