Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
RedNote (Xiaohongshu) Profile Scraper icon

RedNote (Xiaohongshu) Profile Scraper

Scrape RedNote (Xiaohongshu) profiles: nickname, RedNote ID, followers, likes, verified badge, IP location and recent notes. $2.90 per 1,000.

5 from 1 review on Apify 291 runs on Apify $0.0029 per profile ($2.9 / 1,000)
Run this in the cloudRun on Apify →

Social Media Scrapers

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust profileUrls, maxNotesPerProfile, maxItems (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.0029 per profile = $2.9 per 1,000

You are charged forWhenPrice
Profile returnedCharged once per genuine profile row. Sample rows, diagnostics, blocked pages and empty runs are never charged.$0.0029

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-10, and they are what you are actually charged.

Inputs

FieldWhat it doesType
profileUrlsThe main input. RedNote profile links (https://www.xiaohongshu.com/user/profile/...) or bare 24-character user IDs. One row is returned per URL. If your links still carry the ?xsec_token=... they came with, keep it - it saves the Actor a request.array
maxNotesPerProfileHow many of the profile's recent notes to include (0-30). Each note carries its title, type, likes, collects, comments and cover image. Set 0 to skip them.integer
maxItemsCap on profiles returned. Leave at 0 to return one row for every profile URL you supply. You are charged per profile actually returned.integer
includeExploreFeedOptional discovery helper: top up the list with the authors of posts on RedNote's public explore feed. Off by default. A refused feed costs nothing and does not stop the run.boolean
xsecTokenLeave empty. The Actor mints its own token from RedNote's public explore feed on every run. If a run ever reports TOKEN_UNAVAILABLE, open xiaohongshu.com in a browser, click any creator, and paste the xsec_token from the address bar here - one token works for every profile and stays valid for at least an hour.string

What you get

A structured dataset — each result includes fields like:

nicknameredIdfollowerCountfollowerCountTextfollowerCountIsExactfollowingCountlikesAndCollectsCountisVerifiedverifiedReasonipLocationgenderlocationprofessiondescriptionrecentNoteCountuserIdurl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

1 ready-to-run use cases

RedNote (Xiaohongshu) Creator Stats and Notes

Get RedNote creator follower counts, likes and recent notes from profile URLs. Xiaohongshu profile scraper, no login.

Related tools in Social Media Scrapers

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Douyin Hot Search Scraper iconSocial Media Scrapers

Douyin Hot Search Scraper

Get Douyin trending topics: rank, hot value, views, video count, badge and cover image. Hot, entertainment and society boards. No login. $0.40/1,000.

1 use cases

Facebook Comments Scraper iconSocial Media Scrapers

Facebook Comments Scraper

Scrape comments from any public Facebook post or reel: author, text, date, likes and replies. No login needed from you. $0.25 per 1,000 comments.

1 use cases

Facebook Groups Scraper iconSocial Media Scrapers

Facebook Groups Scraper

Scrape public Facebook group posts: author, text, time, permalink, photos, videos and engagement counts. No login needed. $0.70 per 1,000 posts.

Ready to run — no setup

Facebook Reels Scraper iconSocial Media Scrapers

Facebook Reels Scraper

Scrape public Facebook Page Reels: views, reactions, comments, shares, captions, hashtags, duration and MP4 links. No login needed. $0.35/1k.

1 use cases

Instagram Post Scraper iconSocial Media Scrapers

Instagram Post Scraper

Scrape Instagram posts and reels by link or shortcode. Rows carry caption, likes, comments, publish time, carousel media, hashtags. No login. $0.18 per 1,000.

1 use cases

Instagram Profile Scraper iconSocial Media Scrapers

Instagram Profile Scraper

Scrape Instagram profiles from handles or URLs. Get the bio, exact follower and post counts, verified flag, category and bio links. $0.70 per 1,000.

1 use cases

See all Social Media Scrapers →

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.