RedNote (Xiaohongshu) User Profile Scraper avatar

RedNote (Xiaohongshu) User Profile Scraper

Pricing

from $2.90 / 1,000 profile returneds

Go to Apify Store
RedNote (Xiaohongshu) User Profile Scraper

RedNote (Xiaohongshu) User Profile Scraper

Scrape RedNote (Xiaohongshu) user profiles. Each row has the nickname, RedNote ID, follower and following counts. Also likes, collects and the verified badge. You get the province the account posts from, plus up to 30 recent notes. No login. $2.90 per 1,000.

Pricing

from $2.90 / 1,000 profile returneds

Rating

5.0

(1)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

13

Total users

6

Monthly active users

3 days ago

Last modified

Share

RedNote Profile Scraper: Xiaohongshu profiles, followers and recent notes

Paste RedNote profile links or bare user ids and get one row per account: 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, with 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, flat on every plan

👤 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. If your links still carry the ?xsec_token= they were shared with, leave it on: it 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 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.
xsecTokenemptyLeave it empty. Only fill it in if a run reports TOKEN_UNAVAILABLE, and then one value covers the whole run.
proxyConfigurationleave it aloneOptional. Only change this if you want the run to go out through your own servers.

Run it with nothing in the box and the feed switched off, and you get one labelled sample row.

📤 What you get back

A real profile row from a recent run, 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"
}
FieldWhat it is
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 it
A profileok is true and it has a userId
The sample rowIt carries _sample
A diagnosticIt carries _diagnostic and an errorCode

Diagnostic rows and the sample row are never charged.

CodeWhat it means
NO_RESULTS, BLOCKEDRedNote did not return that profile. The hint names both possibilities, because a deleted account and a refused page look identical from outside.
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.
TOKEN_UNAVAILABLEThe run could not get a working token by itself. Open xiaohongshu.com, click any creator, and paste the xsec_token from the address bar into xsec_token.
FEED_UNAVAILABLEThe explore feed would not answer, so no extra profiles were seeded. Your own URLs still run.
NETWORKRedNote was unreachable.

▶️ How to run it

  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.

💰 How much does it cost?

$2.90 per 1,000 profiles. Flat on every Apify plan, no volume tiers.

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 RedNote will not serve produces no row to pay for, and neither do the URLs listed on a RATE_LIMITED row.

💡 What people use it for

  • Vetting creators before an outreach campaign, 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.
  • Building a shortlist by province, using ipLocation.
  • Watching a set of accounts week by week and diffing the counts.
  • 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 refused page 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.

🧭 Which Chinese platform scraper do you need?

If you wantUse
RedNote accounts, followers and recent notesThis one
Individual RedNote notes and their engagementRedNote Scraper
What is trending on Douyin right nowDouyin Hot Search Scraper
Videos, creators and stats on BilibiliBilibili 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 then? A fallback. The run gets its own token, and only if that fails does it ask you for one. One token covers every profile in the run and stays good for at least an hour.

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 run it on a schedule? Yes. userId is stable, so a weekly run plus a join on that field gives you a growth curve per creator.

Is scraping RedNote profiles legal? These are public profiles. Apify's write-up on scraping and the law 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.