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

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.

- **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
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

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

<blockquote style="border-left:4px solid #4C945E;background:#F0FDF4;padding:12px 16px">
<span style="font-size:16px;font-weight:700;color:#1C1917">68 profile fields + every note the creator posted, nothing dropped</span> <span style="font-size:15px;color:#57534E">: 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.</span>
</blockquote>

![RedNote User Profile & Notes Scraper](https://iili.io/CFfLkG4.png)

<table>
<tr>
<td colspan="5" style="padding:10px 14px;background:#4C945E;border:none;border-radius:4px 4px 0 0">
<span style="color:#FAFAF9;font-size:14px;font-weight:700;letter-spacing:0.5px">Zen Studio · Chinese-platform suite</span>
<span style="color:#E8F5E9;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;RedNote (小红书), Douyin (抖音), Xigua (西瓜视频)</span>
</td>
</tr>
<tr>
<td style="padding:10px 12px;border:1px solid #E7E5E4;background:#E8F5E9;border-right:none;border-top:none;vertical-align:top;width:20%">
<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" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/rednote-user-profile-scraper" style="color:#4C945E;text-decoration:none;font-weight:700;font-size:13px">RedNote&nbsp;User&nbsp;Profile</a></span><br>
<span style="color:#4C945E;font-size:11px;font-weight:600">&#10148; You are here</span>
</td>
<td style="padding:10px 12px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:20%">
<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" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/rednote-comments-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">RedNote&nbsp;Comments</a></span><br>
<span style="color:#78716C;font-size:11px">Nested replies, 30+ fields</span>
</td>
<td style="padding:10px 12px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:20%">
<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" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/rednote-search-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">RedNote&nbsp;Search</a></span><br>
<span style="color:#78716C;font-size:11px">500 notes / 30s, 24 fields</span>
</td>
<td style="padding:10px 12px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:20%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-3TJaaOJDU1AMiOoJM-Vu2eVr0P6N-douyin-profile-scraper-logo.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/douyin-search-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Douyin&nbsp;Search</a></span><br>
<span style="color:#78716C;font-size:11px">Keyword + filters, 60+ fields</span>
</td>
<td style="padding:10px 12px;border:1px solid #E7E5E4;border-top:none;vertical-align:top;width:20%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-dexCSKEZtKS8hg4fT-lD4weyiYga-shigua-____-scraper-logo.jpg" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/zen-studio/xigua-video-search-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Xigua&nbsp;Search</a></span><br>
<span style="color:#78716C;font-size:11px">Keyword + comments + MP4</span>
</td>
</tr>
</table>

#### 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

```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"],
    "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

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `profileUrls` | array | *required* | One or more Xiaohongshu user references: profile URLs, bare 24-character user IDs, or `xhslink.com` share links. Each profile runs independently. |
| `maxNotesPerProfile` | integer | `0` | Notes 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

```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

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](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

#### Audit a creator's full back-catalogue

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

### 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 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 |

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

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-mHKEEgoDqr6btQQer-fUs5ZquIeN-xiaohongshu-search-scraper-logo-square.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **RedNote 小红书**
  - [RedNote Search Scraper](https://apify.com/zen-studio/rednote-search-scraper)
  - [RedNote Comments Scraper](https://apify.com/zen-studio/rednote-comments-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-3TJaaOJDU1AMiOoJM-Vu2eVr0P6N-douyin-profile-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Douyin 抖音**
  - [Douyin Search Scraper](https://apify.com/zen-studio/douyin-search-scraper)
  - [Douyin Profile Scraper](https://apify.com/zen-studio/douyin-profile-scraper)
  - [Douyin Video Scraper](https://apify.com/zen-studio/douyin-video-scraper)
  - [Douyin Comments Scraper](https://apify.com/zen-studio/douyin-comments-scraper)
  - [Douyin Transcripts Scraper](https://apify.com/zen-studio/douyin-transcripts-scraper)
  - [Douyin Creator Rankings Scraper](https://apify.com/zen-studio/douyin-xingtu-rankings-scraper)
  - [Douyin Live Recorder](https://apify.com/zen-studio/douyin-live-recorder)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-dexCSKEZtKS8hg4fT-lD4weyiYga-shigua-____-scraper-logo.jpg" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Xigua 西瓜视频**
  - [Xigua Video Search Scraper](https://apify.com/zen-studio/xigua-video-search-scraper)
  - [Xigua Video Detail Scraper](https://apify.com/zen-studio/xigua-video-detail-scraper)

**🛒 E-commerce**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-PsAKYWM55HG4AHXjK-ItywU7Bp0s-taobao-search-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Taobao 淘宝**
  - [Taobao Search Scraper](https://apify.com/zen-studio/taobao-search-scraper)
  - [Taobao Product Detail Scraper](https://apify.com/zen-studio/taobao-detail-scraper)
  - [Taobao Seller Products Scraper](https://apify.com/zen-studio/taobao-seller-products-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-uZy6tbKLKnSVtT4BN-emXnT123uR-jd-com-scraper-logo-square.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **JD.com 京东**
  - [JD.com Search Scraper](https://apify.com/zen-studio/jd-com-search-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-ghXSMZcW3GxsCrkiR-5hnvsKv4Yt-1688-wholesale-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **1688 阿里巴巴**
  - [1688 Wholesale Scraper](https://apify.com/zen-studio/1688-wholesale-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-5QcLc4BHaLMBUKYs3-f3CWQ60Row-goofish-search-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Goofish 闲鱼**
  - [Goofish (Xianyu) Search Scraper](https://apify.com/zen-studio/goofish-xianyu-search-scraper)
  - [Goofish (Xianyu) Seller Scraper](https://apify.com/zen-studio/goofish-xianyu-seller-scraper)

**🏠 Real estate & autos**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-1tAzNSf8Kz0v7Q2Lr-AINJ7FsZVU-anjuke-scraper-logo.jpg" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Anjuke 安居客**
  - [Anjuke For-Sale Listings Scraper](https://apify.com/zen-studio/anjuke-real-estate-scraper)
  - [Anjuke New-Home Scraper](https://apify.com/zen-studio/anjuke-new-home-scraper)
  - [Anjuke Rental Listings Scraper](https://apify.com/zen-studio/anjuke-rent-scraper)
  - [Anjuke Listing Detail Scraper](https://apify.com/zen-studio/anjuke-sale-detail-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-32OkWqsiUywoq2ci3-7JhFlW1qg3-58__-real-estate-scraper-logo.jpg" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **58.com 58同城**
  - [58.com Real Estate Scraper](https://apify.com/zen-studio/58-real-estate-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-ytaE4YpSmjXDmibPv-L1UMPHa2bO-che168-autohome-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Autohome 汽车之家**
  - [Autohome (Che168) Used-Car Scraper](https://apify.com/zen-studio/che168-car-scraper)

### 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).

***

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

# Actor input Schema

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

Add one or more Xiaohongshu user references. Three 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: <code>https://xhslink.com/m/Ap1vXtgAixh</code> (auto-resolved)<br><br>Each profile runs independently with its own <b>Max notes per profile</b> budget.

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

How many notes to collect per profile. <b>Set to 0 to fetch every note</b> the user has posted.<br><br>Notes are returned in the order Xiaohongshu serves them (typically newest first, with pinned notes near the top). Each note counts as one billable result, so this is the lever for prolific creators with hundreds of posts.

## Actor input object example

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

# 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("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=zen-studio/rednote-user-profile-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Xiaohongshu (RedNote) User Profile & Notes Scraper",
        "description": "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.",
        "version": "0.0",
        "x-build-id": "vfxXCiCoXa8f9arQ7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/zen-studio~rednote-user-profile-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-zen-studio-rednote-user-profile-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/zen-studio~rednote-user-profile-scraper/runs": {
            "post": {
                "operationId": "runs-sync-zen-studio-rednote-user-profile-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/zen-studio~rednote-user-profile-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-zen-studio-rednote-user-profile-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "profileUrls"
                ],
                "properties": {
                    "profileUrls": {
                        "title": "👤 Profile URLs, share links, or user IDs",
                        "minItems": 1,
                        "type": "array",
                        "description": "Add one or more Xiaohongshu user references. Three 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: <code>https://xhslink.com/m/Ap1vXtgAixh</code> (auto-resolved)<br><br>Each profile runs independently with its own <b>Max notes per profile</b> budget.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxNotesPerProfile": {
                        "title": "📊 Max notes per profile",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "How many notes to collect per profile. <b>Set to 0 to fetch every note</b> the user has posted.<br><br>Notes are returned in the order Xiaohongshu serves them (typically newest first, with pinned notes near the top). Each note counts as one billable result, so this is the lever for prolific creators with hundreds of posts.",
                        "default": 0
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
