# China Hot Search API – Douyin Hot Search, Weibo, Baidu, Zhihu (`deadc0dex/china-hot-search`) Actor

Chinese hot search API, China trending topics, no login: Douyin hot search, Weibo hot search, Baidu hot search, Zhihu hot list (抖音热搜/微博热搜/百度热搜/知乎热榜), Kuaishou, Toutiao, Bilibili popular/hot search, Tencent News, Douban hot movies, Maoyan box office, Tieba, 36Kr, ThePaper, ITHome, Hupu. $0.003/trend.

- **URL**: https://apify.com/deadc0dex/china-hot-search.md
- **Developed by:** [AsiaData](https://apify.com/deadc0dex) (community)
- **Categories:** News, Social media, AI
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 trend row (hot-list topic or box-office film)s

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

## China Hot Search API – 热搜 Trends from Douyin, Weibo, Baidu, Zhihu and 12 more

**China Trends Hub** is a Chinese hot search API: **Douyin hot search (抖音热搜), Weibo hot search (微博热搜), Baidu hot search (百度热搜) and Zhihu hot list (知乎热榜)** plus Kuaishou, Toutiao, **Bilibili popular, ranking & hot search (B站热搜)**, **Douban hot movies**, Maoyan box office, Tieba, 36Kr, ThePaper, **ITHome (IT之家)**, Hupu, **Tencent News (腾讯新闻) and Sina News (新浪热搜)**: 29 boards from 16 platforms in **one call**, as clean JSON trending-topic rows (rank, title, heat, label, url). No login, no cookies, no proxy needed.

- **One call, many boards:** leave the input empty for 10 default hot lists, or pick boards with `boards: ["douyin_hot", "weibo_hot", "baidu_realtime"]`.
- **Monitoring built in:** `deltaKey` adds `isNew`, `rankChange`, `heatChange`, `peakRank`, `minutesOnBoard`; `onlyNew: true` returns only topics you have not seen yet; the summary lists `leftBoard` (topics that dropped off since the last run, free).
- **Paste a board link:** `urls: ["https://s.weibo.com/top/summary", "https://top.baidu.com/board?tab=realtime"]` is fetched as those boards.
- **Completeness you can check:** the summary row has `isPartial`, the limits you asked for, and `boardStats` per board (rows fetched, kept by filters, returned, fields that board never provides).
- **Keyword watchlist:** `keywords: ["AI", "华为", "Tesla"]` keeps only matching topics; English names are matched in Chinese too (Huawei → 华为).
- **Cross-platform clusters (free):** see which topic trends on Weibo, Baidu, Douyin and Toutiao at the same time.
- **Full articles:** 36Kr, ThePaper and IT之家 hot articles as Markdown.
- **Maoyan box office:** real-time today or any day of the last 365 days.
- **Predictable cost:** **$0.003 per trend row**, $0.002 per news article, free error / summary / cluster rows, `maxCostUsd` cap, free `dryRun`.

Unofficial; not affiliated with any of the platforms listed.

### For AI agents

Call with an array input; nothing is required. Every row has `type, operation, input, queryUsed, id, url, fetchedAt`; the last row is `type: "summary"` (counts, cost, failed boards, `isPartial`, `boardStats`, `nextSteps`). `null` means the platform does not show that value; `0` is a real zero. Bad input never fails the run: you get a free `type: "error"` row with `errorCode`, `message` and `fix`.

| Goal | Copy-paste input |
|---|---|
| Fast check, fewest tokens (the prefill, < 5 s) | `{"boards":["douyin_hot","weibo_hot","baidu_realtime"],"maxItemsPerInput":10,"outputMode":"lean"}` |
| Default 10 hot lists | `{}` |
| Paste board links | `{"urls":["https://s.weibo.com/top/summary","https://www.zhihu.com/hot"],"maxItemsPerInput":10}` |
| Bilibili hot search, Tencent News, Sina hot search | `{"boards":["bilibili_hot_search","tencent_news_hot","sina_hot"],"maxItemsPerInput":10}` |
| Brand / keyword watch with rank change | `{"operation":"hot_lists","boards":["zhihu_hot","toutiao_hot","bilibili_popular"],"keywords":["AI","华为"],"deltaKey":"brand-watch"}` |
| Only new topics since last run (schedule it) | `{"boards":["weibo","douyin","baidu"],"deltaKey":"my-monitor","onlyNew":true}` |
| Topics trending on 2+ platforms | `{"operation":"trend_clusters","boards":["douyin","weibo","baidu","zhihu","toutiao"]}` |
| Hot lists + free clusters | `{"boards":["weibo","baidu","toutiao"],"include":["clusters"]}` |
| Full text of 36Kr hot articles | `{"operation":"news_articles","boards":["kr36_hot"],"maxItemsPerInput":5}` |
| Full text of given articles | `{"operation":"news_articles","urls":["https://www.36kr.com/p/4022353646555013"]}` |
| China box office now | `{"operation":"box_office"}` |
| Box office on past days | `{"operation":"box_office","dates":["2026-10-01","2026-10-02"]}` |
| Highest heat across all boards | `{"boards":["all"],"sortBy":"heat","maxItems":50}` |
| Board list, fields, prices (free) | `{"operation":"capabilities"}` |
| Cost estimate (free) | `{"boards":["douyin_hot"],"dryRun":true}` |

**Operations:** `auto` (default: urls → news_articles, dates → box_office, otherwise hot_lists), `hot_lists`, `news_articles`, `box_office`, `trend_clusters`, `capabilities`.
**Output modes:** `compact` (default), `full` (every field), `lean` (platform, rank, title, heat, url, rankChange – about 50 tokens per row; a url that follows the board's pattern is replaced by `id`, patterns in `summary.urlPatterns`), `table` (flat CSV columns). `leanFormat: "table"` also writes one TSV table (record `LEAN_TABLE`).
**Control:** `fields[]`, `include[]` (`clusters`, `body`), `maxItems` (default 200), `maxItemsPerInput` (rows per board, default 20), `minHeat`, `excludePinned`, `sortBy` (`rank`, `heat`, `rankChange`), `dedupe`, `maxCostUsd`, `dryRun`, `expandQuery`.
**Legacy names accepted:** `platforms` = `boards`, `maxResultsPerBoard` / `maxItemsPerPlatform` = `maxItemsPerInput`, `onlyNew` + `memoryName` = `deltaKey`, `skipPinned` = `excludePinned`.

### Boards

| Platform | Board ids (default set in bold) | Rows | heat = |
|---|---|---|---|
| Douyin hot search 抖音热榜 | **`douyin_hot`**, `douyin_trending` (rising) | 50 + 5 | hot value |
| Weibo hot search 微博热搜 | **`weibo_hot`** | ~52 (pinned + ads flagged, `category` such as 民生新闻 / 艺人 / 财经) | search count |
| Baidu hot search 百度热搜 | **`baidu_realtime`**, `baidu_novel`, `baidu_movie`, `baidu_teleplay`, `baidu_car`, `baidu_livelihood`, `baidu_finance`, `baidu_game` | 10-51 | hot score |
| Zhihu hot list 知乎热榜 | **`zhihu_hot`** | 30 | 热度 |
| Kuaishou hot list 快手热榜 | **`kuaishou_hot`** | ~50 | hot value |
| Toutiao hot board 头条热榜 | **`toutiao_hot`** | 50 + pinned | hot value |
| Bilibili popular / ranking / hot search | **`bilibili_popular`**, `bilibili_ranking`, `bilibili_hot_search` (B站热搜 trending searches) | 50 / 100 / 50 | views (ranking: score or views; hot search: none) |
| Douban movies & TV 豆瓣 | **`douban_movie_hot`**, `douban_showing`, `douban_tv_hot`, `douban_top250` | 10-50 | hot score (hot movies) |
| Maoyan box office 猫眼票房 | **`maoyan_boxoffice`** | ~70 films | today's box office, CNY |
| Tieba hot topics 贴吧热议 | `tieba_hot` | ~30 | discussions |
| 36Kr hot articles 36氪 | **`kr36_hot`** | 50 | reads |
| ThePaper hot news 澎湃 | `thepaper_hot` | 20 | – |
| IT之家 daily rank | `ithome_rank` | 12 | – (commentCount) |
| Hupu 步行街 hot posts 虎扑 | `hupu_hot` | ~50 | lights (亮) |
| Tencent News hot list 腾讯新闻热点 | `tencent_news_hot` | ~50 (excerpt, source, reads, comments) | hot score |
| Sina News hot search 新浪热搜 | `sina_hot` | ~45 (category) | hot value |

Platform names work as shortcuts (`douyin`, `weibo`, `baidu`, `zhihu`, `kuaishou`, `toutiao`, `bilibili`, `douban`, `maoyan`, `tieba`, `36kr`, `thepaper`, `ithome`, `hupu`, `tencent`, `sina`, also 抖音, 微博, 百度…); `all` = every board. Board page links (Weibo, Baidu, Zhihu, Douyin, Toutiao, Bilibili, Douban, Maoyan, Tieba, 36Kr, ThePaper, IT之家, Hupu) in `urls` work too.

### Douyin hot search, Weibo hot search, Baidu hot search, Zhihu hot list

`hot_lists` returns one `trend` row per topic in board order:

```json
{"type":"trend","operation":"hot_lists","input":"douyin_hot","queryUsed":null,"id":"2692378","url":"https://www.douyin.com/hot/2692378","fetchedAt":"2026-10-13T05:48:50.000Z",
 "platform":"douyin","board":"douyin_hot","rank":1,"title":"年轻人办婚礼有自己的想法","heat":12105112,"heatText":null,"label":"热","labelEn":"hot",
 "category":null,"excerpt":null,"author":null,"publishedAt":null,"isPinned":false,"isAd":false,"viewCount":null,"commentCount":null,"likeCount":null,
 "answerCount":null,"rating":null,"platformId":"2692378","matchedKeywords":[]}
```

Trend fields: `platform, board, boardName, rank, title, heat, heatText, label, labelEn, category, excerpt, imageUrl, author, publishedAt, isPinned, isAd, onboardAt, videoCount, viewCount, commentCount, likeCount, answerCount, followerCount, rating, ratingCount, platformId, searchUrl, matchedKeywords`; with `deltaKey`: `isNew, previousRank, rankChange, heatChange, peakRank, firstSeenAt, minutesOnBoard`. Pinned rows have `rank: 0`; Weibo ads have `rank: null` and `isAd: true`.

Copy-paste: `{"boards":["douyin_hot","weibo_hot","baidu_realtime","zhihu_hot"],"maxItemsPerInput":20}`

### Bilibili popular and ranking, Douban hot movies, Toutiao, Kuaishou, Tieba, Hupu

Same `trend` row. Bilibili rows add `author`, `publishedAt`, `viewCount`, `likeCount`, `commentCount`; Douban rows add `rating`; Zhihu rows add `answerCount` and the question URL; Hupu rows add lights and replies.

Copy-paste: `{"boards":["bilibili_popular","bilibili_ranking","douban_movie_hot","douban_tv_hot"],"maxItemsPerInput":10}` · `{"boards":["toutiao_hot","kuaishou_hot","tieba_hot","hupu_hot"],"excludePinned":true}`

### Maoyan box office

`box_office` returns one `trend` row per film with `boxOfficeDate, boxOfficeToday` (CNY), `boxOfficeShare` (%), `screeningShare` (%), `screenings`, `seatRate` (%), `releaseDays`, `totalBoxOffice` (CNY) and `totalBoxOfficeText`. `dates: ["2026-10-01"]` (or `dateFrom` / `dateTo`, max 31 days) for past days.

Copy-paste: `{"operation":"box_office"}` · `{"operation":"box_office","dates":["2026-10-01"],"outputMode":"lean"}`

### News articles: 36Kr, ThePaper, ITHome (IT之家)

`news_articles` returns `news` rows: `title, author, publishedAt` (+08:00), `summary, bodyMarkdown, textLength, images, readCount, commentCount, likeCount, tags, category`. Use `boards` (top N hot articles per board) or `urls`.

Copy-paste: `{"operation":"news_articles","boards":["kr36_hot","thepaper_hot","ithome_rank"],"maxItemsPerInput":3}` · `{"operation":"news_articles","urls":["https://www.36kr.com/p/4022353646555013"]}`

### Cross-platform trend clusters

`trend_clusters` (or `include: ["clusters"]`) groups the same story across platforms by title similarity: free `cluster` rows with `label, platforms, platformCount, size, bestRank, totalHeat, members[{platform, board, rank, title, id}]`. With `trend_clusters`, the member trend rows are returned too (billed as trend rows); topics on one platform only are left out.

Copy-paste: `{"operation":"trend_clusters","boards":["douyin","weibo","baidu","zhihu","toutiao"],"outputMode":"lean"}`

### Pricing

Pay per event: **$0.003 per trend row** (hot-list topic or box-office film), **$0.002 per news article**, $0.00005 per run start. Error, summary, cluster, plan and capabilities rows are free. The default call (10 boards × 20 rows) costs about $0.60; `maxItemsPerInput: 10` halves it; `dryRun: true` shows the estimate for free. Only need Weibo? Our Weibo Scraper sells hot-search rows at $0.002.

### Reliability and limits

- Boards are fetched in parallel straight from the platforms' public web endpoints (2 retries with jitter; fallback endpoints for Douyin, Weibo, Baidu, Bilibili ranking and Hupu). Kuaishou uses hedged requests (a second connection to another edge after 3 s) so a stalled edge no longer adds 10-17 s. A failing board returns an error row; the rest of the run is unaffected.
- Lists show what each platform shows to a logged-out visitor in mainland China at that moment; rank and heat change by the minute.
- Not available without login or cookies: Douyin sub-boards (entertainment/society/challenge), Weibo entertainment board (`weibo_ent` now returns an error row instead of the main board), Xiaohongshu, top videos per Douyin topic. Douyin/Toutiao image links are signed and expire within days.
- Hupu fallback (mobile API) ranks recent 步行街 threads by lights when the desktop hot page is unreachable (`summary.boardSources`).
- Delta memory lives in a named key-value store in your own account (`china-hot-search-delta-<deltaKey>`); topics unseen for 72 h are forgotten.

### FAQ

**Do I need a Chinese IP or proxy?** No. All boards work from Apify's default datacenter network. `proxyConfiguration` is only a fallback.
**How often do the lists change?** Weibo, Douyin, Baidu and Toutiao refresh every few minutes; Douban, Bilibili ranking and IT之家 a few times a day. For monitoring, schedule every 15-60 minutes with `deltaKey` + `onlyNew`.
**What does it cost per 1,000 rows?** 1,000 hot-list topics = $3.00; 1,000 full news articles = $2.00; the 30-row lean prefill = $0.09; the default 10-board call (190 rows) = $0.57. Error, summary and cluster rows are free, and `maxCostUsd` stops a run at your budget.
**Do I need a Douyin, Weibo or Zhihu account or API key?** No. Nothing is required in the input and no cookies are used.
**Is there a summary of what left the board?** Yes, with `deltaKey`: `summary.leftBoard` lists topics that were on a board in the previous run and are gone now (last rank, peak rank, minutes on board). Free.
**Is the text translated?** No – titles stay in Chinese; your LLM can translate. `queryUsed` shows the Chinese keyword used for matching.

# Actor input Schema

## `operation` (type: `string`):

auto (default) = urls -> news_articles, dates -> box_office, otherwise hot_lists (empty boards = 10 default boards). hot_lists = trend rows from boards in rank order. news_articles = full text of 36Kr / ThePaper / IT之家 hot articles or given urls. box_office = Maoyan China box office per film (dates for past days). trend_clusters = topics trending on 2+ platforms (free cluster rows + billed member rows). capabilities = free list of boards, fields, prices.

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

Board ids or platform names. Empty = douyin_hot, weibo_hot, baidu_realtime, zhihu_hot, toutiao_hot, bilibili_popular, kuaishou_hot, douban_movie_hot, maoyan_boxoffice, kr36_hot. Also: douyin_trending, baidu_novel/movie/teleplay/car/livelihood/finance/game, bilibili_ranking, bilibili_hot_search (B站热搜), douban_showing/tv_hot/top250, tieba_hot, thepaper_hot, ithome_rank (ITHome), hupu_hot, tencent_news_hot, sina_hot. Names douyin, weibo, baidu, zhihu, tencent, sina… = main board; all = every board.

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

Keep only rows whose title/excerpt contains any keyword (case-insensitive). English names are also matched in Chinese when expandQuery is on (Huawei -> 华为, BYD -> 比亚迪). Matched keywords are in matchedKeywords. Example: \["AI", "华为", "Tesla"].

## `urls` (type: `array`):

Article links for news_articles (full text as Markdown): https://www.36kr.com/p/<id>, https://www.thepaper.cn/newsDetail_forward\_<id>, https://www.ithome.com/0/<nnn>/<nnn>.htm (m. links too). Board page links (https://s.weibo.com/top/summary, https://top.baidu.com/board?tab=realtime, https://www.zhihu.com/hot, https://www.douyin.com/hot …) are fetched as that board. Other links return an INVALID_URL row (free).

## `dates` (type: `array`):

Past days for box_office (Maoyan keeps the last 365 days, China time), e.g. \["2026-10-01"]. Empty = real-time today. Each date = one board fetch.

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

Total cap on trend + news rows (1-5000, default 200). Free rows (cluster, error, summary) do not count.

## `maxItemsPerInput` (type: `integer`):

Rows per board, counted after filters (1-100, default 20; news_articles default 5 articles per board). Boards hold 5-100 rows (most 30-50).

## `fields` (type: `array`):

Projection: keep only these fields (type, operation, input, queryUsed, id, url, fetchedAt are always kept outside lean). Names: platform, board, rank, title, heat, heatText, label, labelEn, excerpt, author, publishedAt, viewCount, commentCount, rankChange, isNew, boxOfficeToday, bodyMarkdown… (all: operation capabilities). Empty = outputMode default.

## `include` (type: `array`):

Optional extras: "clusters" = free cluster rows grouping the same topic across platforms (after the trend rows); "body" = Markdown article body on news rows (always on for news_articles). Example: \["clusters"].

## `outputMode` (type: `string`):

compact (default) = core fields, excerpt cut to 200 chars. full = every field (image urls, search url, source primary/fallback, all box-office and delta fields). lean = fewest tokens: platform, rank, title, heat, url, rankChange; empty values dropped. table = flat CSV-safe rows, same columns on every row, arrays joined with |.

## `sortBy` (type: `string`):

rank (default) = board order, then rank (rows stream as boards arrive). heat = highest platform heat first across boards. rankChange = biggest climbers first (needs deltaKey).

## `minHeat` (type: `integer`):

Drop rows whose heat is below this number (rows without a heat value are dropped too). Heat = the platform's own popularity number (hot value, 热度, views, reads, box office CNY).

## `excludePinned` (type: `boolean`):

Drop pinned (置顶, rank 0) and sponsored rows (Weibo 商 ads, Douyin 商). Default false: they are kept and flagged with isPinned / isAd.

## `deltaKey` (type: `string`):

Any short name, e.g. "brand-watch". Remembers ranks in a named key-value store in your account: rows get isNew, previousRank, rankChange (+ = moved up), heatChange, peakRank, firstSeenAt, minutesOnBoard. Topics unseen for 72 h are forgotten. The summary row adds leftBoard: topics that dropped off a board since the previous run (free).

## `onlyNew` (type: `boolean`):

With deltaKey: return (and bill) only topics not seen in earlier runs with the same key. Ideal for scheduled monitoring. Without deltaKey the key "default" is used.

## `maxCostUsd` (type: `number`):

Stop before this run's row charges exceed the amount (rows so far stay valid; a free BUDGET_REACHED row explains it). The platform's max total charge per run is respected too.

## `dryRun` (type: `boolean`):

Return free plan rows (boards, estimated rows and cost) and a summary; nothing is fetched or billed.

## `expandQuery` (type: `boolean`):

Match English names in Chinese too (offline dictionary: Huawei -> 华为, Xiaomi -> 小米, box office -> 票房). The Chinese term used is in queryUsed.

## `dedupe` (type: `boolean`):

Keep only the first row of an identical title (after removing # and punctuation). Use include \["clusters"] instead to keep all rows and link them.

## `leanFormat` (type: `string`):

json (default) = rows only. table = also save all rows as one tab-separated table (key-value record LEAN_TABLE; copied into the summary row when < 20 KB). Fewest tokens for LLMs.

## `maxTextChars` (type: `integer`):

Cut excerpt / summary / bodyMarkdown to this many characters (0 = no cut). Default: 300 in lean mode, none otherwise (compact cuts excerpt at 200).

## `dateFrom` (type: `string`):

box_office: first day of a range (YYYY-MM-DD, max 31 days with dateTo).

## `dateTo` (type: `string`):

box_office: last day of a range (YYYY-MM-DD).

## `proxyConfiguration` (type: `object`):

Not needed: every board works directly. If set (e.g. {"useApifyProxy": true}), the proxy is used only after direct attempts to a board fail.

## Actor input object example

```json
{
  "operation": "auto",
  "boards": [
    "douyin_hot",
    "weibo_hot",
    "baidu_realtime"
  ],
  "maxItems": 200,
  "maxItemsPerInput": 10,
  "outputMode": "compact",
  "sortBy": "rank",
  "excludePinned": false,
  "onlyNew": false,
  "dryRun": false,
  "expandQuery": true,
  "dedupe": false,
  "leanFormat": "json"
}
```

# Actor output Schema

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

All dataset rows. Filter by type; the last row is type summary.

## `trends` (type: `string`):

Hot-list rows as a table.

## `news` (type: `string`):

Article rows.

## `leanTable` (type: `string`):

Only with leanFormat table: all rows as one tab-separated table per row type.

# 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 = {
    "boards": [
        "douyin_hot",
        "weibo_hot",
        "baidu_realtime"
    ],
    "maxItemsPerInput": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("deadc0dex/china-hot-search").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 = {
    "boards": [
        "douyin_hot",
        "weibo_hot",
        "baidu_realtime",
    ],
    "maxItemsPerInput": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("deadc0dex/china-hot-search").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 '{
  "boards": [
    "douyin_hot",
    "weibo_hot",
    "baidu_realtime"
  ],
  "maxItemsPerInput": 10
}' |
apify call deadc0dex/china-hot-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,deadc0dex/china-hot-search"
        }
    }
}
```

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/HwHypznf5N3nmbyAY/builds/MWQvttV8CHaJiIaW0/openapi.json
