# Douyin Hot Search Scraper - 抖音热搜榜 Trending Topics (`zaver.api/douyin-hot-search-scraper`) Actor

Scrape Douyin hot search (抖音热搜榜) without the Douyin API: the live top 50 trending topics plus entertainment, society, challenge and seeding boards, with rank, heat value, views and links. No account, no cookies, no start fee. CSV, Excel or JSON.

- **URL**: https://apify.com/zaver.api/douyin-hot-search-scraper.md
- **Developed by:** [Zaver](https://apify.com/zaver.api) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 1,000 scraped results

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 Hot Search Scraper — 抖音热搜榜 Trending Topics in Real Time

**Scrape the Douyin hot search list without the Douyin API.** Get the live 抖音热榜 (top 50 trending topics) plus the entertainment, society, challenge and seeding boards, each with rank, heat value, view count and video count. No Douyin account, no cookies, no Chinese phone number. Pay per topic, no start fee.

> ⭐ 抖音热榜 top 50 · 娱乐榜 · 社会榜 · 挑战榜 · 种草榜 · rising topics · heat and view counts · links to each topic · built for hourly schedules · API and MCP ready

### What does Douyin Hot Search Scraper do?

Douyin (抖音, the Chinese version of TikTok) publishes ranked lists of what its users are searching and watching right now. This Actor exports those lists as clean rows, one per topic.

| Board | Chinese name | What it shows |
|---|---|---|
| `hot` | 抖音热榜 | The main hot search list: top 50 plus the pinned topic |
| `entertainment` | 娱乐榜 | Celebrities, films, music and shows |
| `society` | 社会榜 | News and social issues |
| `challenge` | 挑战榜 | Trending challenges and formats |
| `seeding` | 种草榜 | Product and lifestyle recommendations |
| `rising` | 上升热点 | Topics climbing fastest, returned with the main board |

Every run is a snapshot of the boards at that moment. Schedule it hourly and you have a time series of Douyin trends.

### What data does it extract?

| Field | Description |
|---|---|
| `word` | The trending topic, as shown on Douyin |
| `rank` | Position on the board, 1 to 50. The pinned topic has rank 0 |
| `board`, `boardName` | Which board the row comes from, in English and Chinese |
| `hotValue` | Douyin's heat score for the topic |
| `viewCount` | Views of the topic's videos |
| `videoCount` | Number of featured videos under the topic |
| `label` | `new` for 新, `hot` for 热, with the raw `labelCode` |
| `maxRank` | Best rank the topic has reached |
| `eventTime` | When the topic started trending, ISO 8601 (UTC) |
| `url`, `searchUrl` | Link to the topic page and to its search results on Douyin |
| `cover` | Topic cover image, when there is one |
| `isPinned` | `true` for the editorially pinned topic at the top |
| `boardUpdatedAt` | When Douyin last refreshed the board |
| `sentenceId`, `groupId` | Douyin's own IDs, for joining snapshots over time |

### A Douyin API alternative

Douyin's Open Platform API is available only to registered Chinese entities, and its hot-list endpoints require an approved application. Tools that read Douyin from a browser need a logged-in cookie that expires and a Chinese phone number to renew it.

This Actor is a **Douyin API alternative** for trend data. It works **without the Douyin API**: no developer account, no cookie, no login, no API pricing to negotiate.

| | Douyin Open Platform or cookie-based tools | This Actor |
|---|---|---|
| Access | Chinese business registration, or a logged-in account | Anyone |
| Maintenance | Cookies expire and must be renewed | None |
| Boards | Varies | Five boards plus rising topics |
| Output | API objects | Flat rows: CSV, Excel, JSON |

### Why use this Douyin trends scraper

#### Five boards in one run

Most tools return only the main list. Here one run covers the main hot list, entertainment, society, challenges and seeding, about 255 topics.

#### Built for scheduling

A full run takes a few seconds. There is no start fee, so an hourly schedule costs the same per topic as a single run.

#### Heat and view counts, not just names

Each topic comes with its heat score, view count and peak rank, so you can measure how big a trend is and whether it is rising or fading.

#### No account, no cookies

Nothing to log in to and nothing that expires.

### How to scrape Douyin hot search

1. Open the Actor and choose the **Boards** you want. The main hot list is selected by default.
2. Optionally lower **Max topics per board** if you only need the top 10 or 20.
3. Press **Start**. The run finishes in seconds.
4. Export as CSV, Excel, JSON or XML, or read the dataset through the API.
5. To track trends, add a schedule and keep appending to the same dataset.

### Input example

```json
{
  "boards": [
    "hot",
    "entertainment",
    "society",
    "challenge",
    "seeding"
  ],
  "maxItemsPerBoard": 50,
  "includeRising": true
}
```

| Field | Type | Description |
|---|---|---|
| `boards` | array | Which trend boards to scrape. Each holds up to 50 topics. Default `["hot"]`. |
| `maxItemsPerBoard` | integer | Top N topics of each board. The pinned topic on the main board is returned in addition. Default `50`. |
| `includeRising` | boolean | Add the short list of fastest-rising topics (上升热点) that Douyin shows next to the hot list. Default `true`. |
| `maxItems` | integer | Hard cap on topics for the whole run. 0 means no cap. |

### Output example

```json
{
  "type": "hot_topic",
  "board": "hot",
  "boardName": "抖音热榜",
  "rank": 2,
  "word": "我在这里给祖国庆生",
  "hotValue": 11488534,
  "viewCount": 59498163,
  "videoCount": 3,
  "label": "hot",
  "labelCode": 3,
  "isPinned": false,
  "maxRank": 1,
  "eventTime": "2026-09-30T06:51:31Z",
  "sentenceId": "2674853",
  "url": "https://www.douyin.com/hot/2674853",
  "searchUrl": "https://www.douyin.com/search/%E6%88%91%E5%9C%A8%E8%BF%99%E9%87%8C%E7%BB%99%E7%A5%96%E5%9B%BD%E5%BA%86%E7%94%9F",
  "boardUpdatedAt": "2026-10-01 00:06:37"
}
```

### Pricing

Pay per result. **No start fee, no monthly rental, no minimum.**

| Event | Charged for | Price |
|---|---|---|
| `hot-topic-scraped` | each trending topic delivered | **$4.99 / 1,000** |

| You export | You pay |
|---|---|
| The main hot list (51 topics) | **$0.25** |
| All five boards plus rising (about 255 topics) | **$1.27** |
| The main hot list every hour for a month (about 36,700 topics) | **$183** |

You are charged right after each batch lands in your dataset, so a run you stop early costs only what it delivered. Proxies, when needed, are included.

### Use cases

#### China social listening

See what Chinese consumers are talking about today. Combine the society and entertainment boards for a daily picture of public attention.

#### Trend forecasting for brands and agencies

Track the challenge and seeding boards to spot formats and product categories before they peak, and brief campaigns while the trend is still rising.

#### Content planning for creators

Find the topics with high heat and few featured videos. Those are the ones with room for new content.

#### News and media monitoring

Newsrooms and analysts can log the main board every hour and measure how long each story stays in the top 50.

#### Market research and dashboards

Load hourly snapshots into a warehouse and chart rank and heat over time. `sentenceId` stays the same across snapshots, so joins are simple.

#### AI and trend datasets

Build a dated dataset of Chinese trending topics for forecasting models or LLM pipelines.

### FAQ

**Do I need a Douyin account, cookie or API key?**
No. It works without the Douyin API and without logging in.

**Is scraping Douyin legal?**
This is general information, not legal advice. The Actor collects only trending topics that Douyin shows publicly to every visitor, and never logs in. The boards contain topic names and aggregate numbers, not personal data. Whether your use is lawful depends on where you are and what you do with the data, and Douyin's terms restrict automated access. Use the data for research and monitoring, and ask a lawyer before building a commercial product on it.

**How often do the boards change?**
Douyin refreshes them every few minutes. Each row carries `boardUpdatedAt`.

**How many topics do I get?**
Up to 51 on the main board (50 ranked plus one pinned), 50 on each other board, and 5 rising topics. A run with all boards returns about 255 rows.

**Are the topics in Chinese?**
Yes. Topics are returned exactly as Douyin shows them. Pass `word` to any translation step in your pipeline if you need English.

**Does it return the videos under each topic?**
No. It returns the topic, its numbers and a link to its page. Video lists need a logged-in session.

**Is this TikTok?**
No. Douyin is the separate app ByteDance runs in mainland China. For TikTok, see the [TikTok Hashtag Scraper](https://apify.com/zaver.api/tiktok-hashtag-scraper).

**What does rank 0 mean?**
It is the topic Douyin pins above the list. It has no heat value. Filter on `isPinned` to drop it.

**Can I run it on a schedule?**
Yes, and that is the intended use. Hourly or every ten minutes both work.

### Integrations

- **Apify API** - start runs and fetch datasets from Python, Node.js, cURL or any HTTP client.
- **MCP server** - call this Actor as a tool from Claude, Cursor, ChatGPT agents and any MCP client.
- **No-code** - Make, Zapier, n8n, Google Sheets, Airtable, Slack, webhooks.
- **Schedules** - run hourly or daily and append to the same dataset to build history.
- **Exports** - JSON, JSONL, CSV, Excel (XLSX), XML, HTML table.

### Related actors

**Douyin and China**

- [Douyin Profile Scraper](https://apify.com/zaver.api/douyin-profile-scraper) - followers, likes, bio and Douyin ID of any profile
- [Bilibili Scraper](https://apify.com/zaver.api/bilibili-scraper) - video stats, comments and keyword search

**TikTok and social**

- [TikTok Hashtag Scraper](https://apify.com/zaver.api/tiktok-hashtag-scraper) - videos by hashtag
- [TikTok Followers Scraper](https://apify.com/zaver.api/tiktok-followers-scraper) - followers and following lists
- [Telegram Channel Scraper](https://apify.com/zaver.api/telegram-channel-scraper) - posts, views, reactions and media
- [Reddit Scraper](https://apify.com/zaver.api/reddit-scraper) - posts, comments, search, users and communities

### Credits

Request signing uses the `a_bogus` implementation from the open-source [Douyin\_TikTok\_Download\_API](https://github.com/Evil0ctal/Douyin_TikTok_Download_API) project (Apache License 2.0).

***

*Not affiliated with, endorsed by or sponsored by Douyin or ByteDance. This Actor reads only what Douyin shows publicly to a logged-out visitor and does not log in. You are responsible for using the data in line with applicable laws and Douyin's terms.*

# Actor input Schema

## `boards` (type: `array`):

Which trend boards to scrape. Each holds up to 50 topics.

## `maxItemsPerBoard` (type: `integer`):

Top N topics of each board. The pinned topic on the main board is returned in addition.

## `includeRising` (type: `boolean`):

Add the short list of fastest-rising topics (上升热点) that Douyin shows next to the hot list.

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

Hard cap on topics for the whole run. 0 means no cap.

## Actor input object example

```json
{
  "boards": [
    "hot"
  ],
  "maxItemsPerBoard": 50,
  "includeRising": true,
  "maxItems": 0
}
```

# Actor output Schema

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

All dataset items.

## `resultsCsv` (type: `string`):

CSV download.

## `runSummary` (type: `string`):

Counts for the run.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("zaver.api/douyin-hot-search-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("zaver.api/douyin-hot-search-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 '{}' |
apify call zaver.api/douyin-hot-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zaver.api/douyin-hot-search-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/6ia1F5fin3Sv3zHSh/builds/CfWrZTpULGMhYWI2B/openapi.json
