China signal desk · refreshed five times each Beijing day

Search

Search the retained record: documents, social attention and economic prints.

Example / 4 Oct 2026 to 31 Oct 2026

What repeated sampling of hot lists shows, 4 to 31 Oct 2026

Machine-built, not yet reviewed

The question this answers for a buyer

What does a daily record of platform hot lists tell me that looking at today's ranking cannot?

The exact question and range

Across the Baidu, Weibo and Tencent WeChat hot lists between 2026-10-04 and 2026-10-31, how long do topics stay on a list, how many appear in only one collection window, and how many appear on more than one platform?

Date range
2026-10-04 to 2026-10-31, inclusive
Frozen
2026-11-02 01:46 UTC
Records
9,618

Result

15,087 observations pulled collapse to 9,618 platform-topic pairs. 67.7% appeared in only one collection window, so a single current ranking shows the topic but not whether it will last, or whether it already had. 26 normalized titles appeared on all three platforms.

  • Topics seen in only one collection window (all platforms)67.7% (6510 of 9618)A collection window is a run of observations with no gap over 30 minutes.
  • Baidu: topics seen in one collection window61.8% (2253 of 3647)107 collection windows in the pulled data.
  • Baidu: median lifespan0.0 hoursFirst to last observation, counting one-window topics as 0. Among topics seen in 2+ windows: 4.5 hours.
  • Weibo: topics seen in one collection window88.2% (4124 of 4678)107 collection windows in the pulled data.
  • Weibo: median lifespan0.0 hoursFirst to last observation, counting one-window topics as 0. Among topics seen in 2+ windows: 4.5 hours.
  • Tencent WeChat: topics seen in one collection window10.3% (133 of 1293)107 collection windows in the pulled data.
  • Tencent WeChat: median lifespan11.5 hoursFirst to last observation, counting one-window topics as 0. Among topics seen in 2+ windows: 11.5 hours.
  • Longest persistence: 这些关于中风的误区,不要再信了!10 windows over 2 daysTencent WeChat; best rank 11; 25.3 hours between first and last seen.
  • Longest persistence: 我国将加强困难老人探访关爱10 windows over 2 daysTencent WeChat; best rank 8; 22.5 hours between first and last seen.
  • Longest persistence: 致敬冼星海:把家国写进音符10 windows over 2 daysTencent WeChat; best rank 2; 22.5 hours between first and last seen.
  • Longest persistence: 两个人的婚礼变成一群人的狂欢9 windows over 2 daysTencent WeChat; best rank 2; 21.8 hours between first and last seen.
  • Longest persistence: 官方介绍五中全会最重要成果9 windows over 2 daysTencent WeChat; best rank 1; 21.8 hours between first and last seen.
  • Exact-title overlap: Baidu and Weibo162Topics with an identical normalized title on both. Exact matching undercounts: one event is usually worded differently on each platform.
  • Exact-title overlap: Baidu and Tencent WeChat629Topics with an identical normalized title on both. Exact matching undercounts: one event is usually worded differently on each platform.
  • Exact-title overlap: Weibo and Tencent WeChat46Topics with an identical normalized title on both. Exact matching undercounts: one event is usually worded differently on each platform.
  • Exact-title overlap: all three platforms26Identical normalized title on every platform.

Reproduce the documented result

One anonymous request with a fixed date range and at most 100 rows. Running it returns the rows counted below; the digest is the SHA-256 of their sorted ids joined by a newline.

curl
curl -sS 'https://china-snapshot.com/api/datasets?dataset=social&mode=topics&source=Weibo%20Hot%20Search&from=2026-10-31&to=2026-10-31&limit=100'
Request
Weibo topics on 2026-10-31 (mode=topics)
Rows returned
100
ids_sha256
930f957acab0eb55e7e2da3b7c5c795a318f3ac71e17426d5656d24b226b32f6
Further pages
Yes. The documented result is this first page only.
Python (verify the digest)
import hashlib
import requests

items = requests.get("https://china-snapshot.com/api/datasets?dataset=social&mode=topics&source=Weibo%20Hot%20Search&from=2026-10-31&to=2026-10-31&limit=100", timeout=60).json()["items"]
digest = hashlib.sha256("\n".join(sorted(i["id"] for i in items)).encode()).hexdigest()
print(len(items), digest)  # documented: 100 930f957acab0eb55e7e2da3b7c5c795a318f3ac71e17426d5656d24b226b32f6

