# Douyin Creator Scraper (`happy_b/douyin-creator-scraper`) Actor

Discover Douyin creators and influencers by keyword, follower range, and verification. Export exact audience counts, stable IDs, profile links, and up to 34 typed fields, with optional full-profile enrichment for research, lead generation, and creator analysis.

- **URL**: https://apify.com/happy\_b/douyin-creator-scraper.md
- **Developed by:** [Happy B](https://apify.com/happy_b) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 2 total users, 1 monthly users, 83.3% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.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/actors/running/actors-in-store.md#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

### What is Douyin Creator Scraper?

Douyin Creator Scraper is a **Douyin influencer discovery and user-search Actor**. Enter a niche, creator name, product, or brand and receive structured public account data with reported follower counts, stable IDs, verification details, and optional full-profile enrichment.

It is built for agencies, brands, researchers, and data teams that need searchable Douyin (抖音 / Chinese TikTok) creator data without configuring a login, cookies, a browser, or a proxy.

### Why use this Douyin creator scraper?

- **Search up to 50 terms per run.** Keep the matching term in every row as `sourceQuery`.
- **Use Douyin audience filters.** Narrow discovery by follower band before results are returned.
- **Use Douyin's real account filters.** Choose regular, enterprise-verified, personal-verified, or all accounts.
- **Buy only the detail you need.** Standard search cards are cheaper; full-profile enrichment is optional.
- **Export up to 34 typed fields.** Audience counters are returned as exact integers, while large creator IDs stay strings so spreadsheets and JavaScript do not round them.
- **Get automation-ready output.** Export JSON, CSV, Excel, XML, HTML, or JSONL and connect schedules, webhooks, Make, Zapier, or the Apify API.
- **Control every run's spend.** The Actor respects the maximum charge selected for the run.

### How to scrape Douyin creators

1. Add one or more search terms such as `美食`, `户外露营`, or a brand name.
2. Choose the maximum creators per term and any follower or account-type filter.
3. Enable **Include full profile details** if you also need following/post counts, region, language, verification, and other observed profile fields.
4. Run the Actor and open the **Creators** dataset.

#### Input example

```json
{
  "searchQueries": ["美食", "户外露营"],
  "maxCreatorsPerQuery": 100,
  "followerRange": "10k_100k",
  "creatorType": "personal_verified",
  "includeProfileDetails": true
}
```

Duplicate terms are removed before scraping. Chinese and Latin text are supported.

### What data can I extract?

Each dataset item is one creator matched by one search term.

| Field | Description |
|---|---|
| `sourceQuery` | Search term that returned the creator |
| `uid`, `secUid` | Numeric and stable encoded account IDs |
| `uniqueId` | Public Douyin ID or handle |
| `nickname` | Public display name |
| `avatarThumbUrl`, `avatarMediumUrl`, `avatarLargerUrl` | Documented avatar variants |
| `avatarUrl`, `profileUrl` | Derived preferred avatar and canonical profile link |
| `followerCount` | Follower count reported by Douyin |
| `enterpriseVerifyReason`, `versatileDisplay` | Search-card verification and ID display text |
| `liveStatus` | Public live-broadcast state when available |
| `signature` | Biography when available or enriched |
| `followingCount`, `awemeCount` | Following and published-post counts when enriched |
| `totalFavorited` | Total likes received when enriched |
| `verified`, `customVerify`, `verificationType` | Full-profile verification values when enriched |
| `privateAccount`, `commerceUser` | Normalized account flags when enriched |
| `gender`, `region`, `location`, `language` | Observed profile attributes when available |
| `insId`, `twitterId`, `youtubeChannelId` | Linked account identifiers when enriched and published |
| `profileDetailsIncluded` | Whether full-profile enrichment was enabled |
| `scrapeTimestamp` | UTC time when the row was produced |

Fields that Douyin does not publish for an account are omitted.

Follower, following, post, and like counts are returned as reported integers—not abbreviated labels such as `42.8K`. IDs that can exceed JavaScript's safe integer range are serialized as strings.

The output follows the published dataset schema. The example below is illustrative and does not represent a specific person or captured live row.

#### Output example

```json
{
  "sourceQuery": "美食",
  "uid": "1794056268286942",
  "secUid": "MS4wLjABAAAA...",
  "uniqueId": "example_creator",
  "nickname": "示例创作者",
  "followerCount": 42800,
  "followingCount": 310,
  "awemeCount": 186,
  "gender": 0,
  "liveStatus": 0,
  "verified": true,
  "customVerify": "个人认证示例",
  "profileUrl": "https://www.douyin.com/user/MS4wLjABAAAA...",
  "profileDetailsIncluded": true,
  "scrapeTimestamp": "2026-08-26T12:00:00.000Z"
}
```

### Input reference

| Parameter | Type | Default | Limits | Description |
|---|---|---:|---:|---|
| `searchQueries` | string\[] | required | 1–50 | Creator discovery terms |
| `maxCreatorsPerQuery` | integer | `50` | 1–5,000 | Maximum rows for each unique term |
| `followerRange` | string | `any` | — | Douyin follower band |
| `creatorType` | string | `any` | — | Regular, enterprise-verified, personal-verified, or any |
| `includeProfileDetails` | boolean | `false` | — | Enrich each result with a full public profile |

### Reliable results and billing

Interrupted runs can continue without duplicating creators already delivered. Repeated creator matches are removed, charges track unique rows in the dataset, and incomplete work is reported with a clear sanitized error instead of questionable data.

### How much does Douyin creator data cost?

You pay for each creator returned. Full-profile details are optional, and their total per-creator price is shown separately below. Interrupted runs do not charge the same delivered creator twice.

#### Standard creator result

| Apify tier | Per creator | Per 1,000 creators |
|---|---:|---:|
| Free | $0.00799 | $7.99 |
| Bronze | $0.00599 | $5.99 |
| Silver | $0.00549 | $5.49 |
| Gold | $0.00499 | $4.99 |

#### Creator with full profile

| Apify tier | Per creator | Per 1,000 creators |
|---|---:|---:|
| Free | $0.01099 | $10.99 |
| Bronze | $0.00849 | $8.49 |
| Silver | $0.00799 | $7.99 |
| Gold | $0.00699 | $6.99 |

An additional $0.001 run-start charge applies.

Platinum and Diamond users receive the listed Gold price.

| Example on the Free tier | Estimated cost |
|---|---:|
| 50 standard creators | $0.401 |
| 50 creators with full profiles | $0.551 |
| 2 terms × 100 standard creators | $1.599 |

Examples include the run-start charge. Actual output can be lower than the requested maximum when fewer matching public accounts exist. You are charged only for rows written to the dataset.

### Common use cases

- Influencer discovery and creator shortlisting
- Brand, niche, and competitor research
- Verified-account and commerce-account discovery
- Public audience-size segmentation
- Scheduled creator snapshots for growth analysis
- Building a candidate list for a separate, compliant outreach workflow

### Integrations

Use the Actor with Apify Schedules, Webhooks, API clients, Make, Zapier, Google Sheets, Slack, or any system that accepts JSON, CSV, Excel, XML, HTML, or JSONL exports.

### FAQ

#### Do I need a Douyin account or cookie?

No. The Actor does not ask you for login credentials or cookies.

#### Does the Actor search videos?

No. It searches public accounts. Use the related Trend Actor for topic intelligence, or start from a returned `secUid` in the Profile Actor.

#### Why are some full-profile fields missing?

Douyin does not publish every attribute for every account. Private accounts and account settings can also limit public fields.

#### Can I schedule recurring searches?

Yes. Save the input as an Apify task, attach a schedule, and use a webhook or integration to send each completed dataset downstream.

### Related Douyin Actors

| Actor | Best for |
|---|---|
| [Douyin Profile Scraper](https://apify.com/happy_b/douyin-profile-scraper) | Resolve known profile URLs or IDs and optionally collect public posts |
| [Douyin Trend Scraper](https://apify.com/happy_b/douyin-trend-scraper) | Export current hot/rising topics or keyword interest over time |

### Legal and responsible use

This Actor extracts publicly available data. You are responsible for your lawful basis, retention, outreach, profiling, and other downstream processing. Review Douyin's [User Service Agreement](https://www.douyin.com/agreements/?id=6773906068725565448), [Privacy Policy](https://www.douyin.com/privacy/), and all laws that apply to your use case, including personal-data and platform-access rules.

### Support

For a bug or feature request, [open an Apify issue](https://apify.com/happy_b/douyin-creator-scraper/issues/open). Include the run ID, affected search term, expected behavior, and input with sensitive values removed.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords, niches, names, or brands to use for creator discovery. Chinese and Latin text are supported.

## `maxCreatorsPerQuery` (type: `integer`):

Maximum number of separately charged creator rows returned for each unique query.

## `followerRange` (type: `string`):

Limit results by audience size.

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

Limit results using Douyin's public user-search account type filter.

## `includeProfileDetails` (type: `boolean`):

Resolve each result into a full profile with following/post counts, region, language, verification, and other observed public fields. Every enriched row receives the documented profile-enrichment add-on charge in addition to its base row charge.

## Actor input object example

```json
{
  "searchQueries": [
    "美食",
    "旅行"
  ],
  "maxCreatorsPerQuery": 50,
  "followerRange": "any",
  "creatorType": "any",
  "includeProfileDetails": false
}
```

# Actor output Schema

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

One dataset item per creator matched by a search query.

## `metadata` (type: `string`):

Completion state, result counts, applied filters, and sanitized errors.

# 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 = {
    "searchQueries": [
        "美食",
        "旅行"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("happy_b/douyin-creator-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 = { "searchQueries": [
        "美食",
        "旅行",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("happy_b/douyin-creator-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 '{
  "searchQueries": [
    "美食",
    "旅行"
  ]
}' |
apify call happy_b/douyin-creator-scraper --silent --output-dataset

```

## MCP server setup

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