# Douyin Xingtu KOL Scraper 巨量星图 \[From $4] Prices & Rankings (`memo23/douyin-xingtu-kol-scraper`) Actor

\[From $4 per 1000 rows] Douyin influencer data from Xingtu (巨量星图): search creators by name or content with quoted video prices, expected plays, CPM, engagement and e-commerce ranges; brand-deal rankings by category; brands worked with. No login. Rankings $4, creators $10 per 1,000.

- **URL**: https://apify.com/memo23/douyin-xingtu-kol-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Social media
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.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

## Douyin Xingtu KOL Scraper 巨量星图 — Creator Prices & Rankings

Influencer data for Douyin (抖音) from **Xingtu (巨量星图)**, the platform's own marketplace for brand deals. Search creators and get their quoted prices per video, expected plays, CPM, engagement and e-commerce ranges; pull the brand-deal rankings by category; or look up one creator's collaboration standing. No login, no cookies, no Xingtu advertiser account.

### What it does

| Input | You get |
|-------|---------|
| Creator-search keyword | Creators matching a nickname, or matching what their videos are about |
| Filters only | Creators by follower range, gender and price, with no keyword |
| Ranking | The newest edition of a Xingtu ranking, 100 creators per category |
| Douyin profile link, handle or Xingtu id | One creator's prices, expected results, six collaboration indices, brands worked with, audience comment keywords and best videos |
| `includeSimilar` | About 12 creators with similar content |
| Video link | Xingtu's report on a video: totals, daily curve, second-by-second retention, top comments |
| Live-streamer keyword | Live streamers with sessions, viewers and e-commerce ranges |
| Toutiao keyword | Toutiao (今日头条) creators on Xingtu |

Rows are told apart by `type`: `kol`, `ranking-row`, `kol-profile`, `video-report`, `live-streamer` and `toutiao-creator`.

### How It Works

<p align="center">
  <img src="https://api.apify.com/v2/key-value-stores/nfGVWQKy3u9dycOfu/records/how-it-works-douyin-xingtu.png" alt="How the Douyin Xingtu KOL scraper works" width="900" />
</p>

### Input

| Field | Type | Description |
|-------|------|-------------|
| `keywords` | `string[]` | Creator-search keywords. |
| `searchBy` | string | `nickname` (default) or `content` (videos of the last 180 days). |
| `browseWithFilters` | boolean | One extra search with no keyword, by the filters alone. |
| `gender` | string | `any`, `male` or `female`. |
| `followersMin` / `followersMax` | integer | Follower range. |
| `priceTier` | string | Which quoted price the price filters use: `1-20s`, `21-60s` (default) or `over60s`. |
| `priceMin` / `priceMax` | integer | Price range in Chinese yuan. |
| `maxResultsPerKeyword` | integer | Default 40, up to 2,000. |
| `rankings` | `string[]` | `brandPreferred`, `a3Seeding`, `searchAfterWatch`, `ecommerce`, `adFlow`, `highPotential`, `followerGrowth`, `topPicks`, `shortDramaActors`. |
| `rankingCategories` | `string[]` | Category names in Chinese (`美妆`, `食品饮料`, `3C及电器`, `服装配饰`, `母婴宠物`, `日化`, `汽车`). Empty: every category for brand rankings, the all-categories edition for `followerGrowth` and `topPicks`. |
| `rankingPeriod` | string | `30` monthly (default) or `7` weekly. |
| `maxItemsPerRanking` | integer | Default and maximum 100. |
| `creators` | `string[]` | Douyin profile links, Douyin handles (抖音号) or Xingtu ids. |
| `includeSimilar` | boolean | Similar creators for each entry in `creators`, as `kol` rows. |
| `videos` | `string[]` | Douyin video links or ids for a `video-report`. |
| `liveStreamerKeywords` | `string[]` | Live streamer search by nickname. |
| `toutiaoKeywords` | `string[]` | Toutiao creator search by nickname. |

#### Example: beauty creators with 100k to 1M followers under ¥30,000

```json
{
  "keywords": ["护肤"],
  "searchBy": "content",
  "followersMin": 100000,
  "followersMax": 1000000,
  "priceTier": "21-60s",
  "priceMax": 30000,
  "maxResultsPerKeyword": 100
}
```

#### Example: who tops the beauty brand-deal ranking this month

```json
{
  "rankings": ["brandPreferred", "ecommerce"],
  "rankingCategories": ["美妆"]
}
```

#### Example: check one creator

```json
{ "creators": ["https://www.douyin.com/user/MS4wLjABAAAAWvWIoanFig8ccfrUMtQZXJLnwih48e55fQuV1-ejkfU"] }
```

### Output

Creator from search (`kol`):

