Xiaohongshu (RedNote) User Profile & Notes Scraper avatar

Xiaohongshu (RedNote) User Profile & Notes Scraper

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Xiaohongshu (RedNote) User Profile & Notes Scraper

Xiaohongshu (RedNote) User Profile & Notes Scraper

Extract any Xiaohongshu (RedNote) creator's full profile and every note they posted: nickname, bio, follower counts, IP city, verification, plus per-note likes, collects, comments, images and video URLs. Paste profile URLs or user IDs. 68 profile fields, export to JSON, CSV, or Excel.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

Zen Studio

Zen Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Share

RedNote (Xiaohongshu) User Profile & Notes Scraper | Full Profile + Every Post, 68 Fields (2026)

68 profile fields + every note the creator posted, nothing dropped : nickname, bio, follower/following counts, IP city, verification, MCN affiliation, plus per-note likes, collects, comments, shares, image galleries, and video stream URLs for any Xiaohongshu (小红书) user.

RedNote User Profile & Notes Scraper

Zen Studio · Chinese-platform suite   •  RedNote (小红书), Douyin (抖音), Xigua (西瓜视频)
 RedNote User Profile
➤ You are here
 RedNote Comments
Nested replies, 30+ fields
 RedNote Search
500 notes / 30s, 24 fields
 Douyin Search
Keyword + filters, 60+ fields
 Xigua Search
Keyword + comments + MP4

Copy to your AI assistant