Records

The first 25 of 9,618 records. The complete set is in the CSV.

First 25 records for What repeated sampling of hot lists shows, 4 to 31 Oct 2026
PlatformTopicFirst seenLast seenWindowsDaysBest rank
Tencent WeChat这些关于中风的误区,不要再信了!2026-10-30 06:01 UTC2026-10-31 07:17 UTC10211
Tencent WeChat我国将加强困难老人探访关爱2026-10-30 08:49 UTC2026-10-31 07:17 UTC1028
Tencent WeChat致敬冼星海:把家国写进音符2026-10-30 08:49 UTC2026-10-31 07:17 UTC1022
Tencent WeChat两个人的婚礼变成一群人的狂欢2026-10-30 06:01 UTC2026-10-31 03:49 UTC922
Tencent WeChat官方介绍五中全会最重要成果2026-10-30 06:01 UTC2026-10-31 03:49 UTC921
Tencent WeChat中国第一个15万亿大省要来了2026-10-30 10:31 UTC2026-10-31 07:17 UTC9210
Tencent WeChat11月起这些新规将影响生活2026-10-30 02:31 UTC2026-10-31 01:26 UTC821
Tencent WeChat别把易怒多疑当“怪脾气”2026-10-30 02:31 UTC2026-10-31 01:26 UTC824
Tencent WeChat欧洲车市变天!2026-10-30 10:31 UTC2026-10-31 06:00 UTC8211
Tencent WeChat铁路车次编排大调整2026-10-30 10:31 UTC2026-10-31 06:00 UTC8213
Tencent WeChat60秒看前海博物馆建设全过程2026-10-30 08:49 UTC2026-10-31 03:49 UTC826
Tencent WeChat“离柜概不负责”不能单向约束储户2026-10-30 14:01 UTC2026-10-31 07:17 UTC8211
Tencent WeChat从三个“新”看前三季度全国能源形势2026-10-30 14:01 UTC2026-10-31 07:17 UTC829
Tencent WeChat共享单车悄悄变贵2026-10-30 14:01 UTC2026-10-31 07:17 UTC8215
Tencent WeChat解放军霸气喊话菲军机:别让他耍滑头2026-10-30 14:01 UTC2026-10-31 07:17 UTC826
Tencent WeChat国内航线燃油附加费再上涨2026-10-30 19:00 UTC2026-10-31 10:31 UTC813
Tencent WeChat高校学院大洗牌2026-10-30 19:00 UTC2026-10-31 10:31 UTC814
WeiboA股2026-10-12 06:03 UTC2026-10-30 10:31 UTC7513
Weibo嫁金钗2026-10-10 14:02 UTC2026-10-20 06:00 UTC779
Tencent WeChat“未来中国优秀超市不会是胖东来”2026-10-29 07:26 UTC2026-10-30 06:01 UTC7210
Tencent WeChat商务部回应“美将中企列入实体清单”2026-10-29 07:26 UTC2026-10-30 06:01 UTC728
Tencent WeChat曾经风靡的日系车不再吃香了2026-10-30 06:01 UTC2026-10-31 02:30 UTC7211
Tencent WeChat多地取消12345热线0差评考核2026-10-30 02:31 UTC2026-10-30 22:01 UTC724
Tencent WeChat中国驻西班牙使馆驳斥涉疆议案2026-10-31 03:49 UTC2026-10-31 22:00 UTC729
Tencent WeChat国安部披露“黑飞”侵入军机航线2026-10-31 03:49 UTC2026-10-31 22:00 UTC723

Sources

  • China Snapshot public datasets API (social) — Repeated observations of publisher hot lists.
  • Baidu: Baidu Top Realtime — 5457 observations pulled
  • Weibo: Weibo Hot Search — 5350 observations pulled
  • Tencent WeChat: Tencent WeChat Hot Topics — 4280 observations pulled