```json
{
  "type": "kol",
  "searchKeyword": "美食",
  "xingtuId": "6839869628747874312",
  "xingtuUrl": "https://www.xingtu.cn/ad/creator/author/douyin/6839869628747874312/1",
  "name": "美食强",
  "gender": "male",
  "province": "安徽省",
  "city": "马鞍山市",
  "categories": ["美食"],
  "contentThemes": ["家常菜教程", "下饭菜教程", "家常菜谱"],
  "followers": 2162878,
  "followerChange30d": -13863,
  "price21to60s": 13000,
  "priceOver60s": 15000,
  "expectedPlays": 332014,
  "expectedCpm21to60s": 39.155,
  "medianPlays30d": 298802,
  "interactionRate30d": 0.0143,
  "completionRate30d": 0.0342,
  "sponsoredVideos30d": 1,
  "seedingIndex": 74.39,
  "conversionIndex": 73.42,
  "ecommerceEnabled": true,
  "ecommerceGmv30dRange": "1k-3w"
}
```

Each `kol` row also has `recentVideos[]` (up to 10, with plays, likes, comments and shares), the spread and shopping indices, `douyinUid` and `avatarUrl`. Prices are the creator's quoted rates in Chinese yuan.

Ranking entry (`ranking-row`):

```json
{
  "type": "ranking-row",
  "ranking": "brandPreferred",
  "rankingName": "品牌种草·品牌优选榜",
  "category": "美妆",
  "periodDays": 30,
  "editionDate": "2026-09-30",
  "rank": 1,
  "previousRank": 7,
  "name": "林晓晴",
  "followers": 243181,
  "averagePlays": 39171,
  "cpm": 29,
  "completedOrders": "10 ~ 20",
  "repurchaseRate": "> 0.75"
}
```

Creator profile (`kol-profile`):

```json
{
  "type": "kol-profile",
  "xingtuId": "7010015481641828392",
  "name": "东北水搂子",
  "category": "美食",
  "city": "鹤岗",
  "followers": 769185,
  "creditScore": 100,
  "brandsWorkedWith": ["沪上阿姨", "德芙", "if", "东方树叶", "茶百道"],
  "cooperationIndex": { "value": 80.46, "categoryAverage": 75.55, "rank": 12926, "topPercent": 0.59 },
  "seedingIndex": { "value": 73.49, "categoryAverage": 56.2, "rank": 26467, "topPercent": 1.22 }
}
```

A profile carries six indices (cooperation, cost performance, spread, seeding, conversion, shopping), each with the creator's value, the category average and their rank. It also has the quoted prices, expected plays, CPM and cost per engagement, `commentKeywords` (what the audience writes), `contentKeywords` (what the videos are about), `bestVideos` and `newestVideos`.

Video report (`video-report`):

```json
{
  "type": "video-report",
  "videoId": "7691564178443685139",
  "title": "当你想吃“京酱肉丝”就把这部视频翻出来",
  "plays": 335909,
  "likes": 4837,
  "saves": 2711,
  "interactionRate": 0.0171,
  "completionRate": 0.0389,
  "contentThemes": ["家常菜教程", "下饭菜教程"],
  "daily": [{ "date": "2026-10-01", "plays": 70601, "likes": 1120, "comments": 46, "shares": 155, "saves": 502 }],
  "retentionBySecond": [{ "second": 0, "value": 165166 }, { "second": 2, "value": 49001 }],
  "topComments": [{ "text": "咱东北是干豆腐包着吃", "likes": 5, "replies": 3 }]
}
```

### Pricing

Pay per event. You pay for rows you receive; a failed lookup costs nothing.

| Event | When | Price |
|-------|------|-------|
| Actor start | Once per run | $0.005 |
| Creator (`kol`) | Each creator from search | $0.01 |
| Ranking row | Each ranking entry | $0.004 |
| Creator profile | Each single-creator profile | $0.05 |
| Video report | Each video report | $0.05 |
| Live streamer | Each live streamer found by keyword | $0.01 |
| Toutiao creator | Each Toutiao creator found by keyword | $0.01 |

100 creators with prices cost $1. Set a maximum cost per run in the run options and the Actor stops there with what it has.

### FAQ

**Do I need a Xingtu advertiser account?**
No.

**Are the prices real?**
They are the rates each creator lists on Xingtu for one sponsored video of that length. Final deals are negotiated.

**Does it return contact details?**
No. A profile row says whether the creator lists WeChat, phone or email on Xingtu, and not the details themselves.

**Can I get audience demographics or follower history?**
Not in this version.

**Why did a ranking return nothing for my category?**
Each ranking has its own categories. The run log lists the ones on offer for that ranking.

**Is a creator missing from search?**
Only creators who joined Xingtu appear. Many small accounts have not.

### 🤖 For AI Agents & LLM Apps

**Purpose:** Douyin creator pricing, performance and brand-deal rankings from Xingtu as structured JSON.

**Minimal input:** `{"keywords": ["美食"], "maxResultsPerKeyword": 20}`