zen-studio/rednote-user-profile-scraper on Apify. Pulls a Xiaohongshu (小红书) creator's full profile (68 fields: nickname, bio, follower/following counts, IP city, verification, MCN tag) plus every note they've posted (likes, collects, comments, shares, image galleries, video URLs, pinned flag, post time). Call ApifyClient("TOKEN").actor("zen-studio/rednote-user-profile-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. profileUrls accepts profile URLs, bare 24-char hex user IDs, or xhslink.com share links. Output is nested: one row per profile = {profile, notes[], _user_id, _input}. There is no per-note clickable URL (Xiaohongshu only attaches the xsec_token a public URL needs to search and share links, never to a profile's post history), so chain a note's id straight into zen-studio/rednote-comments-scraper for its comments. Full spec: GET https://api.apify.com/v2/acts/zen-studio~rednote-user-profile-scraper/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Token: https://console.apify.com/account/integrations

Key Features

  • 68 profile fields: nickname, red_id handle, bio, gender, IP city, follower/following counts, total likes & collects, posted-note count, official verification, MCN affiliation tag, avatar URLs (small + large), and the full share link
  • Every note the creator posted: paginated automatically until the archive is exhausted; full per-note pass-through (likes, collects, comments, shares, image gallery, video stream URLs, pinned flag, post time)
  • Nested output: one clean row per profile: { profile, notes[], _user_id, _input }. The notes array carries the whole posting history inline
  • Three input formats: profile URL, bare 24-character user ID, or an xhslink.com share link (resolved automatically)
  • No headless browser, no login: paste a profile reference, hit Start
  • Budget control: cap with maxNotesPerProfile; each note counts as one billable result, the profile fetch is free
  • Free tier: 10 lifetime runs, ~20 notes from the first profile, no credit card

How to Scrape a Xiaohongshu User Profile

Basic: one creator, full archive

{
"profileUrls": ["https://www.xiaohongshu.com/user/profile/65c381340000000011014d37"]
}

Multiple creators, capped budget

{
"profileUrls": [
"https://www.xiaohongshu.com/user/profile/65c381340000000011014d37",
"6539e3ce000000000d006d07"
],
"maxNotesPerProfile": 50
}

Profile only, no posting history

{
"profileUrls": ["65c381340000000011014d37"],
"maxNotesPerProfile": 1
}

(A profile with the per-note budget set to 1 still returns the entire 68-field profile object; only the notes array is trimmed.)

Input Parameters

ParameterTypeDefaultDescription
profileUrlsarrayrequiredOne or more Xiaohongshu user references: profile URLs, bare 24-character user IDs, or xhslink.com share links. Each profile runs independently.
maxNotesPerProfileinteger0Notes to collect per profile. 0 = every note the creator has posted.

Accepted reference formats:

  • Profile URL: https://www.xiaohongshu.com/user/profile/65c381340000000011014d37
  • Bare user ID: 65c381340000000011014d37 (24 hex characters)
  • Share link: https://xhslink.com/m/Ap1vXtgAixh (resolved automatically)

What Data Can You Extract from a Xiaohongshu Profile?

Every dataset row is one user: the full profile object with the complete posting history nested inside.

Top-level row:

  • _user_id: the resolved 24-character user ID
  • _input: the exact reference you supplied (URL or ID)
  • profile: the full profile object (below)
  • notes: array of every note the creator posted (below)

Profile (profile, 68 fields):

  • Identity: userid, red_id (public handle), nickname, desc (bio), gender, images / imageb (avatar URLs), share_link
  • Audience & activity: fans (followers), follows (following), liked, collected, ndiscovery, note_num_stat (posted / liked / collected), interactions (Following / Followers / Likes & Collects)
  • Location: ip_location (province or city), location
  • Verification & brand: red_official_verified, red_official_verify_type, user_role_type, tags (MCN affiliation), user_brand, red_club_info, buyer_info
  • Layout & relationship state: tab_visible, tab_public, banner_info, level, fstatus, blocked, blocking, plus the remaining structured fields, all passed through untouched

Each note (notes[]):

  • IDs & type: id, type (video / normal), cursor
  • Text: title, display_title, desc (with hashtags inline)
  • Timing: create_time (Unix), time_desc (e.g. 04-27), last_update_time
  • Engagement: likes, collected_count, comments_count, share_count, nice_count, view_count
  • Media: images_list (gallery with per-image URL + dimensions), video_info_v2 (stream metadata), has_music
  • Flags & commerce: sticky (pinned), is_goods_note, price, recommend
  • Context: ip_location (when present), ats (@-mentions), advanced_widgets_groups, widgets_context, user (compact author block), infavs, inlikes, niced

Output Example

{
"_user_id": "65c381340000000011014d37",
"_input": "https://www.xiaohongshu.com/user/profile/65c381340000000011014d37",
"profile": {
"userid": "65c381340000000011014d37",
"nickname": "甜妈湘味",
"red_id": "3707091934",
"desc": "单亲妈妈每天给女儿做各种好吃的美食\n合作:xt5201314hjle",
"gender": 2,
"ip_location": "Hunan",
"images": "https://sns-avatar-qc.xhscdn.com/avatar/1040g2jo31qn95nbjgm005pe3g4q4aj9nhequmq8?imageView2/2/w/360/format/webp",
"imageb": "https://sns-avatar-qc.xhscdn.com/avatar/1040g2jo31qn95nbjgm005pe3g4q4aj9nhequmq8?imageView2/2/w/540/format/webp",
"fans": 99785,
"follows": 7,
"liked": 113715,
"collected": 104612,
"ndiscovery": 97,
"note_num_stat": { "posted": 97, "liked": 113715, "collected": 104612 },
"interactions": [
{ "type": "follows", "name": "Following", "count": 7 },
{ "type": "fans", "name": "Followers", "count": 99785 },
{ "type": "interaction", "name": "Likes & Collects", "count": 218327 }
],
"tags": [
{ "tag_type": "mcn", "name": "大禹", "icon": "https://picasso-static.xiaohongshu.com/fe-platform/..." }
],
"red_official_verified": false,
"red_official_verify_type": 0,
"user_role_type": 6,
"fstatus": "none",
"share_link": "https://www.xiaohongshu.com/user/profile/65c381340000000011014d37?xsec_token=...",
"user_brand": { "...": "..." },
"user_desc_info": { "...": "..." },
"tab_visible": { "...": "..." }
// ... 40+ more profile fields (banner_info, level, red_club_info, buyer_info, hula_tabs, ...)
},
"notes": [
{
"id": "69ef1af9000000003502dec1",
"type": "video",
"title": "",
"display_title": "在家过生日热热闹闹的才开心#家庭版家常菜 #亲子温馨时刻 #平凡生活小幸福",
"desc": "在家过生日热热闹闹的才开心#家庭版家常菜[话题]# #亲子温馨时刻[话题]# #平凡生活小幸福[话题]#",
"create_time": 1777277689,
"time_desc": "04-27",
"last_update_time": 0,
"likes": 3421,
"collected_count": 2118,
"comments_count": 205,
"share_count": 256,
"nice_count": 12,
"view_count": 0,
"sticky": false,
"is_goods_note": false,
"price": 0,
"has_music": false,
"images_list": [
{ "url": "https://sns-i8.rednotecdn.com/1040g2sg31vf63hqt1m7g5pe3g4q4aj9noh1movo?imageView2/2/w/576/format/webp", "width": 1080, "height": 1440 }
],
"video_info_v2": { "media": { "...": "..." }, "image": { "...": "..." }, "consumer": { "...": "..." } },
"ats": [],
"recommend": { "...": "..." },
"advanced_widgets_groups": { "...": "..." },
"widgets_context": "{\"video\":true,\"author_name\":\"甜妈湘味\",\"video_duration\":171}",
"infavs": false,
"inlikes": false,
"niced": false,
"cursor": "69ef1af9000000003502dec1",
"user": { "userid": "65c381340000000011014d37", "nickname": "甜妈湘味", "followed": false }
}
// ... 96 more notes
]
}

Chaining Into the Comments Scraper

This actor returns each note's id, but not a clickable note URL. Xiaohongshu only ever mints the per-note access token (xsec_token) needed for a public URL inside search results, share links, or a live web session, and a user's posting history does not carry one, so there is nothing reliable to build a link from.

That id is still all you need. Pass it straight into the RedNote Comments Scraper, which accepts bare 24-character note IDs:

{ "noteUrls": ["69ef1af9000000003502dec1"] }

A typical pipeline: scrape a creator's profile here → take the id of their top-engagement notes → fetch the full comment threads with the Comments Scraper.

Advanced Usage

Audit a creator's full back-catalogue

{ "profileUrls": ["65c381340000000011014d37"], "maxNotesPerProfile": 0 }

Competitive benchmark across several creators

{
"profileUrls": [
"65c381340000000011014d37",
"6539e3ce000000000d006d07",
"https://www.xiaohongshu.com/user/profile/5ff0e6f4000000000100b3a2"
],
"maxNotesPerProfile": 30
}

Track a single creator's latest posts on a schedule

{ "profileUrls": ["65c381340000000011014d37"], "maxNotesPerProfile": 20 }

Notes come back in the order Xiaohongshu serves them (newest first, pinned posts near the top), so a small maxNotesPerProfile keeps you on the most recent activity.

Pricing: Pay Per Event (PPE)

From $4.99 per 1,000 notes, depending on your Apify plan. Each note written to your dataset counts as one billable result. The profile object itself is free, and you are never charged for empty profiles, retries, or pagination overhead.

Your Apify planPer 1,000 notesPer note
Free / no discount$5.99$0.00599
Bronze$5.49$0.00549
Silver$4.99$0.00499
Gold$4.99$0.00499

You only ever pay for notes that land in your dataset. Budget is enforced per page, so a maxNotesPerProfile cap is never overshot by more than one page.

Free tier: 10 lifetime runs, ~20 notes from the first profile, no credit card.

FAQ

Which profile reference formats are accepted? Profile URLs (xiaohongshu.com/user/profile/<id>), bare 24-character user IDs, and xhslink.com share links. Share links are resolved automatically.

Where do I find a user's profile URL? Open the creator's page in the Xiaohongshu app or web, tap Share, and copy the link. Both the long profile URL and the short xhslink.com share link work.

Why is there no clickable link for each note? A public note URL needs a per-note access token (xsec_token) that Xiaohongshu only attaches to search results and share links, never to a user's posting history. The note id is always returned and is everything you need to chain into the Comments Scraper.

How many notes will I get? Every note the creator has posted, unless you cap it with maxNotesPerProfile. Prolific creators can have several hundred posts.

Can I get just the profile without paying for notes? Set maxNotesPerProfile to 1. You still receive the full 68-field profile object; only the notes array is trimmed. (There is no zero-note mode, but a single note is the minimum billable footprint.)

What's IP location? Xiaohongshu attaches a coarse geographic label (province or city, e.g. Hunan, Shanghai) to the profile, and to individual notes when available.

Are avatars and note images included? Yes. profile.images / profile.imageb are direct CDN URLs to the avatar, and each note's images_list carries the full gallery with per-image URLs and dimensions.

Do video notes include the video? Each video note carries video_info_v2 with stream metadata. The cover image is in images_list.

What happens if one profile in a batch fails? The run continues with the rest. Whatever was collected for the failing profile (the profile object and any notes gathered before the failure) is still saved.

How fresh is the data? Live from Xiaohongshu at run time, no cache.

More Zen Studio scrapers for Chinese platforms

🎬 Short-video & social

🛒 E-commerce

🏠 Real estate & autos

Support

  • Bugs: Issues tab
  • Features: Issues tab

Extracts publicly available data. Users must comply with Xiaohongshu's terms and data protection regulations (GDPR, CCPA).


Pull any Xiaohongshu (小红书) creator's full 68-field profile and every note they have posted: follower counts, IP city, verification, bio, plus per-note likes, collects, comments, image galleries, and video URLs. One nested row per profile, ready to chain into the RedNote Comments Scraper.