Known gaps

  • The reproducible request returns the first 100 rows of a longer result (the API answered with next_cursor). result.row_count and result.ids_sha256 describe exactly that response, not the longer result.
  • A topic is identified by its normalized title (leading rank and extra whitespace removed, Unicode NFKC). A story reworded between collections counts as a new topic, so persistence is understated; exact-title overlap across platforms is likewise a floor.
  • Collection windows are inferred from observation timestamps (a gap over 30 minutes starts a new window). Missed or failed collection runs make topics look shorter-lived than they were.
  • Topics on the list when the range opens, or at the cap boundary, are cut off on the left, so their first_seen is not when they first trended.
  • Date filters use UTC; distinct days are counted on the Beijing calendar (UTC+8).
  • Rank and heat are the platforms' own and are not comparable across platforms. Observing a topic is not evidence of public opinion, and attention here is not linked to any policy publication.
  • The API's list links can open platform searches rather than the original post, and the list is a sample of what the platforms ranked at collection times, not a continuous feed.

Every request behind the figures

These are the exact anonymous requests used. Responses are paged at 100 rows by following next_cursor; the 149 follow-up page URLs, which carry short-lived signed cursors, are listed in the JSON evidence. Keep to one request a second.

curl
# social source names
curl -s "https://china-snapshot.com/api/datasets?dataset=social&limit=1"

# Baidu observations
curl -s "https://china-snapshot.com/api/datasets?dataset=social&source=Baidu%20Top%20Realtime&from=2026-10-04&to=2026-10-31&limit=100"

# Weibo observations
curl -s "https://china-snapshot.com/api/datasets?dataset=social&source=Weibo%20Hot%20Search&from=2026-10-04&to=2026-10-31&limit=100"

# Tencent WeChat observations
curl -s "https://china-snapshot.com/api/datasets?dataset=social&source=Tencent%20WeChat%20Hot%20Topics&from=2026-10-04&to=2026-10-31&limit=100"

# reproducible request: Weibo topics on 2026-10-31 (mode=topics)
curl -s "https://china-snapshot.com/api/datasets?dataset=social&mode=topics&source=Weibo%20Hot%20Search&from=2026-10-31&to=2026-10-31&limit=100"
Python (pandas)
import time
from urllib.parse import quote

import pandas as pd
import requests

URLS = [
    "https://china-snapshot.com/api/datasets?dataset=social&source=Baidu%20Top%20Realtime&from=2026-10-04&to=2026-10-31&limit=100",  # Baidu observations
    "https://china-snapshot.com/api/datasets?dataset=social&source=Weibo%20Hot%20Search&from=2026-10-04&to=2026-10-31&limit=100",  # Weibo observations
    "https://china-snapshot.com/api/datasets?dataset=social&source=Tencent%20WeChat%20Hot%20Topics&from=2026-10-04&to=2026-10-31&limit=100",  # Tencent WeChat observations
    "https://china-snapshot.com/api/datasets?dataset=social&mode=topics&source=Weibo%20Hot%20Search&from=2026-10-31&to=2026-10-31&limit=100",  # reproducible request: Weibo topics on 2026-10-31 (mode=topics)
]

rows = []
for first_url in URLS:
    url = first_url
    while url:
        page = requests.get(url, timeout=60).json()
        rows += page["items"]
        cursor = page.get("next_cursor")
        url = f"{first_url}&cursor={quote(cursor)}" if cursor else None
        time.sleep(1)  # anonymous limit: 60 requests a minute

df = pd.DataFrame(rows)
if "id" in df: df = df.drop_duplicates("id")
print(len(df), "rows")

# Or load the frozen evidence file without calling the API:
evidence = pd.read_csv("https://china-snapshot.com/data/examples/historical-attention.csv")

Download the evidence

The JSON holds the question, every request URL, known gaps and up to 500 rows. The CSV holds the full row set.

Method

  1. The reproducible request (Weibo topics on 2026-10-31 (mode=topics)) is one fixed-range page of at most 100 rows; result.row_count and result.ids_sha256 are computed from exactly its response. The figures below come from the wider pull.
  2. Read the source names the API reports for dataset=social and match one per platform (Baidu, Weibo, Tencent WeChat).
  3. For each platform, page every observation in the range at 100 rows by following next_cursor (capped, see known gaps).
  4. Normalize each title: strip a leading rank such as '12. ', collapse whitespace, apply Unicode NFKC. The original-language title is used when present.
  5. Group by (platform, normalized topic). first_seen and last_seen are the earliest and latest observation; collection_windows counts distinct collection windows; distinct_days counts Beijing calendar days; best_rank is the lowest rank observed.
  6. Median lifespan is last_seen minus first_seen in hours, per platform, with single-window topics counted as zero.
  7. Cross-platform overlap is the set intersection of normalized titles. The CSV holds every (platform, topic) row; raw observations are not republished here.