# Xiaohongshu KOL Scraper - 蒲公英 Creator Rates & Audience (`vulnv/xiaohongshu-kol-scraper`) Actor

Find Xiaohongshu (小红书 / RedNote) creators on the 蒲公英 marketplace: KOL search with follower, price, category and audience filters, lookalike creators, quoted note prices, 30-day performance reports, fan portraits and note read counts. Export to JSON/CSV/Excel.

- **URL**: https://apify.com/vulnv/xiaohongshu-kol-scraper.md
- **Developed by:** [VulnV](https://apify.com/vulnv) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 creators

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Xiaohongshu KOL Scraper - 蒲公英 Creator Rates & Audience

**Find and vet Xiaohongshu (小红书 / RedNote) creators for brand campaigns, and export their quoted rates, audience portraits and performance to JSON, CSV or Excel.** This Actor reads Xiaohongshu's official creator marketplace, 蒲公英 (Pugongying): search KOLs by keyword or by filters (followers, quoted price, category, location, audience age and gender), find lookalikes of a creator you already like, and pull any listed creator's quoted note prices, 30-day data summary, note performance report, fan portrait and note read counts.

No 蒲公英 brand account, login, cookies, proxies or China IP to configure. Just pick an operation, add your input and press **Start**.

> **Unofficial notice:** This is an independent tool and is **not** affiliated with, endorsed by, or connected to Xiaohongshu, 小红书, RedNote, 蒲公英 (Pugongying) or Xingin. "Xiaohongshu", "小红书", "RedNote" and "蒲公英" are trademarks of their respective owners, used here only to describe what the Actor scrapes.

### What is Xiaohongshu 蒲公英 (Pugongying)?

Xiaohongshu (小红书, "Little Red Book", known internationally as RedNote) is China's leading lifestyle and social-commerce platform, where hundreds of millions of users discover products through creators' "notes". 蒲公英 (Pugongying, "dandelion") is Xiaohongshu's official marketplace where brands and agencies hire those creators for sponsored notes. Every listed creator publishes a quoted price per image note and per video note, and the marketplace adds median reads and engagement, estimated CPM and cost per read, follower growth, fan demographics and invitation reply rates. This Actor turns that marketplace into clean, flat rows so you can shortlist KOLs, compare rates and plan budgets at scale.

### Operations

Pick one **Operation** and fill in the matching field:

| Operation | Input field | What you get |
|-----------|-------------|--------------|
| **Search creators (KOLs)** | `keywords` and / or filters | Marketplace creators whose notes match each keyword (or whose nickname matches), with quoted prices, follower count, median exposure / reads / engagement for image and video notes, sponsored-note medians, CPM, cost per read and engagement, fan activity and live-commerce stats. Leave `keywords` empty to browse every creator that matches your filters. |
| **Similar creators** | `userUrls` | Lookalike creators for each creator you give, with the same rows as search. All search filters apply on top. |
| **Creator profile & rates** | `userUrls` | One row per creator: quoted prices, signed agency (MCN), total likes and collects, travel areas, plus the 30-day data summary (median exposure, reads and engagement, CPM, cost per read, 48h reply rate, how the creator ranks against peers and the marketplace's strength label). |
| **Note performance report** | `userUrls` | A 30- or 90-day report on everyday or sponsored notes: medians for exposure, reads, likes, collects, comments and shares, engagement rate, 100-like and 1,000-like note ratios, video completion, where the traffic comes from (feed, search, follow feed) and per-note stats. |
| **Fan / audience portrait** | `userUrls` | Fan gender and age split, top provinces, cities, interests and phone brands, plus active, engaged, reading and paying fan counts and rates. |
| **Creator's notes** | `userUrls` | The creator's notes with read, like and collect counts, sponsored flag and brand, paginated. |

`userUrls` accept Xiaohongshu profile URLs (`xiaohongshu.com/user/profile/<id>`), 蒲公英 creator page URLs or bare 24-character creator IDs - one per line. The `user_id` column of any search row is a valid ID, so a typical workflow is search -> shortlist -> profile, performance report and fan portrait.

### How to use it (step by step)

1. Choose an **Operation**.
2. Fill in the matching input:
   - Search creators -> add one or more **Search keywords** (e.g. 咖啡, 护肤, 露营), and / or set filters.
   - Every other operation -> paste **Creator URLs / IDs**.
3. For search and similar creators, optionally narrow the list: creator categories, gender, location and agency status; follower range; image-note and video-note price range; recent brand-deal industry; audience gender, age and location. Pick a **Sort** column and direction.
4. Set **Maximum results per input** (default 100, or 0 for all available) for the list operations.
5. Press **Start**. Export the dataset as JSON, CSV, Excel, XML or via the API.

### Input

| Field | Type | Description |
|-------|------|-------------|
| `operation` | string | **Required.** `search_kols`, `similar_kols`, `kol_profile`, `kol_performance`, `fan_portrait` or `kol_notes`. |
| `keywords` | array | Search keywords (for `search_kols`). Optional when at least one filter is set. |
| `userUrls` | array | Creator URLs or IDs (for every other operation). |
| `maxItems` | integer | Max results per keyword / creator for the list operations. `0` = all available. Default `100`. |
| `searchBy` | string | `notes` (default) or `nickname` (search only). |
| `sortBy`, `sortDirection` | string | Sort column (`smart`, `followers`, `price`, `picture_price`, `video_price`, `read_median`, `engagement_median`, `picture_cost_per_read`, `video_cost_per_read`, `follower_growth`, `reply_rate`, `thousand_like_ratio`) and `desc` / `asc`. |
| `contentCategories` | array | Creator categories, e.g. `美妆`, `护肤`, `美食`, `母婴`, `出行旅游`. |
| `creatorGender`, `creatorLocations`, `agencyType` | string / array | Creator gender, base location (Chinese place names, e.g. `上海`) and agency status (`individual` / `agency`). |
| `minFollowers`, `maxFollowers` | integer | Follower range. |
| `minPicturePrice`, `maxPicturePrice`, `minVideoPrice`, `maxVideoPrice` | integer | Quoted price range in CNY. |
| `recentIndustry` | string | Industry of the creator's recent brand deals, e.g. `美妆个护`, `食品饮料`, `母婴`. |
| `fanGender`, `fanAge`, `fanLocations` | string / array | Audience skew: `mostly_female` / `mostly_male`, an age band such as `25_34`, and audience locations. |
| `noteType`, `noteSort` | string | For `kol_notes`: `all` / `image` / `video` / `sponsored`, and `newest` / `most_read` / `most_engaged`. |
| `performanceWindow`, `noteScope` | string | For `kol_performance`: `30d` / `90d`, and `organic` / `sponsored` notes. |

### Output

Every row carries a `record_type` of `kol`, `note`, `performance` or `fan_portrait`. Common creator (`kol`) fields:

| Field | Description |
|-------|-------------|
| `user_id`, `red_id`, `nickname`, `profile_url`, `pugongying_url` | Creator identity and links. |
| `gender`, `location`, `content_categories`, `content_subcategories`, `feature_tags`, `personal_tags`, `industries` | Who the creator is and what they post about. |
| `picture_price`, `video_price`, `lowest_price`, `picture_orders_open`, `video_orders_open` | Quoted rates in CNY and whether orders are open. |
| `followers_count`, `follower_growth_30d_pct`, `active_fans_pct`, `engaged_fans_pct` | Audience size and quality. |
| `exposure_median`, `read_median`, `engagement_median` (+ `picture_*` / `video_*` / `sponsored_*` medians) | Typical note performance over the last 30 days. |
| `picture_cpm`, `video_cpm`, `picture_cost_per_read`, `video_cost_per_read`, `*_cost_per_engagement` | Estimated campaign efficiency in CNY. |
| `invite_reply_rate_48h_pct`, `sponsored_note_count`, `agency_name` | How the creator works with brands. |

Profile rows add `likes_collects_count`, `travel_areas`, `agency_id`, `creator_strength`, `notes_last_30d`, `active_days_last_7`, `brand_invites_received` and `*_beats_pct` peer rankings. Performance rows add medians for likes, collects, comments, shares and follows, `engagement_rate_pct`, traffic-source shares (`exposure_from_feed_pct`, `exposure_from_search_pct` ...) and a `notes` list. Fan-portrait rows add `female_pct`, `male_pct`, `age_*_pct`, `top_province`, `top_city`, `top_interest`, `top_device_brand`, the full `provinces`, `cities`, `interests` and `device_brands` breakdowns and paying-fan stats. Note rows add `note_id`, `note_url`, `title`, `read_count`, `like_count`, `collect_count`, `is_sponsored` and `brand_name`.

Example creator row (shortened):

```json
{
  "record_type": "kol",
  "operation": "search_kols",
  "input": "咖啡",
  "user_id": "599019f082ec3967d2a034e5",
  "nickname": "咖啡狗whacky",
  "location": "广东 广州 天河区",
  "content_categories": ["美食", "家居家装"],
  "followers_count": 55524,
  "picture_price": 4000.0,
  "video_price": 6000.0,
  "read_median": 2005,
  "engagement_median": 134,
  "picture_cpm": 1486.99,
  "video_cost_per_read": 4.34,
  "invite_reply_rate_48h_pct": 94.0,
  "active_fans_pct": 57.5
}
```

### Common use cases

- **KOL sourcing** - shortlist creators in a category, city and price band, sorted by reads, engagement or cost per read.
- **Rate benchmarking** - compare quoted image-note and video-note prices across a niche before negotiating.
- **Lookalike discovery** - start from a creator who performed well and find similar ones that fit your filters.
- **Creator vetting** - check a shortlist's performance report and fan portrait (age, gender, region, active and paying fans) before you book.
- **Campaign planning** - estimate CPM and cost per read for a budget, and see how much of a creator's traffic comes from search.

### Notes on reliability

- Only creators listed on 蒲公英 are covered; ordinary Xiaohongshu accounts that do not take brand deals return nothing.
- A creator search reaches at most 5,000 creators per query (the marketplace's own limit). Narrow the filters or split keywords for more.
- Filter values must match the marketplace's own names (for example `护肤`, `上海`); a misspelt value quietly returns no creators rather than an error.
- Profile rows hold the 30-day data summary; the per-format medians (image / video / sponsored), video completion and live-commerce stats only appear on search and similar-creator rows.
- Prices are the creator's quoted list prices in CNY; metrics reflect what the marketplace shows at scrape time. Unknown or delisted creator IDs are skipped and the run continues.

### FAQ

**Do I need a 蒲公英 brand account, cookies or a proxy?** No. Just add your input and press Start.

**Where do I find a creator ID?** In any Xiaohongshu profile link (`xiaohongshu.com/user/profile/<id>`), in a 蒲公英 creator page link, or in the `user_id` column of a search row.

**Can I search without a keyword?** Yes. Leave Keywords empty and set at least one filter to browse every listed creator that matches.

**Why do these results cost more than ordinary Xiaohongshu notes?** Marketplace data (quoted prices, audience portraits, performance reports) is far more expensive to collect than public notes, so the per-result prices are higher.

**Can I try it for free?** Yes. Users on the free Apify plan can fetch up to 10 results in total to try the Actor. Upgrade to a paid Apify plan to run it without that limit.

**What export formats are supported?** JSON, CSV, Excel, XML and HTML, plus the Apify API and integrations such as Google Sheets, Zapier, Make and webhooks.

### Pricing

This Actor is **pay per result**: you are charged for each record it returns (creator cards from search or similar creators, creator profiles, performance reports, fan portraits and creator notes), plus standard Apify platform usage. Different record types have different prices; see the **Pricing** tab for current rates. You are never charged for inputs that return nothing.

### Related scrapers

- **[Xiaohongshu Scraper](https://apify.com/vulnv/xiaohongshu-scraper)** - 小红书 / RedNote notes, creator profiles and comments.
- **[Douyin Scraper](https://apify.com/vulnv/douyin-search-scraper)** - 抖音 videos by keyword, with creators and downloads.
- **[Weibo Scraper](https://apify.com/vulnv/weibo-scraper)** - 微博 posts, users, comments and hot search.

# Actor input Schema

## `operation` (type: `string`):

What to fetch. Each operation uses a different input field below:

• Search creators (KOLs) → Keywords and / or filters
• Similar creators → Creator URLs / IDs (+ optional filters)
• Creator profile & rates → Creator URLs / IDs
• Note performance report → Creator URLs / IDs
• Fan / audience portrait → Creator URLs / IDs
• Creator's notes → Creator URLs / IDs

## `keywords` (type: `array`):

For "Search creators". Add one or more keywords - each is searched independently and duplicate creators across keywords are removed. By default a keyword matches creators whose notes are about it (e.g. 咖啡, 护肤, 露营); switch "Search by" to nickname to look creators up by name. Leave empty to browse every listed creator that matches the filters below (at least one filter is then required).

## `userUrls` (type: `array`):

For every operation except "Search creators". Paste Xiaohongshu profile URLs (xiaohongshu.com/user/profile/<id>), 蒲公英 creator page URLs, or bare 24-character creator IDs (e.g. 599019f082ec3967d2a034e5) - one per line. The user_id column of any search result is a valid ID.

## `maxItems` (type: `integer`):

Upper bound on results per keyword / creator for the list operations (search, similar creators, creator's notes). Cost scales linearly. Set 0 to fetch all available (creator searches stop at 5,000, the marketplace's own limit).

## `searchBy` (type: `string`):

For "Search creators" only. Match the keyword against what creators post about (default) or against their nickname.

## `sortBy` (type: `string`):

For "Search creators" and "Similar creators".

## `sortDirection` (type: `string`):

Highest first or lowest first.

## `contentCategories` (type: `array`):

Only creators in any of these content categories.

## `creatorGender` (type: `string`):

Only creators of this gender.

## `creatorLocations` (type: `array`):

Only creators based in any of these places. Use Chinese place names, e.g. 上海, 北京, 广东, 杭州.

## `agencyType` (type: `string`):

Independent creators only, agency-signed creators only, or both.

## `minFollowers` (type: `integer`):

Only creators with at least this many followers. 0 = no minimum.

## `maxFollowers` (type: `integer`):

Only creators with at most this many followers. 0 = no maximum.

## `minPicturePrice` (type: `integer`):

Only creators whose quoted image-note price is at least this. 0 = no minimum.

## `maxPicturePrice` (type: `integer`):

Only creators whose quoted image-note price is at most this. 0 = no maximum.

## `minVideoPrice` (type: `integer`):

Only creators whose quoted video-note price is at least this. 0 = no minimum.

## `maxVideoPrice` (type: `integer`):

Only creators whose quoted video-note price is at most this. 0 = no maximum.

## `recentIndustry` (type: `string`):

Only creators who recently did sponsored notes in this industry.

## `fanGender` (type: `string`):

Only creators whose audience is mostly this gender.

## `fanAge` (type: `string`):

Only creators whose audience skews to this age band.

## `fanLocations` (type: `array`):

Only creators with a strong audience in any of these places (province or city, in Chinese, e.g. 上海, 杭州).

## `noteType` (type: `string`):

For "Creator's notes" only.

## `noteSort` (type: `string`):

For "Creator's notes" only.

## `performanceWindow` (type: `string`):

For "Note performance report" only.

## `noteScope` (type: `string`):

For "Note performance report" only. Everyday (organic) notes or sponsored brand-deal notes.

## Actor input object example

```json
{
  "operation": "search_kols",
  "keywords": [
    "咖啡"
  ],
  "maxItems": 100,
  "searchBy": "notes",
  "sortBy": "smart",
  "sortDirection": "desc",
  "creatorGender": "any",
  "agencyType": "any",
  "recentIndustry": "any",
  "fanGender": "any",
  "fanAge": "any",
  "noteType": "all",
  "noteSort": "newest",
  "performanceWindow": "30d",
  "noteScope": "organic"
}
```

# Actor output Schema

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

All scraped Xiaohongshu creator marketplace results in the default dataset.

## `overview` (type: `string`):

Overview table of the scraped results.

# 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 = {
    "keywords": [
        "咖啡"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("vulnv/xiaohongshu-kol-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 = { "keywords": ["咖啡"] }

# Run the Actor and wait for it to finish
run = client.actor("vulnv/xiaohongshu-kol-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 '{
  "keywords": [
    "咖啡"
  ]
}' |
apify call vulnv/xiaohongshu-kol-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,vulnv/xiaohongshu-kol-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/E2nlC685gs0pKXkor/builds/PM6rUt5IW8sjTmVLD/openapi.json
