# Douyin (Xingtu) Creator Rankings - Brand-Deal KOLs with Rates (`zen-studio/douyin-xingtu-rankings-scraper`) Actor

Extract top Douyin (抖音) commercial creators with CPM rates, follower counts, brand-order metrics, and stable creator IDs from Xingtu (巨量星图) leaderboards. 7 industries: 美妆, 3C及电器, 食品饮料, 服装配饰, 汽车, 母婴宠物, 日化. Bucketed repurchase rates, top videos, optional similar-creator (达人) expansion. JSON/CSV/Excel.

- **URL**: https://apify.com/zen-studio/douyin-xingtu-rankings-scraper.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Videos, Social media, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.99 / 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.
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

## Douyin (Xingtu) Creator Rankings Scraper (抖音 · 巨量星图) — Brand-Deal KOLs with Rates (2026)

<blockquote style="border-left:4px solid #4C945E;background:#F0FDF4;padding:12px 16px">
<span style="font-size:16px;font-weight:700;color:#1C1917">Find the top Douyin (抖音) commercial creators in your category with CPM rates, follower counts, brand-order metrics, and a stable creator ID</span> <span style="font-size:15px;color:#57534E"> — driven by Xingtu's (巨量星图) official leaderboards across 7 industries. Optional one-hop similar-creator (达人) expansion. Clean structured JSON, billed per result.</span>
</blockquote>

