RedNote (Xiaohongshu) User Profile Scraper avatar

RedNote (Xiaohongshu) User Profile Scraper

Pricing

from $2.84 / 1,000 profiles

Go to Apify Store
RedNote (Xiaohongshu) User Profile Scraper

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

Dami's Studio

Maintained by Community

Actor 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.

InputProfile URLs or 24-character user ids
OutputOne row per profile: nickname, RedNote ID, bio, followers, following, likes and collects, verified badge, province, up to 30 recent notes
Ceiling1,000 profiles per run, 30 notes on each
Account neededNone, 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 getField
The account's id, its link and its public RedNote IDuserId, url, redId
Nickname, bio, avatar and bannernickname, description, avatar, bannerImage
Followers and following, as numbers and as RedNote printed themfollowerCount, followerCountText, followerCountIsExact, followingCount, followingCountText
Total likes and collects, and whether any count was roundedlikesAndCollectsCount, likesAndCollectsCountText, countsAreApproximate
The province RedNote shows next to the accountipLocation
Gender, city, profession and profile tags, where showngender, location, profession, tags
The verified badge, its kind and RedNote's reason lineisVerified, verifiedType, verifiedReason
Up to 30 recent notes with likes, collects, comments and a coverrecentNotes, recentNoteCount
Where it came from and when it was readsource, scrapedAt

▶️ How to scrape RedNote profiles

  1. Open RedNote Profile Scraper and click Try for free.
  2. Paste your links or ids into Profile URLs or user IDs, one per line.
  3. Set Recent notes per profile, or 0 to skip them.
  4. Click Start.
  5. 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
}
FieldDefaultWhat it is
profileUrlsbox holds two example profilesProfile links or bare 24-character user ids, one per line. One row comes back per entry.
maxNotesPerProfile10How many recent notes to attach, 0 to 30.
maxItems0Cap on profiles returned. 0 means one row for every URL you supply. You are charged per profile returned.
includeExploreFeedfalseTop the list up with authors from the public explore feed. Use it when you do not already know whose profiles you want.
xsecTokenemptyOptional. Leave it empty; runs work without it.
proxyConfigurationleave it aloneOptional. 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"
}
FieldHow to read it
userId, redIdThe id in the URL, and the RedNote ID the creator shows publicly. redId is null when the account has not set one.
followerCount, followerCountTextThe number, and the string RedNote printed. Compare them with followerCountIsExact.
likesAndCollectsCountRedNote's combined likes-and-collects total for the account. It is one figure on their side, not two.
countsAreApproximatetrue when any of the counts on this row came from a rounded label.
ipLocationThe province or region RedNote displays next to the account.
isVerified, verifiedType, verifiedReasonThe badge, what kind it is, and the line RedNote prints to explain it.
recentNotesUp to 30 recent posts with likes, collects, comments and a cover image. Pinned posts are flagged.
descriptionThe bio. null when the account left RedNote's placeholder in place.

🧾 Reading the output

Three kinds of row can land in your dataset.

RowHow to spot itCharged
A profileok is true and it has a userIdyes
The sample rowIt carries _sampleno
A diagnosticIt carries _diagnostic and an errorCodeno

Drop the rows that carry _sample or _diagnostic and you have your profiles.

CodeWhat it means
NO_RESULTSThat 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_SERVEDThis profile was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED or TOKEN_UNAVAILABLE.
RATE_LIMITEDToo 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_UNAVAILABLEThe explore feed could not be read, so no extra profiles were seeded. Your own URLs still run.
NETWORKRedNote was unreachable.
TIME_LIMITThe 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. userId is 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.3K on plenty of pages, and that is what you get. countsAreApproximate tells 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, verifiedReason and the collect and comment counts inside recentNotes come 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 wantUse
Individual RedNote notes and their engagementRedNote Scraper
RedNote accounts, with followers and recent notesThis one
What China is searching and posting about on Douyin right nowDouyin Hot Search Scraper
Bilibili videos, leaderboards, uploaders and commentsBilibili Scraper
The same kind of profile row for TikTok accountsTikTok Profile Scraper

❓ Questions people ask

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.

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.