Douyin Hot Search Scraper
Get Douyin trending topics: rank, hot value, views, video count, badge and cover image. Hot, entertainment and society boards. No login. $0.40/1,000.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
boards,maxItems(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.0004 per trending topic = $0.4 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Trending topic | One Douyin hot-search topic returned. Sample rows and error diagnostics are never charged. | $0.0004 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-07, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
boards | Which Douyin hot-search boards to read. "Hot list" is the main 抖音热榜 (about 50 topics). "Rising hotspots" is the 5-topic 实时上升热点 strip and comes free with the hot list. Each board is a separate ranking of roughly 50 topics. | array |
maxItems | Hard cap on rows returned across all selected boards (1-1000). You are charged per topic returned. One board is about 50 topics, so all four is about 155. | integer |
What you get
A structured dataset — each result includes fields like:
rankwordhotValueviewCountvideoCountlabelNameeventTimeboardsearchUrlcoverUrlsentenceIdExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
1 ready-to-run use cases
Douyin Hot Search - Trending Now
Get Douyin's trending hot-search board: topic, rank and heat score. The Chinese TikTok trending list.
Related tools in Social Media Scrapers
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
Facebook Comments Scraper
Scrape comments from any public Facebook post or reel: author, text, date, likes and replies. No login needed from you. $0.25 per 1,000 comments.
Facebook Groups Scraper
Scrape public Facebook group posts: author, text, time, permalink, photos, videos and engagement counts. No login needed. $0.70 per 1,000 posts.
Facebook Reels Scraper
Scrape public Facebook Page Reels: views, reactions, comments, shares, captions, hashtags, duration and MP4 links. No login needed. $0.35/1k.
Instagram Post Scraper
Scrape Instagram posts and reels by link or shortcode. Rows carry caption, likes, comments, publish time, carousel media, hashtags. No login. $0.18 per 1,000.
Instagram Profile Scraper
Scrape Instagram profiles from handles or URLs. Get the bio, exact follower and post counts, verified flag, category and bio links. $0.70 per 1,000.
Instagram Reel Scraper
Scrape reels from any public Instagram profile. Play counts, likes, comments, captions, duration, MP4 and cover links, audio. $0.35 per 1,000 reels.
Where this tool sits
- Categories
- Social Media Scrapers Chinese Social & Trends
- Platforms
- Douyin
Douyin Hot Search Scraper: trending topics from all four boards, no login
Douyin's hot boards are the ranked list of what China is searching and posting about right now. This reads them and gives you one row per topic: rank, the topic text, Douyin's heat score, views, how many videos and live rooms sit under it, the badge, when it started and the cover image.
There are about 156 topics in total across the four boards at any moment. That is the whole snapshot, so this is a thing you schedule and stack over time, not a thing you crawl deeply once.
| Input | Which boards to read |
| Output | One row per trending topic |
| Ceiling | About 156 topics per snapshot, all four boards |
| Account needed | None, and no cookie |
| Price | $0.40 per 1,000 topics, flat on every plan |
🔍 What Douyin Hot Search Scraper does
Four boards, each its own ranking:
| Board | What it is | Rows |
|---|---|---|
hot | 抖音热榜, the main hot list | about 51 |
entertainment | 娱乐榜, film, TV, music, celebrities | about 50 |
society | 社会榜, news, economy, public affairs | about 50 |
rising | 实时上升热点, the real-time rising strip | 5 |
rising arrives inside the hot list's own response, so asking for both is no more work than asking for one.
The boards refresh every few minutes, so two runs ten minutes apart will disagree on ranks and heat values. boardActiveTime is Douyin's own timestamp for the snapshot, in Beijing time, and sentenceId stays the same for a topic across runs, which is what you join on when you build a time series.
📥 What you give it
{
"boards": ["hot", "entertainment", "society", "rising"],
"maxItems": 200
}
| Field | Default | What it is |
|---|---|---|
boards | ["hot"] | Which boards to read: hot, entertainment, society, rising. Leave it as it comes and you get the main hot list, about 51 topics. |
maxItems | 200 | A hard cap on rows across every board you picked, 1 to 1,000. All four boards together come to about 156, so the default does not cut anything off. |
proxyConfiguration | none | Optional. Leave it alone unless you need the run to go out through a particular network. Your own servers are used exactly as given. |
Clear the board list entirely and you get one labelled sample row instead of topics.
When maxItems runs out partway through your board list, the boards after it are skipped and noted in the log.
📤 What you get back
A real row, rank 1 on the hot list, with the signed image links cut short:
{
"board": "hot",
"boardName": "Douyin Hot List (抖音热榜)",
"rank": 1,
"isPinned": false,
"word": "中国U23男足0:0伊朗U23",
"hotValue": 11466642,
"viewCount": 66387319,
"videoCount": 3,
"discussionVideoCount": 1,
"articleCount": 0,
"liveRoomCount": 0,
"peakRank": 1,
"label": 1,
"labelName": "New (新)",
"labelImageUrl": "https://lf3-static.bytednsdoc.com/obj/eden-cn/.../hotspot_detail_page/1.png",
"eventTime": "2026-09-20T06:14:23.000Z",
"eventTimestamp": 1789884863,
"sentenceId": "2657642",
"groupId": "7686803507378263306",
"coverUrl": "https://p3-sign.douyinpic.com/tos-cn-p-0015/oca1BIeGagzO7nVBB7fsaXxueCkALI4tLSVpgA~noop.jpeg?...",
"coverUrls": ["...", "...", "..."],
"searchUrl": "https://www.douyin.com/search/%E4%B8%AD%E5%9B%BDU23%E7%94%B7%E8%B6%B30%3A0%E4%BC%8A%E6%9C%97U23",
"hotSpotUrl": "https://www.douyin.com/hot/2657642/%E4%B8%AD%E5%9B%BDU23%E7%94%B7%E8%B6%B30%3A0%E4%BC%8A%E6%9C%97U23",
"boardActiveTime": "2026-09-20 15:41:15",
"scrapedAt": "2026-09-20T07:43:19.499Z"
}
| Field | What it is |
|---|---|
word | The topic exactly as Douyin publishes it, in Chinese. Nothing is translated. |
hotValue | Douyin's internal heat score. Good for ranking topics against each other inside one snapshot, not meaningful as an absolute number. |
viewCount | Total views on the topic. |
peakRank | The best rank the topic has held, which is how you spot something that has already passed its peak. |
labelName | The badge, mapped to English with the original: New (新), Commercial (商), Hot (热), Exploding (爆), Premiere (首发), Exclusive (独家), Challenge (挑战), Debunked (辟谣), Widely discussed (热议). Most topics have none and come back null. |
eventTime | When the topic first appeared, as a real timestamp. eventTimestamp is the same moment in unix seconds. |
sentenceId | Stable for a topic across runs. This is your join key. |
searchUrl, hotSpotUrl | Links straight into Douyin for the topic. |
coverUrl, coverUrls | Signed image links with about a day of life. Download the image if you need to keep it. |
A count of 0 can mean Douyin published no number for that row, not that the real figure is zero. It shows up on the pinned row and on rows that came back from the lighter source described below.
🧾 Reading the output
| Row | How to spot it | Charged |
|---|---|---|
| A topic | It has a word and no charged field | yes |
| The pinned promo row | isPinned: true, rank: null | yes, it counts as a topic |
| The sample row | _sample: true and charged: false | no |
| A diagnostic | _diagnostic: true and an errorCode | no |
Douyin pins a promo or public-service row above rank 1 on the ranked boards. It is a real row in the dataset and it is counted like any other topic, so filter on isPinned if you do not want it.
When the main board cannot be read, some topics can still arrive from a lighter source. Those rows carry a source field, keep the topic text and heat value, and show 0 for the detailed counts.
errorCode | What it means |
|---|---|
UNKNOWN_BOARD | That board name is not one of the four. |
EMPTY_BOARD | No rows were written for that board. It also appears when your maxItems ran out partway through, so check the cap before assuming the board was empty. |
LOGIN_REQUIRED | Douyin asked for an account for that request. |
BLOCKED | Douyin turned the request down. Try again in a few minutes. |
BAD_RESPONSE | Douyin answered with something that could not be read. |
FETCH_FAILED | The request did not complete. Re-run it. |
▶️ How to run it
1. Open Douyin Hot Search Scraper and click Try for free. 2. Pick your Boards. All four is about 156 rows and takes seconds. 3. Leave Maximum topics alone unless you only want the top of a board. 4. Click Start. 5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
💰 How much does it cost?
$0.40 per 1,000 topics. Flat on every Apify plan, no volume tiers.
You pay per topic row, and the pinned promo row counts as one. The sample row is not charged and diagnostic rows are not charged.
Worth doing the sum before you schedule it: all four boards every 15 minutes is roughly 15,000 topics a day, which is about $6 a day at this price. Hourly instead of quarter-hourly is about $1.50.
💡 What people use it for
- Building a time series of Chinese trending topics, by running it on a schedule and joining
snapshots on sentenceId.
- Spotting a topic on the way up rather than at its peak, using
rankagainstpeakRank. - Watching the 社会榜 for the news stories that actually moved, separately from celebrity noise on
the 娱乐榜.
- Feeding
wordinto a translation or summarisation step to get a daily read on Chinese attention
without speaking the language.
- Checking whether a brand moment reached the boards at all, and which board it landed on.
🚧 What it does not do
- No keyword search. Douyin's search needs a signed-in account, so this covers the hot boards
and nothing else.
- No videos per topic. Douyin does not publish the list of videos behind a topic to a
signed-out visitor. videoCount is a count, and a column of videos would be a column of guesses.
- No translation.
wordstays in Chinese. Everything else is a number or English. - No live-room contents.
liveRoomCountis a count. - About 156 rows is the whole thing. There is no deeper history to page into. Depth comes from
running it repeatedly.
- Cover links expire in around a day.
- A
0count can mean "not published", because of how Douyin returns those fields. - Boards move under you. A snapshot is a snapshot, and
boardActiveTimetells you which one.
🧭 Which social scraper do you need?
| If you want | Use |
|---|---|
| Douyin's trending boards | This one |
| Posts by keyword on X | Twitter (X) Search Scraper |
| Posts and reels under an Instagram tag | Instagram Hashtag Scraper |
| An Instagram account's profile details | Instagram Profile Scraper |
| Posts by keyword on LinkedIn | LinkedIn Post Search Scraper |
❓ Questions people ask
Do I need a Douyin account? No. The boards are public and nothing is signed in.
Can I search Douyin for a keyword? Not from here, and not without an account. Douyin answers signed-out search requests by asking you to log in.
Why is the topic text in Chinese? Because that is how Douyin publishes it, and translating it here would mean shipping a guess. Translate word on your side if you need to.
Why does one row have no rank? That is the promo row Douyin pins above rank 1. It is flagged isPinned.
How often should I run it? Depends what you are after. The boards move every few minutes, hourly is enough for most trend tracking, and quarter-hourly is what you want if you are hunting the moment a topic breaks.
Is this legal? These are public rankings on public pages. Apify's write-up on scraping and the law is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the board and the run ID. If you got a diagnostic row, its errorCode and hint usually name the problem on their own.