# Xiaohongshu (RedNote) User Profile & Notes Scraper (`zen-studio/rednote-user-profile-scraper`) Actor

Research RedNote (Xiaohongshu) creators: bios, follower counts, agency affiliations and source-reported locations when available. Collect profiles only or add posts with engagement, images and video URLs. Accepts profile links, RedNote IDs and post links. Export JSON, CSV or Excel.

- **URL**: https://apify.com/zen-studio/rednote-user-profile-scraper.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Social media, Automation, Videos
- **Features:** Limited permissions
- **Stats:** 1,289 total users, 259 monthly users, 98.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 1,000 notes

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## RedNote (Xiaohongshu / 小红书) User Profile & Notes Scraper | Creator Profiles, Agency Affiliations & Posts (2026)

<p><a href="https://console.apify.com/actors/mHKEEgoDqr6btQQer/input"><img src="https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/rednote-user-profile-scraper-hero-v2.png" alt="RedNote creators, followers, agencies and locations. Source-inspired profile artwork with illustrative creator details."></a></p>

<p><strong>From Zen Studio.</strong> Creators of <a href="https://apify.com/zen-studio/rednote-search-scraper">RedNote Search</a> and <a href="https://apify.com/zen-studio/douyin-search-scraper">Douyin Search</a>, which have ranked <strong>#1 for “rednote” and “douyin”</strong>, respectively, in Apify Store relevance results, with <strong>100,000+ combined lifetime runs</strong>.</p>

### Why choose this actor?

<ul>
<li><strong>Shortlist creators with more than a follower count.</strong> Get public bios, RedNote handles, follower and following counts, plus agency affiliations and source-reported locations when available. Find creators that fit your niche and market.</li>
<li><strong>Add the posts behind the profile.</strong> Collect captions, image and video URLs, and post-level engagement (likes, saves, comments and shares). Set a post limit for each creator, or switch off note collection for profile-only research.</li>
<li><strong>Start from a profile or a post.</strong> Paste profile links, RedNote IDs or post links. A post link resolves to its author, so you can move from an interesting post to researching the creator behind it.</li>
</ul>

<p><a href="https://console.apify.com/actors/mHKEEgoDqr6btQQer/input"><img src="https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/rednote-user-profile-scraper-cta-v1.png" width="224" height="46" alt="Research a creator →"></a></p>

### Try one creator profile

<p>Open the actor’s <a href="https://console.apify.com/actors/mHKEEgoDqr6btQQer/input">input page</a>, switch to JSON and paste this. Replace the example with your creator’s profile link, then start the run.</p>

```json
{
  "profileUrls": [
    "https://www.xiaohongshu.com/user/profile/65c381340000000011014d37"
  ],
  "includeNotes": false
}
```

<p>This trial returns the <code>profile</code> object and skips post collection, so there are no note charges. Agency affiliations and locations depend on what RedNote provides; location labels describe a broad region, not a street address.</p>
<p>To include posts, set <code>includeNotes</code> to <code>true</code> and choose <code>maxNotesPerProfile</code>. Profiles and collected notes are charged separately. Large profiles can stop before the requested count when the result-size limit is reached.</p>
<p><strong>Apify Free plan:</strong> 15 lifetime preview runs, one profile and up to 20 notes per run.</p>

### Continue your research