![Douyin Xingtu Rankings Scraper](https://iili.io/C9gdf7R.png)

#### Copy to your AI assistant

````

zen-studio/douyin-xingtu-rankings-scraper on Apify. Returns top Douyin commercial creators with rates, follower counts, brand-order metrics, and stable starId — driven by Xingtu (巨量星图) leaderboards across 7 industries (美妆, 3C及电器, 食品饮料, 服装配饰, 汽车, 母婴宠物, 日化). One flat row per creator, ~30 fields with a 'source' discriminator ('ranking' or 'similar\_to:<starId>'). Call ApifyClient("TOKEN").actor("zen-studio/douyin-xingtu-rankings-scraper").call(run\_input={...}), then client.dataset(run\["defaultDatasetId"]).list\_items().items. Required: industries (string\[]), creatorType (top\_creators|rising\_stars|sales\_champions|viral\_drivers|paid\_ad\_performers|head\_tier|all\_top), timeWindow (latest\_weekly|latest\_monthly|all\_history\_weekly|all\_history\_monthly). Optional: maxResults (1–10000, default 100), includeSimilarCreators (bool, default false), similarExpandTopN (1–100, default 20), similarType (content|comprehension|audience|commercial). Pricing: $7.99 per 1,000 results. Full spec: GET https://api.apify.com/v2/acts/zen-studio~douyin-xingtu-rankings-scraper/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Token: https://console.apify.com/account/integrations

````

<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 · 抖音 + 西瓜视频 (Xigua)</span>
<span style="color:#E8F5E9;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Full-stack China short-video data: discovery, search, profiles, posts, comments, transcripts</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;background:#E8F5E9;border-right:none;border-top:none;vertical-align:top;width:20%">
<a href="https://apify.com/zen-studio/douyin-xingtu-rankings-scraper" style="color:#4C945E;text-decoration:none;font-weight:700;font-size:14px">Xingtu Rankings</a><br>
<span style="color:#4C945E;font-size:12px;font-weight:600">&#10148; You are here</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:20%">
<a href="https://apify.com/zen-studio/douyin-profile-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">Profiles</a><br>
<span style="color:#78716C;font-size:12px">博主 followers, posts, hashtags</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:20%">
<a href="https://apify.com/zen-studio/douyin-search-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">Search</a><br>
<span style="color:#78716C;font-size:12px">Keyword search + filters</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:20%">
<a href="https://apify.com/zen-studio/douyin-comments-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">Comments</a><br>
<span style="color:#78716C;font-size:12px">评论 + nested replies</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:20%">
<a href="https://apify.com/zen-studio/douyin-video-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">Video</a><br>
<span style="color:#78716C;font-size:12px">Metadata + MP4 download</span>
</td>
</tr>
</table>

### How to Pull Top Douyin Creators by Industry

#### Basic — top brand-deal creators in beauty (default run)

```json
{
  "industries": ["美妆"],
  "creatorType": "top_creators",
  "timeWindow": "latest_monthly",
  "maxResults": 100
}
````

Returns 100 priced creators ranked by Xingtu's monthly brand-premium leaderboard (品牌种草·品牌优选榜) in ~3 seconds.

#### Mega-run — all top creators across a single industry (~441 unique)

```json
{
  "industries": ["3C及电器"],
  "creatorType": "all_top",
  "timeWindow": "latest_monthly",
  "maxResults": 500
}
```

`all_top` combines all six brand-seeding boards (Brand-Premium, A3 Seeding, View-then-Search, Sales Champions, Paid-Ad Performers, Rising Stars) for the chosen industry. Cross-board dedup is automatic.

#### Cross-industry monthly snapshot

```json
{
  "industries": ["美妆", "3C及电器", "食品饮料", "服装配饰"],
  "creatorType": "top_creators",
  "timeWindow": "latest_monthly",
  "maxResults": 400
}
```

100 top creators per industry × 4 industries. Useful for monthly competitive intel decks.

#### Discovery with lookalike expansion

```json
{
  "industries": ["美妆"],
  "creatorType": "top_creators",
  "timeWindow": "latest_monthly",
  "maxResults": 220,
  "includeSimilarCreators": true,
  "similarExpandTopN": 10,
  "similarType": "content"
}
```

Pulls the top 100 creators, then for each of the first 10 ranked creators pulls up to 12 lookalikes via Xingtu's similar-creator graph. Size `maxResults` to at least `100 + (similarExpandTopN × 12)` so similar-expansion has room to emit.

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `industries` | string\[] | `["美妆"]` | One or more of: `美妆` / `3C及电器` / `食品饮料` / `服装配饰` / `汽车` / `母婴宠物` / `日化`. Each industry runs independently. |
| `creatorType` | string | `top_creators` | `top_creators` (brand-premium) / `rising_stars` (high-potential + fast-growing) / `sales_champions` (top brand orders) / `viral_drivers` (A3 seeding + view-then-search) / `paid_ad_performers` / `head_tier` (mega creators) / `all_top` (combined). |
| `timeWindow` | string | `latest_monthly` | `latest_weekly` / `latest_monthly` / `all_history_monthly` / `all_history_weekly`. Latest = most recent snapshot only; historical = every snapshot back to Xingtu's earliest. |
| `maxResults` | integer | `100` | Hard cap on emitted rows (1–10000). Each unique creator counts as one result. |
| `includeSimilarCreators` | boolean | `false` | When `true`, adds a second pass that pulls similar creators for the top-N ranked creators via Xingtu's lookalike graph. Each lookalike counts as one result. |
| `similarExpandTopN` | integer | `20` | Only matters when the toggle above is `true`. The first N ranked creators per board become seeds for lookalike expansion (1–100). |
| `similarType` | string | `content` | `content` (style + topics) / `comprehension` (weighted) / `audience` (audience overlap) / `commercial` (CPM + sales profile). |

#### Accepted industry values

| Value | English |
|---|---|
| `美妆` | Beauty |
| `3C及电器` | 3C & Electronics |
| `食品饮料` | Food & Beverage |
| `服装配饰` | Apparel & Accessories |
| `汽车` | Automotive |
| `母婴宠物` | Mother & Baby & Pets |
| `日化` | Household Goods |

#### Accepted creator types

| Value | What it returns |
|---|---|
| `top_creators` | 品牌优选 — best for brand deals |
| `rising_stars` | 高潜 + 涨粉黑马 — fast-growing breakouts |
| `sales_champions` | 带货 — top by completed brand orders |
| `viral_drivers` | A3 种草 + 看后搜 — best at sparking searches |
| `paid_ad_performers` | 投流 — highest ROI on paid promotion |
| `head_tier` | 头部必选 — the most-booked head creators |
| `all_top` | All six brand-seeding boards combined |

### What Data Can You Extract from Douyin Xingtu?

One row per creator. Every row carries **41 top-level fields** with a `source` discriminator that separates ranking-origin rows from similar-expansion rows. Similar rows additionally populate four enrichment fields (`taskPriceInfos`, `recommendTypes`, `similarityScore`, `tagContentLevelOne`) that ranking rows leave empty.

#### Output Example

Every top-level field is shown below. Long URLs are trimmed with `…`; the `items[]` array is shortened.

```json
{
  "starId": "7044191734988800014",
  "coreUserId": "686525298261278",
  "douyinProfileUrl": "https://www.douyin.com/user/686525298261278",
  "nickName": "李仁真",
  "avatarUri": "https://p3.douyinpic.com/aweme/1080x1080/aweme-avatar/…",
  "gender": 1,
  "city": "广州",
  "province": null,
  "follower": 1426502,
  "cpm": 94,
  "finishOrderCnt": "> 20",
  "repurchaseRate": "> 0.75",
  "itemOrderRate": 0.2472,
  "vvAvg": 188086,
  "industryTags": ["生活"],
  "primaryTag": "随拍",
  "rank": 1,
  "oldRank": 5,
  "score": 0.5261324041811847,
  "isNew": false,
  "rankingBoard": "品牌种草·品牌优选榜",
  "rankingCode": 1,
  "industry": "美妆",
  "industryId": "1930",
  "period": 30,
  "snapshotDate": "20260430",
  "version": "flow_split",
  "source": "ranking",
  "seedStarId": null,
  "similarityType": null,
  "linkStarIndex": null,
  "processingOrderCount30d": null,
  "prospective20_60Cpm": null,
  "expectedPlayNum": null,
  "eCommerceEnable": null,
  "isPlanAuthor": null,
  "tagContentLevelOne": null,
  "taskPriceInfos": [],
  "recommendTypes": [],
  "similarityScore": null,
  "items": [
    {"id": "7593899313596468515", "url": "https://www.douyin.com/video/7593899313596468515", "playCount": 8592286, "videoTag": 3},
    {"id": "7592239296397020468", "url": "https://www.douyin.com/video/7592239296397020468", "playCount": 6001942, "videoTag": 3},
    {"id": "7583559544857513258", "url": "https://www.douyin.com/video/7583559544857513258", "playCount": 2598071, "videoTag": 4},
    {"id": "7616202710781660454", "url": "https://www.douyin.com/video/7616202710781660454", "playCount": 4691225, "videoTag": 5},
    {"id": "7640488401787030790", "url": "https://www.douyin.com/video/7640488401787030790", "playCount": 10131,   "videoTag": 6}
  ]
}
```

#### Similar-row example (when `includeSimilarCreators: true`)

Similar-expansion rows reuse the same 41-field shape but flip the provenance fields and populate four enrichment columns that are `null`/`[]` on ranking rows:

```json
{
  "starId": "7036246438489096229",
  "coreUserId": "1234567890123456",
  "douyinProfileUrl": "https://www.douyin.com/user/1234567890123456",
  "nickName": "阿螺不怕",
  "follower": 1044831,
  "cpm": null,
  "finishOrderCnt": null,
  "repurchaseRate": null,
  "vvAvg": null,
  "rank": null,
  "rankingBoard": null,
  "industry": null,
  "snapshotDate": null,
  "source": "similar_to:7044191734988800014",
  "seedStarId": "7044191734988800014",
  "similarityType": "content",
  "linkStarIndex": 78.42,
  "processingOrderCount30d": 0,
  "prospective20_60Cpm": 25,
  "expectedPlayNum": 1932954,
  "eCommerceEnable": 1,
  "isPlanAuthor": false,
  "tagContentLevelOne": "[{\"label_index\":130,\"label_type\":1,\"name\":\"随拍\",\"parent_index\":0,\"level\":1}]",
  "taskPriceInfos": [
    {"taskCategory": 1, "videoType": 91, "videoTypeStatus": 1, "priceFen": 9600,  "priceCny": 96.0,  "startTime": 1672502400, "endTime": 2145916800},
    {"taskCategory": 1, "videoType": 71, "videoTypeStatus": 1, "priceFen": 51300, "priceCny": 513.0, "startTime": 1759248000, "endTime": 2145916800},
    {"taskCategory": 1, "videoType": 2,  "videoTypeStatus": 1, "priceFen": 25000, "priceCny": 250.0, "startTime": 1759248000, "endTime": 2145916800}
  ],
  "recommendTypes": ["内容相似", "繁星企划达人"],
  "similarityScore": null,
  "items": []
}
```

#### Field reference

| Field | Type | Notes |
|---|---|---|
| `starId` | string | Stable universal creator ID. Joins to other Xingtu data. |
| `coreUserId` | string | Numeric Douyin user ID. |
| `douyinProfileUrl` | string | Direct profile link. Permanent. |
| `nickName` | string | Display name. |
| `avatarUri` | string | Avatar image URL. |
| `gender` | int | `1` = male, `2` = female, `0` = unknown. |
| `city`, `province` | string | null | Self-declared region. May be empty. |
| `follower` | int | Follower count. |
| `cpm` | int | null | Cost per mille in ¥ (ranking source only). |
| `finishOrderCnt` | string | null | Completed brand-deal orders. Bucketed by Xingtu (e.g. `"> 20"`). Ranking source only. |
| `repurchaseRate` | string | null | Client repurchase rate. Bucketed (e.g. `"> 0.75"`). Ranking source only. |
| `itemOrderRate` | float | null | Exact item order rate. Ranking source only. |
| `vvAvg` | int | null | Average video views. |
| `industryTags` | string\[] | Top-level industry tags from Xingtu's `tags_relation`. |
| `primaryTag` | string | null | Primary content tag. |
| `rank`, `oldRank` | int | null | Current and previous rank on this board. Ranking source only. |
| `score` | float | null | Xingtu's composite ranking score. |
| `isNew` | bool | null | New-entrant flag. |
| `rankingBoard` | string | null | Leaderboard display name (e.g. `品牌种草·品牌优选榜`). |
| `rankingCode` | int | null | Numeric leaderboard code. |
| `industry`, `industryId` | string | null | Industry display name and Xingtu qualifier ID. |
| `period` | int | null | `7` = weekly, `30` = monthly. |
| `snapshotDate` | string | null | `YYYYMMDD` of the leaderboard snapshot. |
| `version` | string | null | `flow_split` or `base` depending on the leaderboard. |
| `source` | string | `ranking` or `similar_to:<seedStarId>`. Provenance discriminator. |
| `seedStarId` | string | null | Populated on similar rows — the ranked creator whose lookalikes produced this row. |
| `similarityType` | string | null | The similarity dimension used for the expansion (`content` / `audience` / `commercial` / `comprehension`). |
| `linkStarIndex` | float | null | Xingtu's content-affinity index (similar source only). |
| `processingOrderCount30d` | int | null | Active brand-order count in the last 30 days (similar source only). |
| `prospective20_60Cpm` | int | null | Projected CPM for 20–60s videos (similar source only). |
| `expectedPlayNum` | int | null | Projected play count (similar source only). |
| `eCommerceEnable` | int | null | `1` = e-commerce enabled, `0` = not enabled (similar source only). |
| `isPlanAuthor` | bool | null | Whether the creator is part of Xingtu's commercial plan program (similar source only). |
| `tagContentLevelOne` | string | null | JSON-encoded content-level taxonomy (similar source only). |
| `taskPriceInfos` | object\[] | Rate-card pricing per video type (similar source only). Each entry has `taskCategory`, `videoType` (Xingtu integer code), `videoTypeStatus`, `priceFen` (cents), `priceCny`, `startTime`, `endTime`. |
| `recommendTypes` | string\[] | Why Xingtu recommended this creator (e.g. `["内容相似", "繁星企划达人"]`). Similar source only. |
| `similarityScore` | float | null | Xingtu's similarity score. Often `0` at visitor-level access — use `recommendTypes` to understand the match instead. |
| `items` | object\[] | The creator's top recent videos on this leaderboard. Ranking source only. Each entry: `id` (Douyin video ID, same naming as the other actors in this collection), `url` (constructed `https://www.douyin.com/video/<id>` — feed it straight into Douyin Video / Transcripts / Comments scrapers), `playCount` (播放量 view count, exact int), `videoTag` (Xingtu's internal content-classification code, small int 1–6+). |

### Advanced Usage

#### Monthly competitive intel — all top creators across multiple industries

```json
{
  "industries": ["美妆", "3C及电器", "食品饮料"],
  "creatorType": "all_top",
  "timeWindow": "latest_monthly",
  "maxResults": 1300
}
```

\~441 unique creators per industry × 3 industries ≈ 1,300 rows. One snapshot per month is enough for a competitive overview deck.

#### Historical trend analysis — every monthly snapshot in one industry

```json
{
  "industries": ["美妆"],
  "creatorType": "top_creators",
  "timeWindow": "all_history_monthly",
  "maxResults": 3000
}
```

Returns the brand-premium board for every monthly snapshot Xingtu has published. Same `starId` appears across snapshots so you can compute rank trajectories over time. `dedup_skipped` will be high — that's expected; creators stay on the board across months.

#### Talent scouting with similar expansion (commercial similarity)

```json
{
  "industries": ["3C及电器"],
  "creatorType": "rising_stars",
  "timeWindow": "latest_monthly",
  "maxResults": 250,
  "includeSimilarCreators": true,
  "similarExpandTopN": 20,
  "similarType": "commercial"
}
```

Pulls the latest rising stars (高潜 + 涨粉黑马) and expands each of the top 20 with creators that match on commercial profile (CPM + sales). Use `taskPriceInfos[]` on the similar rows to surface rate-card pricing per video type — those CNY values are exact, not bucketed.

#### Weekly rising-creator monitoring

```json
{
  "industries": ["美妆"],
  "creatorType": "rising_stars",
  "timeWindow": "latest_weekly",
  "maxResults": 200
}
```

Combine with a weekly Apify schedule and filter on `isNew == true` to surface fresh entrants week-over-week. Cross-run dedup via `starId` lets you build a velocity timeline.

### Pricing — Pay Per Event (PPE)

**$7.99 per 1,000 results** on Free and Starter plans. Each row written to the dataset counts as one result — whether from a ranking board or from similar-expansion. One creator, one row, one event. No charge for catalog reads, failed pages, or retries.

| Apify plan | Per 1,000 results |
|---|---|
| Free / Starter | **$7.99** |
| Scale (Silver discount) | **$7.49** |
| Business (Gold discount) | **$6.99** |

The Scale and Business discounts are applied automatically by Apify for subscribers on those plans — you don't need to do anything to claim them.

#### Per-run cost projections

| Scenario | Rows | Bill |
|---|---|---|
| Default run (one industry, brand-premium, monthly) | 100 | $0.80 |
| One industry, `all_top` combined | ~441 unique | $3.52 |
| Cross-industry monthly snapshot (all 6 codes × 3 industries) | ~1,300 unique | $10.39 |
| Power-user with similar expansion (~10k rows) | 10,000 | $79.90 |
| Full historical pull (~100k rows) | 100,000 | $799 |

#### Free tier

**5 lifetime preview runs**, each capped at ~20 results from your first industry's first board. No credit card. Plenty to evaluate the field shape and the buyer-money columns before committing.

### FAQ

**How many creators are on each ranking board?**
Xingtu caps every leaderboard at 100 creators — that's a source-side limit, not ours. Scale comes from combining boards: `all_top` gives ~441 unique creators per industry (six boards, partial overlap), and multi-industry runs multiply that further.

**Why are `finishOrderCnt` and `repurchaseRate` strings like `"> 20"` and `"> 0.75"`?**
That's how Xingtu exposes them to visitor-level access — they're bucketed strings, not exact numbers. Still very usable as tiers (`> 20` brand orders is a strong signal even without the exact count). `cpm`, `vvAvg`, `follower`, and `itemOrderRate` are exact numerics.

**How fresh are the leaderboards?**
Latest monthly snapshots typically have `snapshotDate` from the previous month-end (e.g. `20260430` rolls over to `20260531` early in May). Weekly snapshots update each Monday. Use `all_history_monthly` for trend analysis across historical snapshots.

**How does similar-creator expansion work, and how should I size `maxResults`?**
The pipeline does rankings first, then similar. If `maxResults` is below the ranking yield (~100 per board), the global cap is hit before similar can fire. Set `maxResults` to at least `100 + (similarExpandTopN × 12)` to leave headroom — Xingtu returns up to 12 lookalikes per seed per call, and cross-set dedup runs automatically.

**How are `taskPriceInfos` prices denominated?**
`priceFen` is in 分 (Chinese yuan cents); `priceCny` is the same value as a float in ¥. So `priceFen: 49999` = `priceCny: 499.99` = ¥499.99 for that video type. `videoType` is Xingtu's integer code (1 = short, 2 = mid-length, 71 = 60s+, 91/92 = live-replay, etc.) — exposed verbatim so consumers can map to their own taxonomy.

**Can I join this output to other Douyin actors?**
Yes — `coreUserId` is the Douyin user ID. Feed it into [Douyin Profile Scraper](https://apify.com/zen-studio/douyin-profile-scraper) for the full profile + post history, or into [Douyin Search Scraper](https://apify.com/zen-studio/douyin-search-scraper) and use the matching field on each video. `starId` is Xingtu's universal ID and stays stable across actors in this collection.

**Why are some fields `null` on ranking rows and others `null` on similar rows?**
Ranking and similar come from different upstream surfaces, so the field sets only partially overlap. `cpm`, `finishOrderCnt`, `repurchaseRate`, `itemOrderRate`, `rank`, `rankingBoard`, `snapshotDate`, and the `items[]` array are ranking-only. `linkStarIndex`, `processingOrderCount30d`, `prospective20_60Cpm`, `expectedPlayNum`, `eCommerceEnable`, `isPlanAuthor`, `tagContentLevelOne`, `taskPriceInfos`, `recommendTypes`, and `similarityScore` are similar-only. The `source` discriminator tells you which path produced each row.

**Why doesn't the `家居建材` (Home & Building Materials) industry show up?**
Xingtu publishes `家居建材` only on the lead-collection leaderboards (codes 12–16), which aren't in scope for this actor's v1. Adding it without those boards would yield zero rows for buyers who pick it. Likely v1.1.

**Does the actor work for any Xingtu category?**
Currently the 7 commercial-creator industries listed in the input schema. Live-streamer rankings (different biz scene), app-download leaderboards (codes 7–11), short-drama actor rankings, and lead-collection boards are all v1.1 candidates — open a Feature request if you need one of these.

**Can I get the full creator dossier (audience demographics, bio, posting cadence) from this actor?**
Not in this actor — that's a separate dossier actor scoped for v1.1. This actor covers discovery (rankings + lookalikes); join to Profile Scraper for the deep per-creator view.

**Is the data real-time?**
Catalog reads are live; ranking-list data reflects the latest snapshot Xingtu has published (monthly or weekly cadence — see the freshness FAQ above). No caching on our side.

### Support

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

### Legal Compliance

Returns publicly available data from Douyin's Xingtu (巨量星图) creator-marketplace leaderboards. Users must comply with Douyin's and Xingtu's terms of service, and applicable data-protection regulations (GDPR, CCPA) when storing or processing the output.

***

*Top Douyin commercial creators, ranked — with CPM rates, brand-order metrics, follower counts, and a stable creator ID. One row per creator, in clean JSON.*

# Actor input Schema

## `industries` (type: `array`):

Pick one or more industries. Each industry runs independently.<br><br>Some combinations of <b>creator type</b> may not be available for every industry — the actor will silently skip any combos with no published leaderboard.

## `creatorType` (type: `string`):

Which kind of creators to pull from the Xingtu leaderboards.<br><br>• <b>Top creators</b> — best for brand deals (品牌优选榜)<br>• <b>Rising stars</b> — fast-growing, high-potential breakouts<br>• <b>Sales champions</b> — top by completed brand orders & e-commerce sales<br>• <b>Viral content drivers</b> — best at sparking searches & engagement (A3种草 + 看后搜)<br>• <b>Paid-ad performers</b> — highest ROI on paid promotion<br>• <b>Head-tier mega creators</b> — the most-booked head creators<br>• <b>All top creators (combined)</b> — power-user mega-run, combines all 6 brand-seeding boards

## `timeWindow` (type: `string`):

<b>Latest monthly</b> is the recommended default — fresh rankings, clean data. Use <b>All historical monthly</b> for trend analysis (much larger result set).

## `maxResults` (type: `integer`):

Hard cap on emitted rows. Each unique creator counts toward your bill.<br><br>Defaults to 100 (one board's worth). Bump higher only if you've picked <b>All top creators</b> or multiple industries.

## `includeSimilarCreators` (type: `boolean`):

Adds a second pass: for each ranked creator (top N per board), pulls similar creators via Xingtu's lookalike graph. Each lookalike counts as one result (same price). Use this to discover emerging creators below the top-100 cap.<br><br><b>Tip:</b> rankings load first, then similar. If <b>Max results</b> is below the ranking total (~100 per board), similar never fires. Set Max results to at least <code>100 + (top-N seeds × 12)</code> for similar to have room to emit.

## `similarExpandTopN` (type: `integer`):

Only matters when the toggle above is ON. For each ranked creator board, the first N rows become 'seeds' for similar-creator expansion. Higher N = more lookalikes, more cost.

## `similarType` (type: `string`):

Which similarity dimension Xingtu uses to score lookalikes.<br><br>• <b>Content</b> — content style + topics (default; good general lookalikes)<br>• <b>Audience</b> — audience overlap<br>• <b>Commercial</b> — commercial profile (CPM, sales)<br>• <b>Comprehensive</b> — weighted combination

## Actor input object example

```json
{
  "industries": [
    "美妆"
  ],
  "creatorType": "top_creators",
  "timeWindow": "latest_monthly",
  "maxResults": 100,
  "includeSimilarCreators": false,
  "similarExpandTopN": 20,
  "similarType": "content"
}
```

# Actor output Schema

## `creators` (type: `string`):

Link to the dataset containing all ranked and similar Douyin commercial creators.

# 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 = {
    "industries": [
        "美妆"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/douyin-xingtu-rankings-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 = { "industries": ["美妆"] }

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/douyin-xingtu-rankings-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 '{
  "industries": [
    "美妆"
  ]
}' |
apify call zen-studio/douyin-xingtu-rankings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=zen-studio/douyin-xingtu-rankings-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Douyin (Xingtu) Creator Rankings - Brand-Deal KOLs with Rates",
        "description": "Extract top Douyin (抖音) commercial creators with CPM rates, follower counts, brand-order metrics, and stable creator IDs from Xingtu (巨量星图) leaderboards. 7 industries: 美妆, 3C及电器, 食品饮料, 服装配饰, 汽车, 母婴宠物, 日化. Bucketed repurchase rates, top videos, optional similar-creator (达人) expansion. JSON/CSV/Excel.",
        "version": "0.0",
        "x-build-id": "GMvJcUjYEH8IsEOYV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/zen-studio~douyin-xingtu-rankings-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-zen-studio-douyin-xingtu-rankings-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~douyin-xingtu-rankings-scraper/runs": {
            "post": {
                "operationId": "runs-sync-zen-studio-douyin-xingtu-rankings-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~douyin-xingtu-rankings-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-zen-studio-douyin-xingtu-rankings-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": [
                    "industries",
                    "creatorType",
                    "timeWindow"
                ],
                "properties": {
                    "industries": {
                        "title": "🎯 Industry",
                        "minItems": 1,
                        "type": "array",
                        "description": "Pick one or more industries. Each industry runs independently.<br><br>Some combinations of <b>creator type</b> may not be available for every industry — the actor will silently skip any combos with no published leaderboard.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "美妆",
                                "3C及电器",
                                "食品饮料",
                                "服装配饰",
                                "汽车",
                                "母婴宠物",
                                "日化"
                            ],
                            "enumTitles": [
                                "Beauty (美妆)",
                                "3C & Electronics (3C及电器)",
                                "Food & Beverage (食品饮料)",
                                "Apparel & Accessories (服装配饰)",
                                "Automotive (汽车)",
                                "Mother & Baby & Pets (母婴宠物)",
                                "Household Goods (日化)"
                            ]
                        },
                        "default": [
                            "美妆"
                        ]
                    },
                    "creatorType": {
                        "title": "👥 Creator type",
                        "enum": [
                            "top_creators",
                            "rising_stars",
                            "sales_champions",
                            "viral_drivers",
                            "paid_ad_performers",
                            "head_tier",
                            "all_top"
                        ],
                        "type": "string",
                        "description": "Which kind of creators to pull from the Xingtu leaderboards.<br><br>• <b>Top creators</b> — best for brand deals (品牌优选榜)<br>• <b>Rising stars</b> — fast-growing, high-potential breakouts<br>• <b>Sales champions</b> — top by completed brand orders & e-commerce sales<br>• <b>Viral content drivers</b> — best at sparking searches & engagement (A3种草 + 看后搜)<br>• <b>Paid-ad performers</b> — highest ROI on paid promotion<br>• <b>Head-tier mega creators</b> — the most-booked head creators<br>• <b>All top creators (combined)</b> — power-user mega-run, combines all 6 brand-seeding boards",
                        "default": "top_creators"
                    },
                    "timeWindow": {
                        "title": "📅 Time window",
                        "enum": [
                            "latest_weekly",
                            "latest_monthly",
                            "all_history_monthly",
                            "all_history_weekly"
                        ],
                        "type": "string",
                        "description": "<b>Latest monthly</b> is the recommended default — fresh rankings, clean data. Use <b>All historical monthly</b> for trend analysis (much larger result set).",
                        "default": "latest_monthly"
                    },
                    "maxResults": {
                        "title": "📊 Max results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Hard cap on emitted rows. Each unique creator counts toward your bill.<br><br>Defaults to 100 (one board's worth). Bump higher only if you've picked <b>All top creators</b> or multiple industries.",
                        "default": 100
                    },
                    "includeSimilarCreators": {
                        "title": "🔗 Include similar creators",
                        "type": "boolean",
                        "description": "Adds a second pass: for each ranked creator (top N per board), pulls similar creators via Xingtu's lookalike graph. Each lookalike counts as one result (same price). Use this to discover emerging creators below the top-100 cap.<br><br><b>Tip:</b> rankings load first, then similar. If <b>Max results</b> is below the ranking total (~100 per board), similar never fires. Set Max results to at least <code>100 + (top-N seeds × 12)</code> for similar to have room to emit.",
                        "default": false
                    },
                    "similarExpandTopN": {
                        "title": "Expand top N seeds per board",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Only matters when the toggle above is ON. For each ranked creator board, the first N rows become 'seeds' for similar-creator expansion. Higher N = more lookalikes, more cost.",
                        "default": 20
                    },
                    "similarType": {
                        "title": "Similarity dimension",
                        "enum": [
                            "content",
                            "comprehension",
                            "audience",
                            "commercial"
                        ],
                        "type": "string",
                        "description": "Which similarity dimension Xingtu uses to score lookalikes.<br><br>• <b>Content</b> — content style + topics (default; good general lookalikes)<br>• <b>Audience</b> — audience overlap<br>• <b>Commercial</b> — commercial profile (CPM, sales)<br>• <b>Comprehensive</b> — weighted combination",
                        "default": "content"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