**Output:** rows with `type` = `kol` | `ranking-row` | `kol-profile` | `video-report` | `live-streamer` | `toutiao-creator`. kol: xingtuId, name, followers, price21to60s, priceOver60s, expectedPlays, expectedCpm21to60s, interactionRate30d, categories, city, ecommerceGmv30dRange, recentVideos. ranking-row: ranking, category, editionDate, rank, name, followers, cpm. kol-profile: six indices, brandsWorkedWith, creditScore.

**Behaviors to know:** keywords are usually Chinese. Category names for rankings are Chinese. Prices are in CNY. Free-plan runs return up to 20 creators per keyword and per ranking.

### ⚠️ Disclaimer

This Actor collects business data that creators publish on Xingtu for brand collaboration. It is not affiliated with, endorsed by, or sponsored by Douyin, Xingtu or ByteDance. You are responsible for using the data in line with applicable laws and the platform's terms.

### SEO Keywords

douyin kol, xingtu scraper, 巨量星图, 星图达人, douyin influencer pricing, douyin kol price, douyin influencer marketing, china influencer data, douyin creator rankings, douyin kol search, xingtu api, douyin cpm, china kol database

# Actor input Schema

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

Find Xingtu creators by nickname, or by what their videos are about (see 'Search by'). Each result is a `kol` row with quoted prices, expected plays, CPM, engagement and e-commerce ranges.

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

What the keywords are matched against.

## `browseWithFilters` (type: `boolean`):

Also run one search with no keyword, using only the filters below (followers, gender, price). Ordered by Xingtu's score.

## `gender` (type: `string`):

Filter for creator search.

## `followersMin` (type: `integer`):

Filter for creator search: at least this many followers.

## `followersMax` (type: `integer`):

Filter for creator search: at most this many followers.

## `priceTier` (type: `string`):

Which quoted price the two price filters below compare against.

## `priceMin` (type: `integer`):

Filter for creator search: quoted price at least this much, in Chinese yuan.

## `priceMax` (type: `integer`):

Filter for creator search: quoted price at most this much, in Chinese yuan.

## `maxResultsPerKeyword` (type: `integer`):

Upper bound on creators per keyword. 20 arrive per page.

## `rankings` (type: `array`):

Xingtu creator rankings. Each returns the newest edition, 100 creators per category, as `ranking-row` rows.

## `rankingCategories` (type: `array`):

Category names in Chinese, as Xingtu lists them: `美妆`, `食品饮料`, `3C及电器`, `服装配饰`, `母婴宠物`, `日化`, `汽车`; the two content rankings also take `美食`, `旅行`, `时尚` and others. Empty: brand rankings return every category, content rankings their all-categories edition.

## `rankingPeriod` (type: `string`):

Which edition of each ranking to return.

## `maxItemsPerRanking` (type: `integer`):

Upper bound on rows per ranking and category.

## `creators` (type: `array`):

Douyin profile links (`https://www.douyin.com/user/MS4w…`), Douyin handles (抖音号) or Xingtu ids. Each returns a `kol-profile` row: quoted prices, expected plays and costs, six collaboration indices with the creator's standing, credit score, brands worked with, what the audience comments on, what the videos are about and the best and newest videos.

## `includeSimilar` (type: `boolean`):

For each entry in Creators, add about 12 creators with similar content as `kol` rows with `source: "similar"`.

## `videos` (type: `array`):

Douyin video links or ids. Each returns a `video-report` row: totals, completion rate, the daily curve, viewer retention and likes second by second, and top comments. Available for videos of creators who are on Xingtu.

## `liveStreamerKeywords` (type: `array`):

Find Xingtu live streamers by nickname. Each result is a `live-streamer` row with live sessions, viewers, interaction rate and e-commerce ranges.

## `toutiaoKeywords` (type: `array`):

Find Toutiao (今日头条) creators on Xingtu by nickname. Each result is a `toutiao-creator` row with followers, category and verification.

## Actor input object example

```json
{
  "keywords": [
    "美食"
  ],
  "searchBy": "nickname",
  "browseWithFilters": false,
  "gender": "any",
  "priceTier": "21-60s",
  "maxResultsPerKeyword": 40,
  "rankingPeriod": "30",
  "maxItemsPerRanking": 100,
  "includeSimilar": false
}
```

# Actor output Schema

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

Rows told apart by `type`: `kol` (a creator from search, with prices, expected plays, CPM, engagement and e-commerce data), `ranking-row` (a creator's place in a Xingtu ranking) and `kol-profile` (collaboration indices and brands for one creator).

# 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("memo23/douyin-xingtu-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("memo23/douyin-xingtu-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 memo23/douyin-xingtu-kol-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,memo23/douyin-xingtu-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/vj947OxyDhDIhbkHa/builds/ItCTAFtmsv2phaStu/openapi.json
