# Xiaohongshu Influencer Finder — Fast, No Residential Proxy (`funny_ground/xiaohongshu-influencer-finder`) Actor

Discover and enrich unique public Xiaohongshu creators from commercial-interest Explore feeds. Direct lightweight HTTP, exactness-aware counters, no login, browser, or residential proxy. A 0-row run is FAILED.

- **URL**: https://apify.com/funny\_ground/xiaohongshu-influencer-finder.md
- **Developed by:** [Coor Yu](https://apify.com/funny_ground) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 xiaohongshu creators

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Xiaohongshu Influencer Finder — Fast, No Residential Proxy

Discover public Xiaohongshu (RedNote / 小红书) creators from commercial-interest Explore feeds, deduplicate them by creator ID, and enrich each lead with public profile data.

This Actor uses lightweight server-rendered HTML over direct HTTP. It does not start a browser, ask for a login cookie, call a paid third-party data API, or select residential proxies.

> **Result-integrity rule:** a complete run with 0 valid creator rows finishes as `FAILED`, not as a misleading empty success.

### What it returns

- Creator ID, canonical profile URL, nickname, Xiaohongshu ID, avatar, bio, public location label, and profile tags
- Followers, following, and “likes + collections” counters
- Exactness flags and lower bounds whenever Xiaohongshu displays compact values such as `2.5万`
- Verification type/text when publicly rendered
- Discovery categories, unique discovered-note count, and the strongest sampled note with likes, cover, type, and URL
- One dataset row per unique creator

### Quick start

```json
{
  "categories": ["cosmetics", "fashion", "food", "travel", "fitness"],
  "maxCreators": 100,
  "minFollowers": 1000,
  "minSampleNoteLikes": 100,
  "keywords": [],
  "connectionMode": "DIRECT",
  "maxConcurrency": 8,
  "maxDiscoveryPages": 50,
  "maxRequestRetries": 2
}
```

Available categories are `recommend`, `cosmetics`, `fashion`, `food`, `travel`, `fitness`, `household`, `career`, `movie`, `gaming`, and `love`.

`keywords` is an optional local OR filter over nickname, bio, tags, verification text, and sampled-note title. It is intentionally not described as full Xiaohongshu keyword search: the platform's own user-search API is login-gated, while this Actor remains cookieless.

### Performance and reliability

The data path has two stages:

1. Public Explore pages are reshuffled and sampled until the candidate target or safety cap is reached.
2. Creator IDs are deduplicated before concurrent lightweight mobile profile requests.

In the pre-release direct-IP benchmark on 2026-08-06:

- 194 public notes produced 193 unique creator IDs in 5 seconds.
- 30 profile enrichments completed 30/30 with 0 blocks in 3.17 seconds at concurrency 6.
- Those 30 profile responses transferred 1.27 MB total.

Actual throughput and available results can change with Xiaohongshu's public feed, selected filters, network conditions, and site changes. `STATS` records the real request count, response bytes, blocks, results, and runtime for every run.

### No residential proxy

Only two connection modes exist:

- `DIRECT` — the Actor container's datacenter IP; default and lowest overhead.
- `APIFY_DATACENTER` — Apify datacenter proxy sessions for rotation.

There is no residential-proxy option and no arbitrary custom proxy input.

### Pricing design

The Store rate is `$0.0025` per valid creator for paid Apify plans (`$2.50 per 1,000`) and `$0.003` on the Free plan, plus a `$0.0005` Actor-start event. Apify platform usage is passed through to the run owner. Because the Actor has no residential traffic or paid upstream API, every billed row keeps a positive margin after Apify's 20% Store fee.

Only valid creator rows written to the default dataset are result-billed. Restrictive filters can return fewer than `maxCreators`; the maximum is a cap, not a promise that the public feed contains that many matching creators.

### Counter accuracy

For plain public counters such as `1664`, the Actor sets `followers: 1664` and `followersIsExact: true`. For compact public values such as `22.5万`, it preserves `followersText: "22.5万"`, reports `followersLowerBound: 225000`, and sets `followersIsExact: false`; it does not invent hidden precision.

`minFollowers` uses the exact value or public lower bound, so a creator only passes when the displayed data safely reaches the threshold.

### Local development

```bash
npm install
npm test
npm run test:live
```

The live check uses a small direct-IP sample and does not need an Apify Proxy or Xiaohongshu cookie.

### Responsible use

Collect only public data and use it in compliance with Xiaohongshu's terms and applicable privacy/data-protection law. Public creator fields may still be personal data; minimize retention and redistribution. This Actor does not access private accounts, hidden contact details, or logged-in surfaces.

# Actor input Schema

## `categories` (type: `array`):

One category per line. Available values: recommend, cosmetics, fashion, food, travel, fitness, household, career, movie, gaming, love.

## `maxCreators` (type: `integer`):

Maximum unique, filter-matching creator rows written to the dataset.

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

Keep creators whose public follower count or displayed lower bound reaches this value. Use 0 to disable.

## `minSampleNoteLikes` (type: `integer`):

Keep creators with at least one discovered public note reaching this like count or displayed lower bound. Use 0 to disable.

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

Optional OR filter applied to nickname, bio, profile tags, verification text, and the discovered sample-note title. This is a local result filter, not Xiaohongshu's login-gated search endpoint.

## `connectionMode` (type: `string`):

DIRECT is lowest overhead. APIFY\_DATACENTER rotates only Apify datacenter proxy sessions. Residential proxies are never selected.

## `maxConcurrency` (type: `integer`):

Maximum lightweight profile requests processed in parallel.

## `maxDiscoveryPages` (type: `integer`):

Safety cap across all selected categories. Raise it when restrictive filters need a larger candidate pool.

## `maxRequestRetries` (type: `integer`):

Short retries for transient network failures. Datacenter mode uses a fresh proxy session per retry.

## Actor input object example

```json
{
  "categories": [
    "cosmetics",
    "fashion",
    "food",
    "travel",
    "fitness"
  ],
  "maxCreators": 100,
  "minFollowers": 1000,
  "minSampleNoteLikes": 100,
  "keywords": [],
  "connectionMode": "DIRECT",
  "maxConcurrency": 8,
  "maxDiscoveryPages": 50,
  "maxRequestRetries": 2
}
```

# Actor output Schema

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

No description

## `stats` (type: `string`):

No description

## `errors` (type: `string`):

No description

# 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 = {
    "categories": [
        "cosmetics",
        "fashion",
        "food",
        "travel",
        "fitness"
    ],
    "maxCreators": 100,
    "minFollowers": 1000,
    "minSampleNoteLikes": 100,
    "maxConcurrency": 8,
    "maxDiscoveryPages": 50,
    "maxRequestRetries": 2
};

// Run the Actor and wait for it to finish
const run = await client.actor("funny_ground/xiaohongshu-influencer-finder").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 = {
    "categories": [
        "cosmetics",
        "fashion",
        "food",
        "travel",
        "fitness",
    ],
    "maxCreators": 100,
    "minFollowers": 1000,
    "minSampleNoteLikes": 100,
    "maxConcurrency": 8,
    "maxDiscoveryPages": 50,
    "maxRequestRetries": 2,
}

# Run the Actor and wait for it to finish
run = client.actor("funny_ground/xiaohongshu-influencer-finder").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 '{
  "categories": [
    "cosmetics",
    "fashion",
    "food",
    "travel",
    "fitness"
  ],
  "maxCreators": 100,
  "minFollowers": 1000,
  "minSampleNoteLikes": 100,
  "maxConcurrency": 8,
  "maxDiscoveryPages": 50,
  "maxRequestRetries": 2
}' |
apify call funny_ground/xiaohongshu-influencer-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=funny_ground/xiaohongshu-influencer-finder",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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