RedNote (Xiaohongshu) User Profile Scraper
Pricing
from $2.84 / 1,000 profiles
RedNote (Xiaohongshu) User Profile Scraper
Scrape RedNote (Xiaohongshu) user profiles from links or user ids. Each row has the nickname, RedNote ID, bio, follower and following counts, likes and collects, the verified badge, the province shown and up to 30 recent notes. No login. $2.90 per 1,000 profiles.
Pricing
from $2.84 / 1,000 profiles
Rating
5.0
(1)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
22
Total users
11
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape RedNote (Xiaohongshu) profiles with followers and recent notes: paste RedNote profile links or bare user ids and get one row per account, with the nickname, RedNote ID, bio, avatar, follower and following counts, total likes and collects, the verified badge, the province RedNote shows next to the account, and up to 30 recent notes with their own engagement numbers.
The counts need one caveat. RedNote publishes some figures exactly and rounds others on the page, so
followerCount can be a real integer or a reading of 94.3K. Every row carries
followerCountIsExact and countsAreApproximate so you always know which you got.
| Input | Profile URLs or 24-character user ids |
| Output | One row per profile: nickname, RedNote ID, bio, followers, following, likes and collects, verified badge, province, up to 30 recent notes |
| Ceiling | 1,000 profiles per run, 30 notes on each |
| Account needed | None, no login and no cookies |
| Price | $2.90 per 1,000 profiles on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 1,700 |
🔍 What RedNote Profile Scraper does
Give it the accounts you want. A profile link, or just the 24-character id from the end of one, and you get one row back per entry. Paste links as you have them; a full link saves a request.
Recent notes come with the profile. Up to 30 of them, newest first, each with its title, type,
likes, collects, comment count, whether it is pinned, and a cover image. Set Recent notes per
profile to 0 if you only want the account itself.
Discovery, if you do not have a list yet. Switch on Also seed profiles from the explore feed
and it takes the authors of whatever is on RedNote's public explore feed. It is off by default. One
thing to watch: if you also paste URLs, raise maxItems above the number you pasted, or the run
stops at your own list and the feed adds nothing.
📋 What data you get from each RedNote profile
| What you get | Field |
|---|---|
| The account's id, its link and its public RedNote ID | userId, url, redId |
| Nickname, bio, avatar and banner | nickname, description, avatar, bannerImage |
| Followers and following, as numbers and as RedNote printed them | followerCount, followerCountText, followerCountIsExact, followingCount, followingCountText |
| Total likes and collects, and whether any count was rounded | likesAndCollectsCount, likesAndCollectsCountText, countsAreApproximate |
| The province RedNote shows next to the account | ipLocation |
| Gender, city, profession and profile tags, where shown | gender, location, profession, tags |
| The verified badge, its kind and RedNote's reason line | isVerified, verifiedType, verifiedReason |
| Up to 30 recent notes with likes, collects, comments and a cover | recentNotes, recentNoteCount |
| Where it came from and when it was read | source, scrapedAt |
▶️ How to scrape RedNote profiles
- Open RedNote Profile Scraper and click Try for free.
- Paste your links or ids into Profile URLs or user IDs, one per line.
- Set Recent notes per profile, or
0to skip them. - Click Start.
- Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
Run it with nothing in the box and the feed switched off, and you get one labelled sample row, which is not charged.
💰 How much does it cost to scrape RedNote profiles?
$2.90 per 1,000 profiles on the Free plan. Paid plans pay a little less: $2.88 on Starter, $2.86 on Scale and $2.84 on Business. On the free plan, the $5 Apify gives you each month covers about 1,700 profiles.
One row is one profile, whether you asked for 30 recent notes on it or none. The sample row and
every diagnostic row are not charged, so a profile that does not come back produces no row to pay
for, and neither do the URLs listed on a RATE_LIMITED row.
📥 What you give it
{"profileUrls": ["https://www.xiaohongshu.com/user/profile/5b723a65c756070001d43c6c","620f2fbd000000001000e44c"],"maxNotesPerProfile": 10,"maxItems": 0}
| Field | Default | What it is |
|---|---|---|
profileUrls | box holds two example profiles | Profile links or bare 24-character user ids, one per line. One row comes back per entry. |
maxNotesPerProfile | 10 | How many recent notes to attach, 0 to 30. |
maxItems | 0 | Cap on profiles returned. 0 means one row for every URL you supply. You are charged per profile returned. |
includeExploreFeed | false | Top the list up with authors from the public explore feed. Use it when you do not already know whose profiles you want. |
xsecToken | empty | Optional. Leave it empty; runs work without it. |
proxyConfiguration | leave it alone | Optional. Only change this if you want the run to go out through your own servers. |
📤 What you get back
A real profile row from a run in September 2026, with one recent note attached.
{"ok": true,"userId": "5b723a65c756070001d43c6c","url": "https://www.xiaohongshu.com/user/profile/5b723a65c756070001d43c6c","nickname": "无糖小馒头","redId": "607277765","avatar": "https://sns-avatar-qc.xhscdn.com/avatar/1040g2jo321mc2hj8no2g...format/jpg","bannerImage": "http://sns-avatar-qc.xhscdn.com/user_banner/1040g2k031tjje5h1ne60...format/jpg","description": "十年美食无人问,一朝绑匪天下知。","followerCount": 1295,"followerCountText": "1295","followerCountIsExact": true,"followingCount": 69,"followingCountText": "69","likesAndCollectsCount": 94300,"likesAndCollectsCountText": "94.3K","countsAreApproximate": true,"ipLocation": "江苏","gender": null,"location": null,"profession": null,"isVerified": false,"verifiedType": null,"verifiedReason": null,"tags": [],"recentNoteCount": 1,"recentNotes": [{"title": "刷牙教程","type": "normal","likedCount": 8003,"collectedCount": 855,"commentCount": 285,"pinned": true,"coverImage": "https://sns-na-i2.xhscdn.com/c4d52afd-cc13-9234-6e10-6965baa3935b?imageView2..."}],"source": "xiaohongshu.com","scrapedAt": "2026-09-18T13:02:46.237Z"}
| Field | How to read it |
|---|---|
userId, redId | The id in the URL, and the RedNote ID the creator shows publicly. redId is null when the account has not set one. |
followerCount, followerCountText | The number, and the string RedNote printed. Compare them with followerCountIsExact. |
likesAndCollectsCount | RedNote's combined likes-and-collects total for the account. It is one figure on their side, not two. |
countsAreApproximate | true when any of the counts on this row came from a rounded label. |
ipLocation | The province or region RedNote displays next to the account. |
isVerified, verifiedType, verifiedReason | The badge, what kind it is, and the line RedNote prints to explain it. |
recentNotes | Up to 30 recent posts with likes, collects, comments and a cover image. Pinned posts are flagged. |
description | The bio. null when the account left RedNote's placeholder in place. |
🧾 Reading the output
Three kinds of row can land in your dataset.
| Row | How to spot it | Charged |
|---|---|---|
| A profile | ok is true and it has a userId | yes |
| The sample row | It carries _sample | no |
| A diagnostic | It carries _diagnostic and an errorCode | no |
Drop the rows that carry _sample or _diagnostic and you have your profiles.
| Code | What it means |
|---|---|
NO_RESULTS | That profile did not come back. The hint names both possibilities, because a deleted account and a page that could not be read look identical from outside. |
NOT_SERVED | This profile was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED or TOKEN_UNAVAILABLE. |
RATE_LIMITED | Too many profiles in a row came back empty, so the run stopped early. The row carries notAttemptedUrls, the list it never reached, ready to re-run. |
FEED_UNAVAILABLE | The explore feed could not be read, so no extra profiles were seeded. Your own URLs still run. |
NETWORK | RedNote was unreachable. |
TIME_LIMIT | The run got close to its time limit and stopped on its own. The profiles delivered before that are complete and charged. Give the run more time, or ask for fewer profiles, to get the rest. |
A diagnostic never fails the run, except one: when the time limit stopped the run before any profile came back, the
run ends as failed, with a TIME_LIMIT row saying so.
💡 What people use it for
- Vetting creators before a brand deal, with followers and recent engagement side by side.
- Checking whether a creator's audience is real by comparing follower count against likes on recent notes.
- Watching a set of accounts week by week and diffing the counts.
userIdis stable, so a join on it gives you a growth curve per creator. - Finding new creators in a niche through the explore feed, then reading their profiles properly.
🚧 What it does not do
- No email and no phone. RedNote does not publish contact details on a profile, so there are none to return.
- Some counts are rounded. RedNote prints
94.3Kon plenty of pages, and that is what you get.countsAreApproximatetells you when it happened. - A missing account and a page that could not be read look the same. Both produce a row explaining that it could be either. Check the profile in a browser before assuming it is gone.
- At most 30 recent notes, and no lifetime post total. RedNote does not publish the total, and the recent list is as deep as the profile page goes.
- No note permalinks in the recent list. You get the title, the numbers and a cover image, not a link to each note.
- Some fields can arrive
null. RedNote does not always serve the full profile page; when it serves the lighter one,bannerImage,verifiedReasonand the collect and comment counts insiderecentNotescome back empty. - Explore-feed seeding is a helper, not a search. It takes whoever happens to be on the feed, and the feed changes between runs.
- Rows are a snapshot. Followers move, bios change, notes get deleted.
- 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 | RedNote Scraper |
| RedNote accounts, with followers and recent notes | This one |
| 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 kind of profile row for TikTok accounts | TikTok Profile Scraper |
❓ Questions people ask
Do I need a RedNote account or a cookie?
No. Nothing to log into and nothing to paste, in the normal case.
What is the xsec_token box for?
Nothing you need. It is optional, and runs work with it left empty.
Can I search RedNote for creators by keyword?
Not here. Give it profiles you already know, or switch the explore feed on and take what it offers.
Why is followerCount exact on one row and rounded on another?
Because RedNote itself prints it that way. followerCountIsExact is the field to trust.
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-profile-scraper. Either way
the run happens on your Apify account at the same price.
Is it legal to scrape RedNote profiles?
These are public profiles. Nicknames, bios and the province shown 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 profile links and the run ID. The
errorCode and its hint on the diagnostic row usually name the problem on their own.