Weibo Hot Search Scraper (China Trending Topics API)
Pricing
from $4.00 / 1,000 trending topics
Weibo Hot Search Scraper (China Trending Topics API)
Weibo hot search (微博热搜) in one call: realtime, entertainment, news and hot-topic boards with rank, heat, category, label (hot/new/boom), ads flagged, topic link. Optional top posts from verified accounts. $4 per 1,000.
Pricing
from $4.00 / 1,000 trending topics
Rating
0.0
(0)
Developer
Prague Data Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Weibo Hot Search Scraper (微博热搜 trending topics API)
Get every Weibo hot-search board (realtime 热搜榜, entertainment 文娱榜, news 要闻榜) as clean rows (rank, topic, heat score, category, label such as new/hot/boom, first-seen time and topic link), plus the top posts of verified accounts for each trending topic. No login, no cookies to paste, $4 per 1,000 results.
{ "mode": "hotSearch", "maxItems": 60 }
One output row (realtime board, rank 1):
{"type": "trend","board": "realtime","boardName": "热搜榜","rank": 1,"word": "身披旭日旗中国留学生或被开除遣返","heat": 1171091,"category": "民生新闻","label": null,"isAd": false,"isPinned": false,"topicUrl": "https://s.weibo.com/weibo?q=%23%E8%BA%AB%E6%8A%AB%E6%97%AD%E6%97%A5%E6%97%97%E4%B8%AD%E5%9B%BD%E7%95%99%E5%AD%A6%E7%94%9F%E6%88%96%E8%A2%AB%E5%BC%80%E9%99%A4%E9%81%A3%E8%BF%94%23","firstSeenAt": "2026-10-19T10:22:22.000Z","minutesOnBoard": 176,"snapshotAt": "2026-10-19T13:18:01.174Z","mode": "hotSearch"}
Compatible with the input of zhorex/weibo-scraper
Switching takes one change: the Actor ID. This Actor accepts the same input fields with the same values: mode, searchQuery, userIds, postIds, maxResults, adFilter (all, organic_only, promo_only), deltaMode and deltaStateKey. It also writes the same output field names next to its own (title, hotValue, labelName, iconDesc, isHot, isNew, isPromoted, url, snapshotAt, firstSeenAt, status, rankDelta, previousRank, hotValueDelta, peakRank, peakHotValue, minutesOnBoard; for posts postId, mid, text, isTruncated, createdAtIso, repostsCount, commentsCount, attitudesCount, authorName, authorVerified, postUrl).
| Leader mode | Here |
|---|---|
hot_search | Same as hotSearch: every board, not only the realtime one. |
hot_search_delta | Same as hotSearch with deltaMode: true (new / rising / falling / steady / dropped). |
search | Posts for searchQuery, from verified accounts only, up to maxResults (Weibo shows anonymous visitors about 20 posts per query). |
hot_timeline | Posts of Weibo's hot feed, from verified accounts only. |
post_comments, post_details, user_posts, user_profile, complaints | Not offered. The run ends at once with a status message explaining why, and charges nothing. |
Two differences to know: ads are dropped by default (adFilter: "drop"; pass "all" to keep them flagged), and createdAt is ISO 8601 with Weibo's +08:00 offset (the same value as createdAtIso).
What you get
| Board | Weibo name | Rows | Extra fields |
|---|---|---|---|
realtime | 热搜榜 | the pinned topic + 50 topics | category, label, Weibo's own first-seen time, paid slot flagged |
entertainment | 文娱榜 | 50 topics | category, label |
news | 要闻榜 | 50 topics | label |
Everything comes from Weibo's public pages and their JSON endpoints, the same ones weibo.com shows to a visitor who is not signed in. A full snapshot of the three boards takes about 10 seconds.
Use cases
- Brands and agencies selling in China: see within the hour when your brand, a competitor or a product category hits the hot search; track how long it stays and how high it climbs.
- Media and newsrooms: monitor what China talks about right now (news, entertainment, society), with the posts of official media accounts on each topic.
- Analysts and researchers: build an hourly time series of Chinese public attention (rank, heat, category) for sentiment, consumer-trend or political-communication studies.
- AI agents: one cheap call returns a structured, deduplicated snapshot of China's trending topics.
Modes
hotSearch (default): trending topics
{ "mode": "hotSearch", "boards": ["realtime", "entertainment", "news"], "maxItems": 60 }
maxItems keeps the top of every board first: 60 rows over 3 boards = the top 20 of each. Leave it empty to get everything (about 150 rows).
topicPosts: what verified accounts post about each trend
{ "mode": "topicPosts", "topTrends": 5, "postsPerTopic": 10 }
Without topics, the Actor takes the current top 5 realtime trends. With topics (e.g. ["#李小冉离婚#", "新能源汽车"]) it searches those. Each post row has the topic, text (full text of long posts), publish time, reposts, comments, likes, author name, verification type (organization = blue V, individual = verified public figure) and link. Set authorFilter: "organizations" to keep media, government and company accounts only.
Only verified accounts are returned, never posts of private individuals. Weibo shows anonymous visitors the first page of results of each search (about 20 posts, hot first); deeper pages need a login, so the Actor stops there.
hot_timeline: Weibo's hot feed
{ "mode": "hot_timeline", "maxItems": 50 }
Build a time series with an hourly schedule
The Actor returns snapshots. To build history, schedule it:
- Create a task with
{ "mode": "hotSearch", "deltaMode": true, "deltaStateKey": "hourly" }. - In Apify Console go to Schedules → Create new, cron
0 * * * *(every hour), and add the task. - Every run stores a full snapshot stamped with
snapshotAt. Collect the runs with an integration (Google Sheets, webhook, Make, Zapier) or the API (GET /v2/actor-tasks/{taskId}/runs, then each run'sdefaultDatasetIditems), and group bywordandsnapshotAtto chart rank and heat over time. - With
deltaMode, each row also says how it moved since the previous hour:status(new,rising,falling,steady,dropped),previousRank,rankDelta,hotValueDelta,peakRank,peakHotValue. The first run of a delta key is the baseline (every topicnew). Use onedeltaStateKeyper schedule.
Cost of an hourly snapshot of the three boards: about 150 rows × $0.004 = $0.60 per run; the realtime board alone ("boards": ["realtime"]) is about $0.20 per run.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | hotSearch | hotSearch, topicPosts, hot_timeline, or the leader's hot_search, hot_search_delta, search. |
boards | array | all | realtime, entertainment, news. |
maxItems | integer | everything | Maximum rows (charged events) in the run. maxResults is an alias. |
adFilter | string | drop | drop, keep, only (or organic_only, all, promo_only). |
deltaMode | boolean | false | Compare with the previous run (boards) or skip already delivered posts. |
deltaStateKey | string | default | Name of the delta stream, stored in your key-value store weibo-trends-state. |
topics | array | top trends | topicPosts: topics or keywords to search. |
topTrends | integer | 5 | topicPosts without topics: how many current top trends. |
postsPerTopic | integer | 10 | Maximum posts per topic (in search mode maxResults is used when this is empty). |
authorFilter | string | verified | verified or organizations. |
fetchFullText | boolean | true | Fetch the full text of long posts (no extra charge). |
searchQuery | string | Leader field: query for search mode. | |
userIds, postIds | array | Leader fields, accepted; their modes are not offered. | |
proxyConfiguration | object | none | Optional Apify Proxy. Not needed today. |
Output fields
| Field | Rows | Description |
|---|---|---|
type | all | trend or post (also the charged event). |
mode | all | Mode of the run as given in the input. |
board, boardName | trend | realtime 热搜榜, entertainment 文娱榜, news 要闻榜. |
rank | trend | Position on the board, 1 = top; null for the pinned topic, the paid slot and dropped topics. |
word, title | trend | Topic text without # marks. |
note | trend | Topic label as Weibo shows it. |
isHashtag | trend | true for a #hashtag# topic page. |
heat, hotValue | trend | Weibo heat score (热度). |
category, categories | trend | Weibo category (民生新闻, 艺人, 剧集, 体育…), as text and as a list. |
label | trend | new, hot, boiling, boom, warm, recommended, sponsored, first, exclusive, other or null. |
labelName, iconDesc | trend | Badge as shown (新, 热, 沸, 爆…). |
isHot, isNew | trend | Badge is 热/沸/爆, badge is 新. |
isAd, isPromoted, adType | trend | Paid slot (with adFilter keep/only) and Weibo's ad type. |
isPinned | trend | Topic pinned above the realtime board. |
topicUrl, url | trend | Weibo search page of the topic. |
firstSeenAt, minutesOnBoard | trend | When the topic entered the board (Weibo's own time on the realtime board) and minutes since. |
snapshotAt | trend | Time of the snapshot (UTC). |
status, previousRank, rankDelta, hotValueDelta, peakRank, peakHotValue | trend | deltaMode only: movement since the previous run. |
topic, topicBoard, topicRank | post | Topic or query the post was found for, and where that topic ranked. |
postId, mid, bid | post | Weibo post ID and short code. |
text, isTruncated | post | Plain text; isTruncated when only the preview was available. |
createdAt, createdAtIso | post | Publish time, ISO 8601 with +08:00. |
reposts, comments, likes | post | Counts (also as repostsCount, commentsCount, attitudesCount). |
authorName, authorId, authorVerified, authorVerifiedType, authorVerifiedReason, authorFollowers | post | Verified author: name, ID, organization or individual, verification text, followers. |
images | post | Image URLs. |
postUrl | post | Link to the post on weibo.com. |
scrapedAt | all | Time of the run (UTC). |
Pricing
Pay per result, nothing else: $0.004 per trend row and $0.004 per post row ($4 per 1,000). No platform usage on top, no monthly fee. Rows removed by adFilter or deltaMode are not charged, and unsupported modes charge nothing. Set a maximum cost per run in Apify Console and the Actor stops cleanly when it is reached.
Notes
- No login and no cookie from you: the Actor uses the anonymous visitor session Weibo gives to every browser.
- Weibo's own "topic board" (话题榜) API has not been updated since 2024, so it is left out.
- Times:
snapshotAt,firstSeenAtandscrapedAtare UTC; postcreatedAtkeeps Beijing time (+08:00). - Questions or a missing field? Open an issue on the Actor page; we answer within 24 hours.