RedNote (Xiaohongshu) Profile Scraper
RedNote (Xiaohongshu) profile scraper API. Nickname, RedNote ID, follower counts, likes and collects, verification, IP location, gender and recent notes.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
profileUrls,maxNotesPerProfile,maxItems(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export 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 for | When | Price |
|---|---|---|
| Profile returned | Charged once per genuine profile row. Sample rows, diagnostics, blocked pages and empty runs are never charged. | $0.0029 |
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.003 |
Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. 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
| Field | What it does | Type |
|---|---|---|
profileUrls | The 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 |
maxNotesPerProfile | How 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 |
maxItems | Cap on profiles returned. Leave at 0 to return one row for every profile URL you supply. You are charged per profile actually returned. | integer |
includeExploreFeed | Optional 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 |
xsecToken | Leave 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:
nicknameredIdfollowerCountfollowerCountTextfollowerCountIsExactfollowingCountlikesAndCollectsCountisVerifiedverifiedReasonipLocationgenderlocationprofessiondescriptionrecentNoteCountuserIdurlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
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
Scrape Douyin trending topics: rank, hot value, views, video count, badge and cover image from the hot and society boards. No login.
Facebook Comments Scraper
Scrape comments from any public Facebook post or reel: author, text, date, likes, replies. No login or cookies.
Facebook Groups Scraper
Scrape public Facebook group posts without logging in: author, text, time, permalink, media and engagement counts.
Facebook Posts Scraper
Scrape posts from any public Facebook Page: text, time, permalink, media, reactions, comments and shares. No login, no cookies. $0.60 per 1,000 posts.
Facebook Reels Scraper
Scrape public Facebook Page Reels - up to 200 per Page: views, reactions, comments, shares, captions, hashtags, duration, MP4 and thumbnail links. No login.
Instagram Post Scraper
Scrape Instagram posts and reels by link or shortcode for $0.18 per 1,000, flat at every volume.
Where this tool sits
- Categories
- Social Media Scrapers Chinese Social & Trends
- Platforms
- RedNote (Xiaohongshu)
RedNote (Xiaohongshu) User Profile Scraper / API
Give it RedNote profile links or user IDs. Get back the profile: nickname, RedNote ID, avatar, banner, bio, follower count, following count, likes + collects, verification badge, IP location, gender, city, profession, and the user's recent notes with likes, collects and comments on each.
No login. No cookies to paste. No browser — this is a plain HTTP scraper, which is why it is cheap.
$2.90 per 1,000 profiles ($0.0029 each), plus $0.003 each time a run starts — the lowest per-profile price of any RedNote / Xiaohongshu Actor on the Apify Store with an active user base. Resolved against the live Store on 10 August 2026, comparing every rival at its own cheapest volume tier: the next cheapest is actorzlab/rednote-scraper (18 monthly users) at $3.00 per 1,000, the dedicated zen-studio/rednote-user-profile-scraper (111 monthly users) is $4.99 per 1,000 and $5.99 on the free plan, and the two highest-priced, sian.agency/xiaohongshu-rednote-scraper (327 monthly users) and zhorex/rednote-xiaohongshu-scraper (198 monthly users), are $37.50 and $40.00 per 1,000. You are charged per profile actually returned — blocked pages, missing users and empty runs cost nothing.
What you get per profile
Real values from a real row (5b723a65c756070001d43c6c, scraped 2026-08-10):
| Field | Value |
|---|---|
userId | 5b723a65c756070001d43c6c |
url | the profile URL that was fetched |
nickname | 无糖小馒头 |
redId | 607277765 — the "小红书号" people search each other by |
avatar | https://sns-avatar-qc.xhscdn.com/avatar/1040g2jo321mc2hj8no2g4adsdrt6af3c9k9v6p8?… |
bannerImage | the profile header image |
description | 十年美食无人问,一朝绑匪天下知。 |
followerCount | 1306 |
followerCountText | 1306 — the exact string the page showed |
followerCountIsExact | true |
followingCount | 67 |
likesAndCollectsCount | 93700 |
likesAndCollectsCountText | 93.7K |
countsAreApproximate | true — set when either count above was abbreviated |
ipLocation | 浙江 |
gender | male / female / null |
location | 浙江杭州 — the city chip on the profile, when set |
profession | FoodBlogger — the profession chip, when set |
isVerified / verifiedType / verifiedReason | true / 2 / 电视台 |
tags | ["25岁", "浙江杭州", "FoodBlogger"] |
recentNoteCount / recentNotes | [{ title, type, likedCount, collectedCount, commentCount, pinned, coverImage }, …] |
source, scrapedAt | provenance |
Field coverage — measured, not guessed
220 profiles pulled from RedNote's live explore feed on 2026-08-10, one run, nothing excluded:
| Field | Filled |
|---|---|
nickname, redId, avatar, bannerImage | 100% |
followerCount, followerCountText, likesAndCollectsCount | 100% |
recentNotes (6.9 notes per profile on average) | 100% |
followingCount | 97.7% |
description | 90.0% |
ipLocation | 81.4% |
gender | 74.1% |
tags | 70.9% |
location | 47.3% |
profession | 40.0% |
verifiedReason | 6.4% |
isVerified = true | 5.9% |
Inside recentNotes: type, collectedCount, commentCount and coverImage on 100%, likedCount on 96.5%, title on 98.4%.
The fields below 100% are blank because the creator left them blank — most people have no profession chip and only 5% of accounts are verified. Nothing here is null because the scraper failed to read it.
Follower counts: exact for most accounts
RedNote gives the exact number up to about 10,000 followers and abbreviates above it. Across those 220 profiles, 52.7% came back exact (5911, 1306, 83) and the rest abbreviated to one decimal (194.8K, 15.9K). Both readings are returned:
followerCount— a number, so you can sort and filter.followerCountText— the original string.followerCountIsExact—truewhen the string was a plain integer.
countsAreApproximate is true whenever the follower or likes figure was abbreviated. 194.8K becomes 194800, which is within 0.05% of the truth — not a bucket floor.
Input
{
"profileUrls": [
"https://www.xiaohongshu.com/user/profile/5b723a65c756070001d43c6c",
"620f2fbd000000001000e44c"
],
"maxNotesPerProfile": 10
}
Bare 24-character user IDs work as well as full URLs. maxItems is a cap, not a target: leave it at 0 and you get one row per URL you supplied.
includeExploreFeed is an optional extra that tops the list up with authors from RedNote's public explore feed, so you can try the Actor without hunting for links first. It is off by default.
Throughput
Two runs on the Apify platform, 2026-08-10: 220 of 220 profiles in 47 seconds, and 240 of 240 in 72 seconds, at 8 concurrent requests. About 47 KB of traffic per profile.
The Actor opens each profile through RedNote's mobile page. That page needs an xsec_token, which the Actor mints for itself from the public explore feed at the start of every run — one request, and the token then opens every profile in the queue. You never have to supply one.
The one thing that can go wrong is that mint. RedNote meters its server-rendered pages per exit address, and on a busy day it answers with an empty client-render shell instead. The Actor walks several exit pools looking for one that answers. If none does, you get a single uncharged TOKEN_UNAVAILABLE row and the run stops immediately rather than burning your compute — re-run a few minutes later, or paste a token from your own browser into the xsecToken input. A token stays valid for at least an hour and works for every profile.
Limits, stated plainly
No note permalinks. The profile page identifies each recent note by a 32-character hash, not by the 24-character note ID that /explore/<id> accepts. There is no way to turn one into the other, so the Actor returns each note's title, type, likes, collects, comments and cover image, and does not emit a url it knows would 404. If you need note bodies, use the companion RedNote Scraper, which reads note pages directly.
There is no lifetime note total. The profile shows following, followers and likes+collects. It does not show "posted N notes", so the Actor does not invent one. recentNoteCount is how many recent notes are in that row, not the user's career total.
The explore feed is a bonus, not a feature. It yields about thirty authors per page and is refused more often than a profile page. When it is on and RedNote refuses it, you get one uncharged FEED_UNAVAILABLE row and the run carries on with the URLs you supplied.
A user ID that does not exist looks identical to a refusal. RedNote serves the same login shell for both, so the diagnostic row mentions both possibilities. Check the ID before assuming you were rate-limited.
Bios are as written. RedNote's own "还没有简介" placeholder ("no bio yet") is site text, not user text, so it comes back as null.
No email or phone. RedNote does not publish either on a profile, so neither is in the output.
Billing
$2.90 per 1,000 profiles, plus $0.003 when the run starts. One charge per profile row actually returned. Blocked pages, missing users, TOKEN_UNAVAILABLE and empty runs produce _diagnostic rows that cost nothing. An empty input returns one labelled _sample row so you can see the shape, also free.
A 100-profile run costs $0.293. A 1,000-profile run costs $2.903. Flat rate — no volume tiers, no plan gates, so those are the numbers on the free plan and on Diamond alike.
FAQ
Do I need a RedNote account or cookies? No. Everything here is the public, signed-out profile page.
Is RedNote the same thing as Xiaohongshu? Yes. 小红书 / Xiaohongshu is the Chinese name; RedNote is what most English speakers call it.
How do I find a user ID? Open any RedNote post, click the author, and copy the URL. The 24-character hex string after /user/profile/ is the ID. Paste either the whole URL or just that string.
Do I get exact follower counts? For most accounts, yes — RedNote publishes the exact number up to roughly 10,000 followers. Above that it abbreviates to one decimal place (194.8K). followerCountIsExact tells you which you got; it was true on 52.1% of a 240-profile sample.
Can I get a user's full note history? No. You get up to 30 recent notes from the first page of the profile, with their engagement counts but without permalinks.
What is the xsecToken input for? Nothing, normally — leave it empty and the Actor mints its own. It exists only so you can unblock a run that reported TOKEN_UNAVAILABLE, by pasting the xsec_token out of your browser's address bar.
What happens if a profile is deleted or the ID is wrong? You get an uncharged diagnostic row with an errorCode and a hint. You are not billed for it.
Can it run on a schedule? Yes, like any Actor.
How does the price compare? $2.90 per 1,000 profiles — the lowest per-profile price of any RedNote / Xiaohongshu Actor on the Store with an active user base. Every rival was compared at its own cheapest volume tier, not its headline rate: actorzlab/rednote-scraper is $3.00 per 1,000, the dedicated zen-studio/rednote-user-profile-scraper is $4.99 (and $5.99 on the free plan), socialdatax/socialdatax-xhs-data-api and habit.zhou/xiaohongshu-pro-scraper are $4.99 and $5.00, and the two at the top of the market are $37.50 and $40.00. Prices checked 2026-08-10.