<table>
<tr>
<td style="padding:10px 14px;background:#FF2442;color:#1C1917;font-size:13px;font-weight:700;border-radius:4px 4px 0 0">Zen Studio · RedNote &amp; Likee</td>
</tr>
<tr>
<td style="padding:6px;border:1px solid #E7E5E4;border-top:none;border-radius:0 0 4px 4px;background:#FFF0EE">
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E7E5E4;border-radius:4px;background:#FFDED8"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-mHKEEgoDqr6btQQer-fUs5ZquIeN-xiaohongshu-search-scraper-logo-square.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/zen-studio/rednote-user-profile-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Creator Profiles</a></span><br><span style="color:#57534E;font-size:12px;white-space:nowrap">You are here</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E7E5E4;border-radius:4px;background:#FFF0EE"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-hO5NqsA6aC1bz3jra-MjB05eVFEt-xiaohongshu-search-scraper-logo-square.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/zen-studio/rednote-search-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">RedNote Search</a></span><br><span style="color:#57534E;font-size:12px;white-space:nowrap">Keyword search</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E7E5E4;border-radius:4px;background:#FFF0EE"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-KUsXYaUL4BmKEjYjf-X1HWVHrvau-xiaohongshu-search-scraper-logo-square.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/zen-studio/rednote-note-detail-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Note Detail</a></span><br><span style="color:#57534E;font-size:12px;white-space:nowrap">Details &amp; subtitles</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E7E5E4;border-radius:4px;background:#FFF0EE"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-sAWbV6wp5XO5aEapx-C7gOsPJt9Q-xiaohongshu-search-scraper-logo-square.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/zen-studio/rednote-comments-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Comments</a></span><br><span style="color:#57534E;font-size:12px;white-space:nowrap">Comments & replies</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E7E5E4;border-radius:4px;background:#FFF0EE"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-W1gPQtJKpQCTqUyiU-YNqixGFDej-likee-video-scraper-icon-v1.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/zen-studio/likee-video-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Likee Scraper</a></span><br><span style="color:#57534E;font-size:12px;white-space:nowrap">Videos and MP4 files</span></span>
</td>
</tr>
</table>

#### Copy to your AI assistant

```
zen-studio/rednote-user-profile-scraper on Apify. Pulls a Xiaohongshu (小红书) creator's public profile (nickname, bio, follower/following counts, source-reported location, verification flags and agency affiliation when available) plus optional posts (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, xhslink.com share links, RedNote IDs (小红书号), or a post link (/explore/<id>, which resolves to the post's author). Output is nested: one row per profile = {profile, notes[], _user_id, _input}. A creator with more posts than fit in one row (about 600 to 750) continues in further rows with the same _user_id and profile, in notes_part order, with notes_last_part true on the final one. Notes include an id for chaining into zen-studio/rednote-comments-scraper or zen-studio/rednote-note-detail-scraper. includeNotes=false skips post collection; maxNotesPerProfile defaults to 100. A value of 0 removes that count cap; the creator's public posts, budget and run time still limit it. 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 To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
```

### How to Scrape a Xiaohongshu User Profile

#### Basic: one creator with posts

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

#### Multiple creators, capped budget

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

#### Profile only, no posting history

```json
{
    "profileUrls": ["65c381340000000011014d37"],
    "includeNotes": false
}
```

This skips note collection and note charges, returning the profile with an empty `notes` array.

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `profileUrls` | array | *required* | One or more Xiaohongshu user references: profile URLs, bare 24-character user IDs, `xhslink.com` share links, RedNote IDs (小红书号), or post links (`/explore/<id>`, resolved to the post's author). Each profile runs independently. |
| `includeNotes` | boolean | `true` | Include creator posts. Set to `false` for profiles only, with no note charges. |
| `maxNotesPerProfile` | integer | `100` | Maximum notes per profile. `0` removes the count cap; source availability, result size, budget and run time still limit collection. |

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), copied
  from the creator's profile or from any of their posts; a post share link resolves to
  the post's author
