# China Trends API — Baidu, Douyin, Toutiao, Bilibili Hot Search (`jmayniac/china-trends-api`) Actor

One API for China's trending topics: real-time hot search boards from Baidu, Douyin, Toutiao and Bilibili in clean JSON. No proxies, no logins.

- **URL**: https://apify.com/jmayniac/china-trends-api.md
- **Developed by:** [John May](https://apify.com/jmayniac) (community)
- **Categories:** News, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00 / 1,000 record scrapeds

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 Trends API — Baidu, Douyin, Toutiao, Bilibili Hot Search

One API for **China's trending topics**. Pulls the real-time hot search / trending boards from the four biggest Chinese platforms in a single run:

| Board | What you get |
|---|---|
| **Baidu** (百度热搜) | China's #1 search engine trending queries + hot score + news blurb |
| **Douyin** (抖音热搜) | TikTok-China trending hashtags/words + hot value |
| **Toutiao** (今日头条热榜) | Top trending news stories |
| **Bilibili** (B站热门) | Popular videos with view/like/danmaku counts, author, category |
| **Weibo** (微博热搜) | Optional — bring your own cookie |

### Why

- China market teams, e-commerce sellers, brand monitors and journalists need daily trending signals from CN platforms — no single Actor covers all four boards.
- Everything returns clean, stable JSON with `title`, `hot_value`, `url`, `rank`, `fetchedAt` — easy to diff over time (run on a schedule to build trend history).
- No proxies, no login walls, no CAPTCHAs: fast and cheap by design.

### Input

```json
{
  "boards": ["baidu", "douyin", "toutiao", "bilibili"],
  "limit": 30
}
```

- `boards` — any subset of `baidu`, `douyin`, `toutiao`, `bilibili`, `weibo`.
- `limit` — items per board (max 50).
- `weiboCookie` — only needed for the `weibo` board.

### Output (dataset)

```json
{
  "board": "douyin",
  "rank": 1,
  "title": "西藏那曲发生7级地震",
  "hot_value": 12133591,
  "url": "https://www.douyin.com/search/...",
  "fetchedAt": "2026-10-22T16:00:00+00:00"
}
```

### Pricing

Pay-per-event: **$0.01 per scraped record** (a board's item = one record; typical full 4-board run ≈ 120 records ≈ $1.20). No minimum, no monthly fee.

### Use cases

- Daily China trend digest / newsletter automation
- Cross-border e-commerce product inspiration (what's hot on Douyin today)
- Brand & crisis monitoring (catch spikes on Baidu/Toutiao early)
- WeChat/XHS content idea pipelines (trends originate here)
- Media monitoring dashboards with trend history via Apify schedules

### FAQ

**Do I need proxies or login?** No for Baidu, Douyin, Toutiao, Bilibili. Weibo requires your own logged-in cookie.
**Is the data translated?** No — titles come as Simplified Chinese; pair with any translation API or LLM downstream.
**How often can I run?** Boards refresh in real time; hourly schedules are fine.

# Actor input Schema

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

Which trending boards to pull. Allowed values: baidu, douyin, toutiao, bilibili, weibo (weibo needs a valid browser cookie via weiboCookie).

## `limit` (type: `integer`):

Maximum items per board (Baidu/Douyin/Toutiao cap at ~30, Bilibili up to 50).

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

Used only as fallback when a board blocks the Actor's direct connection. Keep default for best speed.

## `weiboCookie` (type: `string`):

Full Cookie header string from a logged-in s.weibo.com session.

## Actor input object example

```json
{
  "boards": [
    "baidu",
    "douyin",
    "toutiao",
    "bilibili"
  ],
  "limit": 30,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

board, rank, title, hot_value, url, fetchedAt for each trending item.

# 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": [
        "baidu",
        "douyin",
        "toutiao",
        "bilibili"
    ],
    "limit": 30,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("jmayniac/china-trends-api").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": [
        "baidu",
        "douyin",
        "toutiao",
        "bilibili",
    ],
    "limit": 30,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("jmayniac/china-trends-api").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": [
    "baidu",
    "douyin",
    "toutiao",
    "bilibili"
  ],
  "limit": 30,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call jmayniac/china-trends-api --silent --output-dataset

```

## MCP server setup

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

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/Va4n6THSxaZ2S2Tef/builds/h0qxLW2VJql5sU3tY/openapi.json
