DEV Community

Cover image for Weibo's trending endpoint returns words, not posts — the one that returns the thread
Sami
Sami

Posted on

Weibo's trending endpoint returns words, not posts — the one that returns the thread

If you monitor Chinese social sentiment, you have probably wired up Weibo's hot-search board. It is the obvious endpoint: public, fast, and it gives you the trending list everyone screenshots.

I measured what it actually returns. Here is one row, verbatim, from a run today:

{
  "rank": "1",
  "title": "退货千万不要提前给取件码",
  "hotValue": "3474798",
  "labelName": "热",
  "category": ""
}
Enter fullscreen mode Exit fullscreen mode

That is the whole record. Ten rows, six seconds.

Look at what is not there: no post ID. No author. No post text. No timestamp. No comments. The hot-search board is a list of phrases ranked by a heat score — it tells you that something is trending, and nothing about what people are saying.

For a dashboard that is fine. For sentiment, brand monitoring, or any signal you plan to trade or report on, it is close to useless. That first row is trending with a heat value of 3.4M. Is it anger at a courier company? A viral safety tip? A joke? The board cannot tell you, and neither can any model you feed it into.

The endpoint that returns the actual thread

Weibo serves a second surface — the hot timeline — that returns real posts rather than phrases. Same anonymous access, no login.

I ran both back to back today:

rows time what you get
hot_search 10 6 s ranked phrases + heat score
hot_timeline + comments 91 22 s posts, authors, repost/comment counts, comment threads

Five trending posts expanded to 91 rows once comments were pulled in — an 18x multiplier off the same request budget.

And the rows carry the fields the board is missing: post text, author, repostsCount, commentsCount, postId.

One post in that sample was a million-follower antiques streamer announcing he was quitting the stock market for good, after his parents blocked him on WeChat for pushing their retirement savings into it. That is a retail-sentiment datapoint you would never recover from a ranked phrase.

Why the difference exists

The two surfaces are built for different consumers. The hot-search board powers Weibo's own trending widget, so it is optimised to be small and cacheable — phrases and a heat integer, nothing that needs a permission check. The timeline is the read path for actual content, so it carries the full post object and its thread.

Most scrapers stop at the first one because it is the one that surfaces when you search for "Weibo trending API". It returns 200, it returns JSON, it looks like the answer.

Pulling it

Both modes are in the Weibo Scraper on Apify. hot_timeline with includeComments is the combination that produces the thread:

{
  "mode": "hot_timeline",
  "maxResults": 5,
  "includeComments": true,
  "maxComments": 20
}
Enter fullscreen mode Exit fullscreen mode

Pair it with deltaMode and a schedule and you get a daily feed that only bills for posts it has not seen before — which is what you want when you are tracking a brand or a ticker over weeks rather than pulling a one-off snapshot.

For the same signal across the rest of the Chinese platforms, the RedNote and Bilibili scrapers cover the consumer and Gen-Z sides, and the Chinese Brand Monitor runs one brand across several at once.

The general lesson

When a platform exposes two endpoints for "what is trending", the cheap one is usually the widget feed and the expensive one is the content feed. The widget feed will always rank first in search results, because it is the one that is easy to document.

Check what the rows actually contain before you build a pipeline on them. A 200 response with ten neat rows can still be missing every field that carries the meaning.

Top comments (0)