- **RedNote ID (小红书号)**: `95690072122` or `Patellana` (the public handle shown on a creator's profile page)
- **Post link**: `https://www.xiaohongshu.com/explore/6a173b10000000000803cefa` — resolves to the post's author and scrapes their profile

A creator's **display name** (the nickname on the profile) is not accepted: several accounts can carry the same one, so it points to no single profile. Use the RedNote ID (小红书号) shown next to it.

### What Data Can You Extract from a Xiaohongshu Profile?

Every dataset row is one user: the full profile object with the collected posts nested inside. A creator with more posts than fit in one row (about 600 to 750) continues in further rows, each with the same `_user_id` and profile and the next posts in order.

**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 collected posts (below)
- `notes_part`, `notes_last_part`, `notes_split_notice`: only on a creator split across rows: which row of that creator this is (1, 2, 3...) and whether it is the last one

**Profile (`profile`):**

- 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

```json
{
  "_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

Each collected post includes its `id`. Pass it directly to the Comments or Note Detail actor; this dataset does not add a ready-made post URL.

That `id` is still all you need. Pass it straight into the **[RedNote Comments Scraper](https://apify.com/zen-studio/rednote-comments-scraper)**, which accepts bare 24-character note IDs:

```json
{ "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

#### Research a creator's posting history

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

#### Competitive benchmark across several creators

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

#### Track a single creator's latest posts on a schedule

```json
{ "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.

### Integrations and scheduling

Run the RedNote profiles scraper on a schedule in Apify Console, hourly or daily for brand and trend monitoring. Each run can call a webhook when it finishes, so n8n, Make and Zapier flows pick up new rows without polling. The Apify API and the Apify MCP server take the same input, for scripts and AI agents.

### Pricing: Pay Per Event (PPE)

**Two billable results.** Each profile you scrape is one `profile-result`; each note written to your dataset is one `profile-note-result`. Profiles and notes are billed separately.

| Result charges | What it is | Price |
|---|---|---|
| `profile-result` | One creator profile | $0.0299 flat |
| `profile-note-result` | One note in the output | from $0.00499 (rate depends on your Apify plan) |

**Profile-only mode:** turn off **Include notes** and you pay just the per-profile rate, with zero note charges, the cheapest way to harvest profiles in bulk.

Note pricing by Apify plan:

| Your Apify plan | Per 1,000 notes | Per note |
|---|---|---|
| Free / no discount | $5.99 | $0.00599 |
| Bronze | $5.49 | $0.00549 |
| Silver | $4.99 | $0.00499 |
| Gold | $4.99 | $0.00499 |

Only collected notes count toward the note charge. Collection stops at your note cap, available run budget or the result-size limit, whichever is reached first.

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

### FAQ

**What is RedNote (Xiaohongshu / Little Red Book)?**
RedNote is the international name of Xiaohongshu (小红书, literally "Little Red Book", often abbreviated XHS), China's leading lifestyle and social-commerce platform. Its creators drive beauty, fashion, food, and travel trends; this actor captures their full public profile and posting history.

**Which profile reference formats are accepted?**
Profile URLs (`xiaohongshu.com/user/profile/<id>`), bare 24-character user IDs, `xhslink.com` share links (resolved automatically), RedNote IDs (小红书号) — both numeric (e.g. `95690072122`) and alphanumeric (e.g. `Patellana`) — and post links (`xiaohongshu.com/explore/<id>`), which resolve to the post's author and scrape their profile.

A creator's display name (nickname) is not accepted, because several accounts can carry the same one. Use the RedNote ID (小红书号) shown next to it on the profile page.

**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. A share link copied from one of the creator's posts works too: it resolves to the post's author.

**Why is there no clickable link for each note?**
This output preserves each post's `id` without adding a ready-made URL. Both the Comments and Note Detail actors accept that ID directly.

**How many notes will I get?**
Up to 100 per profile by default. Set `maxNotesPerProfile` to a positive number to choose a cap, or `0` to collect every public post. Run time and your budget still apply. One dataset row holds about 600 to 750 posts, so a larger creator's posts continue in further rows with the same `_user_id`: combine them in `notes_part` order, and `notes_last_part` is true on the final row. A 1,500-post creator arrives as three rows. `profile.note_num_stat.posted` holds the creator's post count, which can include a few posts that are not public.

**Can I get just the profile without paying for notes?**
Yes. Turn off **Include notes** (`includeNotes: false`). You get the full 68-field profile with an empty notes array, billed at the per-profile rate only, with no note charges. This skips post collection and its note charges for bulk profile lookups.

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

**Do I need a Xiaohongshu account or cookies?**
No. Paste a profile URL, user ID, or share link and run; no account, cookie export, or QR login is involved.

**How do I export the data?**
The dataset downloads as JSON, CSV, Excel, XML, or HTML from the run's Storage tab, or via the Apify API. JSON preserves the nested notes array best.

**Can I find creators by keyword first?**
Yes, chain from search: run [RedNote Search Scraper](https://apify.com/zen-studio/rednote-search-scraper) on your niche keywords, take the `author.userid` from high-engagement notes, and feed those IDs into this actor for the full profile and back-catalogue.

**Is it legal to scrape Xiaohongshu profiles?**
The actor collects publicly visible profile and post data only, nothing behind a login. You are responsible for complying with Xiaohongshu's terms of service and applicable data protection law (GDPR, CCPA, PIPL); profiles are personal data, so check your legal basis before storing or republishing them.

### More Zen Studio scrapers for Chinese platforms

- [RedNote Search Scraper](https://apify.com/zen-studio/rednote-search-scraper)
- [RedNote Comments Scraper](https://apify.com/zen-studio/rednote-comments-scraper)
- [RedNote Product Search Scraper](https://apify.com/zen-studio/rednote-product-search-scraper)
- [RedNote Note Detail Scraper](https://apify.com/zen-studio/rednote-note-detail-scraper)
- [RedNote Product Reviews Scraper](https://apify.com/zen-studio/rednote-product-reviews-scraper)
- [RedNote KOL Finder (Pugongying)](https://apify.com/zen-studio/rednote-kol-finder)

Also from the same studio (name, then `account/slug` for the URL `https://apify.com/account/slug`):

- Douban Scraper (`zen-studio/douban-scraper`)
- Douban Reviews Scraper (`zen-studio/douban-reviews-scraper`)
- Douban Group Scraper (`zen-studio/douban-group-scraper`)
- Zhihu Scraper (`zen-studio/zhihu-scraper`)
- Sogou Baike Scraper (`zen-studio/sogou-baike-scraper`)
- Weibo Search Scraper (`zen-studio/weibo-search-scraper`)
- Weibo Comments Scraper (`zen-studio/weibo-comments-scraper`)
- Kwai Search Scraper (`zen-studio/kwai-search-scraper`)
- Kwai Comments Scraper (`zen-studio/kwai-comments-scraper`)
- RedNote Live Recorder (`zen-studio/rednote-live-recorder`)
- RedNote Product Detail Scraper (`zen-studio/rednote-product-detail-scraper`)
- Douyin Search Scraper (`zen-studio/douyin-search-scraper`)
- Douyin Profile Scraper (`zen-studio/douyin-profile-scraper`)
- Douyin Video Scraper (`zen-studio/douyin-video-scraper`)
- Douyin Comments Scraper (`zen-studio/douyin-comments-scraper`)
- Douyin Transcripts Scraper (`zen-studio/douyin-transcripts-scraper`)
- Douyin Creator Rankings Scraper (`zen-studio/douyin-xingtu-rankings-scraper`)
- Douyin Live Recorder (`zen-studio/douyin-live-recorder`)
- Douyin Hot Search Scraper (`zen-studio/douyin-hot-search-scraper`)
- Douyin Product Search Scraper (`zen-studio/douyin-product-search-scraper`)
- Xigua Video Search Scraper (`zen-studio/xigua-video-search-scraper`)
- Xigua Video Detail Scraper (`zen-studio/xigua-video-detail-scraper`)
- Bilibili Video Scraper (`zen-studio/bilibili-video-scraper`)
- Bilibili Danmaku Scraper (`zen-studio/bilibili-danmaku-scraper`)
- TikTok Shop Review Scraper (`zen-studio/tiktok-shop-review-scraper`)
- Naver Search Scraper (`zen-studio/naver-search-scraper`)
- Shopee Product Detail Scraper (`zen-studio/shopee-product-detail-scraper`)
- Shopee Product Reviews Scraper (`zen-studio/shopee-product-reviews-scraper`)
- Shopee Product Scraper (`zen-studio/shopee-product-scraper`)
- Shopee Live Scraper (`zen-studio/shopee-live-scraper`)
- Taobao Search Scraper (`zen-studio/taobao-search-scraper`)
- Taobao Product Detail Scraper (`zen-studio/taobao-detail-scraper`)
- Taobao Seller Products Scraper (`zen-studio/taobao-seller-products-scraper`)
- JD.com Search Scraper (`zen-studio/jd-com-search-scraper`)
- 1688 Wholesale Scraper (`zen-studio/1688-wholesale-scraper`)
- Alibaba Scraper (`zen-studio/alibaba-scraper`)
- 1688 Reviews Scraper (`zen-studio/1688-reviews-scraper`)
- Goofish (Xianyu) Search Scraper (`zen-studio/goofish-xianyu-search-scraper`)
- Goofish (Xianyu) Seller Scraper (`zen-studio/goofish-xianyu-seller-scraper`)
- Goofish (Xianyu) Item Detail Scraper (`zen-studio/goofish-xianyu-item-detail-scraper`)
- Goofish (Xianyu) Item Comments & Q\&A Scraper (`zen-studio/goofish-xianyu-item-comments-scraper`)
- Goofish (Xianyu) Reverse Image Search Scraper (`zen-studio/goofish-xianyu-visual-search-scraper`)
- Coupang Review Scraper (`zen-studio/coupang-review-scraper`)
- Coupang Search Scraper (`zen-studio/coupang-search-scraper`)
- Coupang Product Detail Scraper (`zen-studio/coupang-detail-scraper`)
- Anjuke For-Sale Listings Scraper (`zen-studio/anjuke-real-estate-scraper`)
- Anjuke New-Home Scraper (`zen-studio/anjuke-new-home-scraper`)
- Anjuke Rental Listings Scraper (`zen-studio/anjuke-rent-scraper`)
- Anjuke Listing Detail Scraper (`zen-studio/anjuke-sale-detail-scraper`)
- 58.com Real Estate Scraper (`zen-studio/58-real-estate-scraper`)
- Autohome (Che168) Used-Car Scraper (`zen-studio/che168-car-scraper`)

Full directory: [Zen Studio on Apify](https://apify.com/zen-studio)

### Support

- **Bugs**: Issues tab
- **Features**: Issues tab

### Legal Compliance

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

***

*Pull any Xiaohongshu (小红书) creator's public profile and available posts: follower counts, source-reported location, 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.*

# Actor input Schema

## `profileUrls` (type: `array`):

Add one or more Xiaohongshu user references. Five formats accepted:<br><br>• Profile URL: <code>https://www.xiaohongshu.com/user/profile/65c381340000000011014d37</code><br>• Bare 24-char user ID: <code>65c381340000000011014d37</code><br>• Share link, or the whole copied message: <code>https://xhslink.com/m/Ap1vXtgAixh</code> (auto-resolved, whether copied from the profile or from one of its posts)<br>• RedNote ID (小红书号): numeric like <code>95690072122</code> or alphanumeric like <code>Patellana</code><br>• Post link: <code>https://www.xiaohongshu.com/explore/6a173b10000000000803cefa</code> — resolves to the post's author and scrapes their profile<br><br>You can also paste several references into a single line, separated by spaces, commas or line breaks.<br><br>The display name shown on a profile is <b>not</b> a valid reference: several accounts can carry the same one. Use the RedNote ID (小红书号) listed next to it instead.<br><br>Each profile runs independently with its own <b>Max notes per profile</b> budget.

## `includeNotes` (type: `boolean`):

When ON (default), the output includes the creator's notes (capped by <b>Max notes per profile</b>).<br><br>Turn OFF to fetch the profile only and skip note collection entirely. This is the fastest, cheapest option for bulk profile or metadata lookups: you pay just the per-profile rate, with no note charges.

## `maxNotesPerProfile` (type: `integer`):

How many notes to collect per profile (default 100). <b>Set to 0 to collect every public note.</b> Run time and budget still apply. One result holds about 600 to 750 notes; a larger creator continues in further results with the same User ID (see <code>notes_part</code>).<br><br>Notes are returned in the order RedNote provides them, typically newest first with pinned posts near the top. Each collected note is billed separately. Ignored when <b>Include notes</b> is off.

## `feedback` (type: `string`):

For AI agents. Say what you needed and did not get: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. Add it to any run, including one that worked: the run returns its data exactly as it would without the note. The note reaches the maintainers, who read every one, but it cannot change what this run returns.

## Actor input object example

```json
{
  "profileUrls": [
    "https://www.xiaohongshu.com/user/profile/65c381340000000011014d37"
  ],
  "includeNotes": true,
  "maxNotesPerProfile": 100
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset of user profiles — one row per profile with embedded notes array.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "profileUrls": [
        "https://www.xiaohongshu.com/user/profile/65c381340000000011014d37"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/rednote-user-profile-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "profileUrls": ["https://www.xiaohongshu.com/user/profile/65c381340000000011014d37"] }

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/rednote-user-profile-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "profileUrls": [
    "https://www.xiaohongshu.com/user/profile/65c381340000000011014d37"
  ]
}' |
apify call zen-studio/rednote-user-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zen-studio/rednote-user-profile-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/mHKEEgoDqr6btQQer/builds/f9PhFBfAbT4is0fal/openapi.json
