Chinese Social Listening — Weibo, RedNote, Bilibili, Douban avatar

Chinese Social Listening — Weibo, RedNote, Bilibili, Douban

Pricing

from $60.00 / 1,000 brand mention aggregateds

Go to Apify Store
Chinese Social Listening — Weibo, RedNote, Bilibili, Douban

Chinese Social Listening — Weibo, RedNote, Bilibili, Douban

Chinese social listening in one API call: brand mentions from Weibo, Bilibili and Douban groups with no login, Xiaohongshu (RedNote) and Xueqiu with your cookie, plus Black Cat (黑猫投诉) consumer complaints. Sentiment, share of voice vs competitors, deduplicated. $0.06 per mention.

Pricing

from $60.00 / 1,000 brand mention aggregateds

Rating

5.0

(1)

Developer

Sami

Sami

Maintained by Community

Actor stats

0

Bookmarked

48

Total users

3

Monthly active users

3 days ago

Last modified

Share

Chinese Brand Monitor — Weibo + RedNote + Bilibili + Douban + Xueqiu Aggregator

Track every mention of your brand across five Chinese social and content platforms — Weibo, RedNote (Xiaohongshu), Bilibili, Douban, and Xueqiu — in a single API call. Monitor Chinese consumer sentiment, KOL endorsements, viral content, and crisis signals at $0.06 per mention. No subscription, no setup fee, no annual contract. A Synthesio alternative and Brandwatch alternative for Chinese platform coverage.

Enterprise tools like Synthesio, Brandwatch, Meltwater, and Talkwalker are sold on annual contracts. This Actor delivers Weibo + Xiaohongshu + Bilibili + Douban + Xueqiu in one normalized feed at $0.06 per mention — pay only for what you pull. No subscription, no minimum, no setup fee. Built for brand monitoring agencies, DTC brands entering China, China-watcher hedge funds, and AI training data teams.

💡 Also track how AI answers about your brand, not just what people post: AI Brand Visibility Monitor is the GEO companion to this monitor — it checks DeepSeek, Qwen, Kimi, GLM (+ ChatGPT/Gemini/Claude) and reports mention, sentiment, rank, share-of-voice and cited sources.

How to monitor Chinese brand mentions in 3 easy steps

  1. Go to the Chinese Brand Monitor page on Apify and click "Try for free"
  2. Enter your brand keyword (Chinese or English — e.g. 李宁, Li-Ning, Apple, 耐克, NIKE) and pick the platforms you want to monitor
  3. Click "Run", wait for the aggregator to finish, then download your data in JSON, CSV, or Excel format — or wire it into a daily/hourly Apify Schedule for continuous monitoring

No coding required. No API key. No VPN. Works with Apify's free plan.

💡 Tips for best results — read this first

  • Auto-localization is on by default. Enter a Latin brand name and the actor also searches its Chinese name (Nike → 耐克) and merges the results — Chinese platforms index by the native name, so this matters a lot for recall. It covers ~50 common global brands out of the box; for a brand outside that list, add its Chinese name (or sub-brands / product lines) via searchAliases. You're billed only on the merged, deduplicated mentions.
  • Recall varies by platform — this is normal, not a bug. Weibo, Bilibili and Douban group discussions work without any login. RedNote and Xueqiu keyword search answer only to a signed-in session — they return nothing unless you add your own cookie under cookieStrings (rednote / xueqiu). The run's status message names every platform that returned nothing and why.
  • Few or no results? Empty ≠ broken. Try, in order: (1) search the Chinese brand name, (2) test a well-known brand like 耐克 to confirm your setup, (3) widen lookbackDays, (4) add cookieStrings for RedNote/Xueqiu. Niche brands genuinely have low volume on some platforms.

Scheduled monitoring presets

Save any preset as a task and attach an Apify Schedule. A scheduled run can work two ways — pick on purpose:

  • Mention set — deltaMode off (the default). Each run returns every mention inside lookbackDays. Match the window to the schedule (a daily run with lookbackDays: 1) so consecutive runs barely overlap. This is what you want for reports, baselines and sentiment over a period.
  • Only new — deltaMode on. Each run returns and bills only the mentions no earlier run returned for that brand. A quiet day returns 0 rows and bills 0 — a trickle by design, not a broken run. Useful when you only want to be told what is new, and on hourly schedules, where a mention-set run would return the same last-24-hours mentions every hour.

The daily presets below return the mention set. The two hourly presets set deltaMode: true because lookbackDays cannot go below 1 day: an hourly mention-set run would return — and bill — the same last-24-hours mentions every hour.

Brand Health — daily. Full five-platform pulse of your brand, once a day.

{ "brandKeyword": "耐克", "platforms": ["weibo", "rednote", "bilibili", "douban", "xueqiu"], "lookbackDays": 1, "sentimentAnalysis": true }

Crisis Watch — hourly. Fast-moving platforms only, for early warning when something about your brand starts blowing up.

{ "brandKeyword": "耐克", "platforms": ["weibo", "rednote", "bilibili"], "deltaMode": true, "lookbackDays": 1 }

Share of Voice — you vs competitors, daily. Track your brand against rivals in one scheduled run; the SUMMARY gets a share-of-voice rollup (mentions, share %, sentiment per brand).

{ "brandKeyword": "李宁", "competitorBrands": ["耐克", "阿迪达斯", "安踏"], "platforms": ["weibo", "rednote", "bilibili", "douban", "xueqiu"], "lookbackDays": 1 }

Spike Watch — hourly early-warning. Flag a surge in mentions the hour it starts — a brewing crisis or a launch going viral.

{ "brandKeyword": "耐克", "platforms": ["weibo", "rednote", "bilibili"], "deltaMode": true, "velocityTracking": true, "lookbackDays": 1 }

Save any of these with Save as task and attach a daily or hourly schedule.

Prefer one-click? Each preset is published ready to run — open it, swap in your brand, and hit Run:

📦 China Monitoring Packages

Don't run one-off pulls — run a feed. Three pre-configured bundles turn this Actor (plus the AI Brand Visibility Monitor and Xueqiu Scraper) into set-and-forget recurring monitors, entirely self-serve on your own Apify account:

  • Brand Starter (~$110/mo) — 1 brand, daily 5-platform pull + weekly AI-answer visibility. ~1,500 mentions/mo.
  • Competitive Intel (~$440/mo) — you + 3 competitors, daily share-of-voice, viral-breakout flags, weekly 4-engine AI gap table.
  • Fund Signal Desk (~$635/mo) — 10 tickers, daily sentiment-velocity feed + hourly Xueqiu quotes + DeepSeek/Qwen narrative checks.

For context: enterprise listening suites are sold on annual contracts; these bundles have no contract and no fixed fee. Each package is just saved Tasks + Schedules using the JSON presets above: copy, Save as task, attach a schedule, done. Pay-per-event only — quiet days cost less. Questions: the Issues tab.

Table of contents

What it does

  • Single brand-keyword input → mentions across 5 Chinese platforms in one call

⚠️ Current platform coverage — read this before you budget

The Actor requests all five platforms. Without cookies, three of them deliver brand mentions today; RedNote and Xueqiu keyword search answer only to a signed-in session.

PlatformWithout a cookieMeasured
Weibo✅ full depth (a cookie is optional)468 rows across 41 runs, Jul–Aug 2026
Bilibili✅ full depth638 rows across 41 runs, Jul–Aug 2026
Douban✅ group discussions whose title names the brand (since Sep 2026)李宁, 24 Sep 2026, from one residential IP: 11 of the 48 newest search results carry 李宁 in the title, 4 of them inside the default 7-day window. Douban flags an IP after a handful of rapid requests; the status message says so when it happens
RedNote❌ keyword search needs your cookie → cookieStrings.rednote0 rows across 41 runs, Jul–Aug 2026
Xueqiu❌ keyword search needs your cookie → cookieStrings.xueqiu; without one only Xueqiu's trending feed is scanned for the name0 rows across 41 runs, Jul–Aug 2026
Black Cat (opt-in)✅ no login — only when you add "blackcat" to platforms: your brand in the public latest-complaints feed, plus your company's own complaint list via blackCatCompanyIds25 Sep 2026, home IP: the 20 feed pages read per run held 200 complaints filed 12:01–14:21 UTC — about the last 2 h 20 min across all of China, mostly against big platforms

You are never charged for a platform that returns nothing, and the run's status message names each silent platform and why — it needs your cookie, it had nothing in the window, or it refused the request. If Weibo + Bilibili + Douban is not enough for your use case without cookies, that is worth knowing before you run this rather than after.

  • Auto-localization — a Latin brand name (Nike) is expanded to its Chinese term (耐克) for ~50 known global brands and merged into one result set (the platforms index natively); extend it with searchAliases
  • Normalized output schema (no per-platform parsing needed downstream — same shape for every record regardless of platform)
  • Chinese sentiment scoring (SnowNLP model + keyword fallback) — polarity + numeric score per mention
  • Cross-platform deduplication (the same KOL post reposted across platforms = one canonical record with a crossPlatformReposts array — no double-billing)
  • Filtered by recency (default 7-day lookback, configurable up to 30 days)
  • Author identity in every record (handle, follower count, verified flag) — weight your dashboard by reach, not by raw count
  • Engagement metrics (likes, comments, shares, views where the platform exposes them)
  • Reach & engagement scoring — every mention carries an engagementScore built from real likes / comments / reposts, so you can rank by actual traction instead of raw mention count. Each mention also carries authorVerified. There is an influenceTier field (nano / micro / macro / kol), but it is derived from follower count and the platforms' search endpoints do not return follower counts — measured across 248 live mentions, it reads unknown on all of them. Rank by engagementScore + authorVerified; treat influenceTier as populated only where a platform exposes followers.
  • 🆕 Run summary record — each run also emits a SUMMARY (in the key-value store) with per-platform + overall rollups and a reach-weighted sentiment that weights each mention by its engagement — a single brand-health number, not just a mention dump
  • Delta mode (optional, off by default) — with deltaMode on, a run returns and bills only the mentions no earlier run returned for the same brand. A quiet period returns nothing and bills nothing; leave it off when you want the mention set itself (see Scheduled monitoring presets for the trade-off). It remembers up to 200,000 mention IDs per brand (about 125,000 if most are RedNote's longer IDs); a mention returned again counts as recent, and when the memory is full the mentions not returned for the longest time are forgotten first — one that comes back after that is delivered and billed again.
  • 🆕 Multi-brand share-of-voice — add competitorBrands and the run tracks your brand + competitors together, returning a share-of-voice rollup (mentions, share %, reach-weighted sentiment per brand) in the SUMMARY. Your brand vs the field in one call — the native unit of competitive brand monitoring.
  • 🆕 Velocity / spike alerts — turn on velocityTracking and each scheduled run scores your brand's mention volume against its recent baseline, flagging a spike when it surges (a brewing crisis, a launch going viral, a ticker heating up before earnings). Turns an hourly schedule into an early-warning system — the velocity block (current vs baseline, % change, spike flag) lands in the SUMMARY.

Platforms covered

PlatformWhat it capturesYour cookie needed?Why it matters for brand monitoring
Weibo (微博)Public microblog mentions, KOL posts, hot search trendingNo — optional cookieStrings.weibo raises recall on mid-tail keywordsChina's Twitter. 580M+ users. Where consumer crises break first and KOL endorsements reach hundreds of millions in hours.
RedNote / Xiaohongshu (小红书)Lifestyle and consumer brand notes, first-person product reviews, unboxingsYes — keyword search answers only to a signed-in session: cookieStrings.rednote300M+ users. A main channel for first-person purchase reviews in beauty, skincare, fashion, food, travel.
Bilibili (B站)Video titles, descriptions, and creator mentionsNoChina's YouTube. 300M+ users. Where Gen Z consumer brand affinity forms and where unboxing / review culture lives.
Douban (豆瓣)Group discussions (豆瓣小组) whose title names the brand — title, reply count, group, timeNo200M+ users. Interest groups where people argue about products, brands and ambassadors — the "should I buy it" and "is this brand still cool" threads.
Xueqiu (雪球)Stock cashtag and corporate mentions for listed brands (NASDAQ:JD, BABA, HK:00700, A-share)Yes for keyword search — cookieStrings.xueqiu; without it only the trending feed is scanned for the name20M+ users, financial-grade signal. Critical if your brand is publicly listed — finance KOLs move retail sentiment fast.
Black Cat (黑猫投诉) — opt-inFormal consumer complaints: title, summary, what the consumer asks for, status, amount involved — from the public feed and from your company's own complaint listNoSina's complaint platform, where refund, defect and customer-service disputes go on the record and the company replies. The sharpest crisis signal to read next to social mentions. Not in the default set — add "blackcat" to platforms.

Together these five cover the spectrum of Chinese consumer signal: broad public opinion (Weibo), high-trust consumer reviews (RedNote), Gen-Z video sentiment (Bilibili), community discussion (Douban groups), and investor sentiment (Xueqiu). For most consumer brands, monitoring any 3 of these can surface shifts in consumer sentiment before they reach your CRM dashboards.

Black Cat complaints (opt-in)

Black Cat (黑猫投诉, tousu.sina.com.cn) is Sina's consumer-complaint platform: consumers file formal complaints against a company (refunds, defects, customer service) and the company answers there. It is not in the default platform set — add "blackcat" to platforms to switch it on. A run that leaves platforms out, or empty, reads exactly the five social platforms, as before.

Two sources, no login and no cookie:

  • Your brand in the public latest-complaints feed. Each run reads the first 20 pages of Black Cat's public feed once (200 complaints against any company, most recently active first) and keeps the complaints whose company name, title or summary names your brand — with the same search terms as every other platform (the auto-localized name, searchAliases, and each of your competitorBrands). Chinese names match anywhere; a Latin name only as its own word. The feed moves fast: on 25 Sep 2026 those 200 complaints were filed in the last ~2 h 20 min, across all of China, mostly against big platforms (Meituan, Douyin, Pinduoduo, Taobao). A brand that is not a household platform will often have none in it — that is what the company list is for.
  • Your company's own complaint list — blackCatCompanyIds. Each list is read most recently active first, keeping complaints filed inside lookbackDays. Feed matches and company-list complaints share one maxMentionsPerPlatform (feed matches first; a complaint found in both is delivered once) — when earlier matches already fill it, a company list is not read and the status message names that ID. Black Cat shows anonymous visitors the first 50 pages (500 complaints) of a list. These rows belong to brandKeyword; competitors are matched in the feed only.

How to find a couid: on tousu.sina.com.cn, search your brand and open its company page — the URL ends in couid=<number> (e.g. https://tousu.sina.com.cn/company/view/?couid=2092643773 is 美团客服小美). Paste the number or the whole URL into blackCatCompanyIds.

{ "brandKeyword": "美团", "platforms": ["weibo", "blackcat"], "blackCatCompanyIds": ["2092643773"], "lookbackDays": 1 }

Each row is one complaint in the same mention format as every other platform: platform = "blackcat", content = title + summary (Black Cat's lists show the summary, sometimes cut with "..."), publishedAt = when it was filed (UTC), url = the complaint page exactly as Black Cat serves it, and engagementMetrics = its upvotes (as likes), comments and shares. authorId, authorName, authorFollowerCount and authorVerified are always null: the complainant's name and avatar are never read. Extra fields: blackCatComplaintId, blackCatCompanyName, blackCatCompanyId (null when the company has no Black Cat company page), blackCatStatus / blackCatStatusEn / blackCatStatusCode (处理中 in progress, 已回复 replied, 已完成 completed, …), blackCatAppeal (what the consumer asks for), blackCatIssue, blackCatAmountCny (the amount involved — feed rows only), blackCatSummaryTruncated, blackCatSource (feed / companyList) and blackCatMatchedIn (where the brand name appears: companyName / title / summary; empty for a company-list complaint that does not name it).

Price: $0.06 per complaint delivered, like any mention. Feed complaints that do not name your brand, complaints filed before lookbackDays (or with no filing time the run can read), and a complaint already delivered for the same brand in the run (found both in the feed and in a company list) are never delivered or charged. Complaints from your blackCatCompanyIds lists are delivered and charged whether or not their text names the brand — you asked for that company's list (blackCatMatchedIn is then empty). A complaint that names two brands you track (e.g. "买到假李宁和假安踏" with competitorBrands) is delivered and charged once under each brandKeyword, as a post naming both is on every other platform. A complaint is never merged into another platform's post as a crossPlatformReposts entry: it is always its own row.

When it returns nothing, the status message says why: none of the feed's complaints named the brand (or only older or undated ones did), a company ID was rejected by Black Cat, a company list had no complaint inside the window among the ones Black Cat shows, or Black Cat refused the requests. Black Cat requests go one at a time, at least 0.5 s apart, without the run's proxy, and stop for the run after 5 failures in a row.

Who this Actor is built for

Buyer profileUse caseExample monthly budget
Brand monitoring agencyDaily monitoring across 5-20 client brands, per-client dashboard$500–$7,000/mo
DTC brand entering ChinaDaily monitoring on own brand + 2-3 competitors, weekly sentiment report to CMO$150–$500/mo
Crisis monitoring / PR teamHourly polling, negative-sentiment + KOL-reach filter, Slack alerts on inflection$200–$800/mo
China-watcher hedge fund / equity researchDaily Xueqiu + Weibo monitoring on 10-30 portfolio tickers (BABA, JD, PDD, NIO, BYD, POP MART, Yum China, etc.)$500–$2,500/mo
AI / LLM training data teamOne-time and periodic bulk pulls for Chinese-language SFT / RLHF corpora with explicit sentiment labels$500–$3,000 per pull
Influencer / KOL research agencyWeekly category keyword pulls, rank by engagementScore + authorVerified, candidate KOL lists$100–$500/mo
Localization / cross-cultural researchPeriodic pulls to track brand reception across platforms; academic + market research$50–$300/mo

If you're in any of these buckets and you're not actively monitoring all 5 platforms, you're flying blind on the world's second-largest consumer market.

Example use cases

1. Daily brand health dashboard

Cron daily at 8am local time, single brand keyword, 7-day lookback, sentiment + dedup enabled. Push the canonical mentions to your BI tool (Looker / Metabase / Hex / Sigma) for a stacked-by-platform sentiment chart, follower-weighted reach total, and top-10 highest-engagement mention list. Typical volume: 100 mentions/day × 30 days = 3,000/mo. Cost: ~$180/mo per brand.

2. Crisis monitoring (hourly polling + Slack alerts)

Cron every hour, 1-day lookback, sentiment-enabled, filter for sentiment.polarity == "negative" AND authorFollowerCount > 10000. Pipe matching records to a Slack webhook that pings #pr-alerts. Typical volume: ~200 mentions/day amortized = 6,000/mo. Cost: ~$360/mo per brand (or ~$300/mo at lower-traffic baseline of 5,000 mentions/mo). A single prevented PR crisis pays for the entire year.

3. Pre-launch competitor intelligence (one-off pull)

Before launching a new SKU in China, pull 30 days of mentions on each competitor brand keyword across all 5 platforms. Analyze: which platforms each competitor over-indexes on, which KOLs are talking about them, what sentiment dominates, what product attributes get the most positive vs negative mentions. Typical volume: 5 competitors × 500 mentions = 2,500 mentions one-time. Cost: ~$150 one-time per quarter.

4. KOL identification and vetting

Weekly run on your category keyword (护肤 for skincare, 球鞋 for sneakers). Filter for authorVerified == true, then sort by engagementScore (or engagementMetrics.likes) descending. Top 20 = your candidate KOL list, ranked by the traction their posts actually get rather than by paid impressions. Note: do not filter on authorFollowerCount — the platform search endpoints omit it, so it is null. Typical volume: 2,000 mentions/mo. Cost: ~$120/mo per category.

5. China-watcher hedge fund alt-data

Daily run on each portfolio ticker (BABA, JD, PDD, BIDU, NIO, BYD, ANTA, Yum China, POP MART, etc.). Pull mentions from Xueqiu (financial sentiment) + Weibo (consumer sentiment) + RedNote (brand affinity). Build a sentiment-velocity feature: 7-day mention delta + polarity shift. Typical volume: 22,000/mo across 20 tickers. Cost: ~$1,320/mo.

6. AI / LLM training data corpus

One-time bulk pull across 50 consumer-brand keywords. 1,000 mentions per brand = 50K labeled Chinese-language consumer text records with explicit sentiment polarity. Drop into your SFT or RLHF pipeline. Typical volume: 50,000 mentions one-time. Cost: ~$3,000.

Pricing

  • mention-aggregated event: $0.06 per canonical mention (billed only on deduplicated records — cross-platform duplicates are free)
  • No subscription. No setup fee. No minimum spend. No annual contract.
  • Why premium vs single-platform scrapers: Running 5 scrapers separately and reconciling output downstream (parsing 5 different shapes, deduping reposts, joining sentiment) is a 4-6 hour engineering job per pipeline plus ongoing maintenance. The aggregator does it in one call with one billing line.

Realistic costs

WorkflowVolumeCost
Single brand, daily monitoring, 100 mentions/day3,000 mentions/mo~$180/mo
10 brands, daily monitoring, 500 mentions/brand/day150,000 mentions/mo~$9,000/mo
Crisis monitoring, hourly, 1 brand5,000-6,000 mentions/mo~$300-$360/mo
AI training corpus (one-time bulk pull)50,000 mentions~$3,000 one-time
Quarterly competitor intelligence (5 brands × 500 mentions)2,500 mentions/quarter~$150/quarter

A single-brand daily monitor here runs ~$180/mo, and multi-brand programs pay per mention pulled, not per seat or per year. You own the raw data — no walled-garden dashboard, no annual contract, no per-seat licensing.

No compute or proxy charges — you pay only the listed events.

Example input

{
"brandKeyword": "李宁",
"platforms": ["weibo", "bilibili", "rednote", "douban", "xueqiu"],
"maxMentionsPerPlatform": 200,
"lookbackDays": 7,
"sentimentAnalysis": true,
"deduplication": true
}

One brand keyword, one call, mentions back from all 5 platforms. lookbackDays filters per-platform so you only get fresh content; deduplication collapses cross-platform reposts; sentimentAnalysis tags every record.

⏰ Set up daily monitoring in 2 minutes

Most of this Actor's value is in recurring runs, not one-off pulls. A daily (or hourly) schedule turns a single brand pull into a continuous cross-platform brand-health feed — and that's exactly where pay-per-result compounds: every run adds fresh mentions for cents, and the history builds itself.

  1. Run it once with your input. Enter your brand keyword across the 5 platforms (see Example input), click Run, and check the output to confirm you're getting the mentions you want.
  2. Create the schedule. In the Apify Console go to Schedules → Create, pick this Actor and your saved input — or just open a finished run and click Schedule to carry that exact config over.
  3. Set a cron and save. For example 0 8 * * * = daily at 8am, or 0 * * * * = hourly. Save it. While you're there, enable an email notification on failed runs so you're told the moment a scheduled run breaks.

Each scheduled run appends fresh results to the same dataset, so you build a continuously-updated history of your brand across Weibo, RedNote, Bilibili, Douban, and Xueqiu — with zero manual work and billing only on the canonical (deduplicated) mentions each run returns.

💡 Useful cron patterns: 0 8 * * * (daily brand-health dashboards) · 0 * * * * (hourly crisis monitoring) · */15 * * * * (every 15 min during product launches or crisis response). See Apify Schedules for the full syntax.

🧠 Need this at AI-training-corpus scale?

If you're pulling cross-platform Chinese consumer text — brand mentions, reviews, KOL posts — to train or fine-tune models rather than to monitor a brand, the Chinese AI Training Corpus Engine assembles all 5 platforms (Weibo, RedNote, Bilibili, Douban, Xueqiu) into AI-ready documents in one run: deduplicated, quality-scored, PII-scrubbed, and provenance-stamped (source URL, license hint, content hash) for EU AI Act documentation. From $0.025/doc — rejects and duplicates are never charged.

Scrape Chinese brand mentions with Python, JavaScript, or no code

You can use Chinese Brand Monitor directly from the Apify Console (no code), or integrate it into your scripts.

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("zhorex/chinese-brand-monitor").call(run_input={
"brandKeyword": "李宁",
"platforms": ["weibo", "bilibili", "rednote", "douban", "xueqiu"],
"maxMentionsPerPlatform": 100,
"lookbackDays": 7,
"sentimentAnalysis": True,
"deduplication": True,
})
for mention in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"[{mention['platform']}] {mention['sentiment']['polarity']}: "
f"{mention['contentSnippet']} (reach: {mention['authorFollowerCount']})")

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('zhorex/chinese-brand-monitor').call({
brandKeyword: '李宁',
platforms: ['weibo', 'bilibili', 'rednote', 'douban', 'xueqiu'],
maxMentionsPerPlatform: 100,
lookbackDays: 7,
sentimentAnalysis: true,
deduplication: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((m) => {
console.log(`[${m.platform}] ${m.sentiment.polarity}: ${m.contentSnippet}`);
});

Using the raw REST API (Postman / curl)

⚠️ The run endpoint is asynchronous — its response is the run object (IDs + status), NOT your mention data. If you POST to /acts/.../runs you get back something like { "data": { "status": "READY", "defaultDatasetId": "…" } } with no mentions in it — that's expected, the run hasn't finished yet. The mentions land in the run's dataset, not in that response. (The containerUrl link is the live container; once a run finishes it just shows "run has already finished with status SUCCEEDED" — that means success, it is not where the data lives.)

Easiest — one call that waits for the run and returns the mentions directly:

curl -X POST "https://api.apify.com/v2/acts/zhorex~chinese-brand-monitor/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"brandKeyword":"李宁","platforms":["weibo","bilibili","rednote","douban","xueqiu"],"maxMentionsPerPlatform":100,"lookbackDays":7}'

The response body is the JSON array of mentions — no second call needed.

Or async — start the run, then fetch the dataset once it finishes:

# 1) start the run — note the "defaultDatasetId" in the response
curl -X POST "https://api.apify.com/v2/acts/zhorex~chinese-brand-monitor/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" -d '{"brandKeyword":"李宁","maxMentionsPerPlatform":100}'
# 2) when the run status is SUCCEEDED, fetch the mentions from its dataset
curl "https://api.apify.com/v2/datasets/DEFAULT_DATASET_ID/items?token=YOUR_API_TOKEN"

💡 In the Apify Console you can also open any run and click the Output / Storage → Dataset tab to view and download the same data as JSON / CSV / Excel.

🔁 Recurring runs are where this Actor pays off — if you haven't yet, jump up to Set up daily monitoring in 2 minutes to put your brand on a cron.

Example output (one mention record)

{
"mentionId": "weibo_4923475823745",
"platform": "weibo",
"brandKeyword": "李宁",
"brandMatchType": "exact",
"content": "李宁的新款跑鞋质量真不错,比之前的耐克舒服多了!",
"contentSnippet": "李宁的新款跑鞋质量真不错…",
"language": "zh-CN",
"authorId": "1234567890",
"authorName": "运动达人",
"authorFollowerCount": 12500,
"authorVerified": true,
"publishedAt": "2026-05-15T14:32:11+00:00",
"engagementMetrics": {
"likes": 234,
"comments": 18,
"shares": 42,
"views": null
},
"engagementScore": 294,
"influenceTier": "unknown",
"url": "https://weibo.com/1234567890/4923475823745",
"mediaUrls": ["https://wx1.sinaimg.cn/large/..."],
"sentiment": {
"polarity": "positive",
"score": 0.72,
"method": "snownlp"
},
"crossPlatformReposts": [
{ "platform": "rednote", "url": "https://www.xiaohongshu.com/explore/abc123", "publishedAt": "2026-05-15T15:01:08+00:00" }
],
"scrapedAt": "2026-05-16T10:00:00+00:00"
}

Output schema reference

FieldTypeNotes
mentionIdstring{platform}_{platformId} — unique per brand within a run (with competitorBrands, a post or complaint that names two tracked brands appears once under each brandKeyword)
platformenumweibo / bilibili / rednote / douban / xueqiu / blackcat (opt-in)
brandKeywordstringEcho of input — useful when piping to a multi-brand store
brandMatchTypeenumexact / partial / tag
contentstringFull mention text
contentSnippetstringFirst 100 chars for preview UIs
languagestringzh-CN / en / mixed / und
authorIdstring|nullPlatform-specific user id
authorNamestring|nullDisplay name / screen name
authorFollowerCountint|nullWhere the platform exposes it
authorVerifiedbool|nullPlatform-specific verification flag; null where the author is not shown (Douban and Black Cat rows)
publishedAtISO 8601UTC; empty string if platform doesn't expose it
engagementMetricsobject{likes, comments, shares, views} — null per-field where unsupported (Douban: comments = the topic's reply count)
engagementScoreint🆕 Sum of likes + comments + shares (0 where the platform doesn't expose engagement)
influenceTierenum🆕 nano / micro / macro / kol from authorFollowerCount; unknown when follower count isn't exposed
urlstringCanonical mention URL
mediaUrlsstring[]Images / video URLs
sentimentobject|absentOnly present when sentimentAnalysis: true
crossPlatformRepostsobject[]Only populated when deduplication: true; empty array otherwise
scrapedAtISO 8601When the aggregator extracted this record
tagsstring[]Bilibili rows only — the video's tags as its uploader set them. Bilibili search also matches tags, so a video whose title and description don't name the brand matched through one of these
doubanGroupNamestring|nullDouban rows only — the group the discussion was posted in, as Douban displays it (long names arrive shortened with "...")
doubanGroupUrlstring|nullDouban rows only — that group's URL
blackCat…variousBlack Cat rows only — complaint number, company, status, appeal, issue, amount, source and where the brand matched; see Black Cat complaints (opt-in)

Run summary (SUMMARY record)

Besides the per-mention dataset, every run writes a SUMMARY object to the run's key-value store (key: SUMMARY) — a ready-made brand-health rollup so you don't have to aggregate the dataset yourself. Fetch it from https://api.apify.com/v2/key-value-stores/{storeId}/records/SUMMARY or the Console's Storage → Key-value store tab.

{
"recordType": "summary",
"brandKeyword": "李宁",
"totalMentions": 200,
"reachWeightedSentiment": 0.34,
"overall": {
"mentions": 200,
"totalEngagement": 48210,
"sentiment": { "positive": 120, "neutral": 50, "negative": 30, "unscored": 0 },
"influenceTiers": { "kol": 0, "macro": 0, "micro": 0, "nano": 0, "unknown": 200 }
},
"byPlatform": {
"weibo": { "mentions": 140, "totalEngagement": 41200, "sentiment": { "positive": 90, "neutral": 30, "negative": 20, "unscored": 0 }, "influenceTiers": { "kol": 0, "macro": 0, "micro": 0, "nano": 0, "unknown": 140 } }
}
}

reachWeightedSentiment weights each mention's sentiment score by its engagement (+1), so a viral negative post moves the needle more than a zero-engagement one — a better brand-health signal than a flat average. Mentions without exposed engagement / follower data fall back to an equal weight and an unknown tier.

When you supply competitorBrands, the SUMMARY also carries a shareOfVoice object — for your brand and each competitor: mentions, sharePct (share of total mentions across the tracked set), reachWeightedSentiment, and a positive/neutral/negative sentiment breakdown — a head-to-head competitive read in the same run:

"shareOfVoice": {
"李宁": { "mentions": 120, "sharePct": 48.0, "reachWeightedSentiment": 0.31, "sentiment": { "positive": 70, "neutral": 35, "negative": 15, "unscored": 0 } },
"耐克": { "mentions": 130, "sharePct": 52.0, "reachWeightedSentiment": 0.44, "sentiment": { "positive": 85, "neutral": 30, "negative": 15, "unscored": 0 } }
}

Delta runs additionally tag the SUMMARY with deltaMode: true and a since timestamp (the previous run's time), so a scheduled consumer knows exactly which window the new mentions cover.

With velocityTracking on, the SUMMARY also carries a velocity block — per brand: current (this run's count), baseline (trailing average of recent runs), velocityPct (% change vs baseline), and spike (true when the surge crosses the threshold). Schedule it hourly and spike: true is your early-warning trigger for a crisis or a viral moment:

"velocity": {
"耐克": { "current": 38, "baseline": 12.5, "velocityPct": 204.0, "spike": true, "windowRuns": 6 }
}

What this Actor is NOT

  • Not a real-time stream. Poll-based — 5-15 minute effective refresh is realistic. If you need millisecond latency, this isn't the right tool.
  • Not WeChat coverage. WeChat has no public scraping interface; trying is a fast way to get accounts banned.
  • Not Douyin (TikTok China). Out of scope in the current release — under evaluation for the roadmap.
  • Not Toutiao (news aggregator) — separate scraper if needed.
  • Not a Synthesio replacement at the largest enterprise scale. Synthesio also covers TV, podcasts, news, and provides a managed-service layer. This Actor is the data layer; bring your own BI / dashboard / alerting stack.

Platform-specific coverage notes

  • Weibo: Public microblog search. Works anonymously by default; pass cookieStrings.weibo for higher recall on mid-tail keywords and reduced rate limiting.
  • Bilibili: Video search (titles + descriptions + creator metadata). No login required.
  • RedNote (Xiaohongshu): ⚠️ returns nothing without your cookie. RedNote closed anonymous keyword search in July 2026 — a logged-out search gets a login error or a generic recommendation feed instead of matches, and this Actor stops before paying for that rather than bill you for it. Measured across 41 runs (Jul–Aug 2026): 0 rows. Add your own RedNote session as cookieStrings.rednote and the Actor passes it to the search; you are never charged for a platform that returns nothing. For creator feeds, which work anonymously, use zhorex/rednote-xiaohongshu-scraper directly.
  • Douban: Group discussions (豆瓣小组), no cookie needed. The Actor runs Douban's group-discussion search sorted by time and keeps only topics whose title contains your keyword (case-insensitive for Latin names) inside lookbackDays, newest first. Douban's search is fuzzy — for 李宁 it also returns titles that hold 李 and 宁 apart (宁艺卓, 李庚希) and topics that match only somewhere in the body; those are never delivered or charged. A Latin name must stand as its own word: Anta inside "Fantasy" or LV inside "silver" is not a mention (Chinese characters or a model number next to it are fine: "柳智敏nike活动", "iPhone15"). Each row carries the full title as content, the topic url, publishedAt (the topic's creation time, Beijing time converted to UTC), the reply count in engagementMetrics.comments, and the group in doubanGroupName / doubanGroupUrl. Topic bodies and authors are not included (authorName, authorId and authorVerified are null): Douban showed topic pages only to signed-in visitors in our tests (anonymous requests got HTTP 403, and pushing them got the IP flagged), so the Actor never opens them. A keyword match is not always the brand (李宁玉 is also a character in the film 风声) — true of keyword monitoring on every platform. All Douban requests of a run go one at a time, at least 3.5 s apart, and each search term reads at most 4 result pages (~200 topics) within a time limit — so a heavily discussed brand with a long lookbackDays can stop before the start of the window. When Douban returns nothing, the status message says whether the whole window was read or how far back the search got and why it stopped. Films, books and albums named like the brand — what this platform returned before September 2026 — are no longer returned: they are catalogue entries, not mentions.
  • Black Cat (opt-in): runs only when "blackcat" is in platforms — see Black Cat complaints (opt-in).
  • Xueqiu: Keyword search answers only to a signed-in session — pass cookieStrings.xueqiu. Without it the Actor can only scan Xueqiu's public trending feed for posts that contain the brand name, which rarely finds a specific brand.

Optional cookies

Pass per-platform cookies under the cookieStrings input field. What a cookie does per platform:

KeyWithout itWith it
rednotekeyword search returns nothingthe search runs with your RedNote session
xueqiuonly Xueqiu's trending feed is scanned for the nameXueqiu keyword search
weiboworks (anonymous visitor session)higher recall on mid-tail keywords, fewer rate limits
doubanworks (group-discussion search is anonymous)Douban's "unusual requests from your IP" page asks for a login, so a logged-in session may get past it if it triggers (not yet measured)
bilibiliworksnot needed

The field is marked as a secret in the input schema — values are encrypted at rest by Apify. RedNote searches run through zhorex/rednote-xiaohongshu-scraper on the developer's Apify account with your RedNote cookie in that run's input; the run and its storages are deleted right after its results are read (best effort; a failed delete is logged).

{
"brandKeyword": "李宁",
"cookieStrings": {
"weibo": "<paste your weibo.com Cookie header here>",
"xueqiu": "<paste your xueqiu.com Cookie header here>",
"rednote": "<paste your xiaohongshu.com Cookie header here>"
}
}

How to grab a cookie string: open the platform's website in your browser, sign in if you have an account, then DevTools → Application → Cookies → copy the full Cookie header value. Without cookies the run still succeeds on Weibo, Bilibili and Douban; RedNote and Xueqiu keyword search need them.

⏳ Cookies expire (~1–2 weeks) — important for scheduled runs. Because scheduled runs are automated, an expired cookie silently drops that platform to low recall until you refresh it. Set a reminder to re-grab cookies every ~10 days; the run logs flag reduced access per platform. Cookie modes read what your own logged-in session can see; use only a session you are authorised to use — the platform may rate-limit or suspend an account used this way.

💲 Proxy. The default proxyConfiguration (Apify Residential + CN) spreads requests across Chinese residential IPs — which matters on Douban, which flags an IP after a handful of rapid requests. No compute or proxy charges are added on top of the per-mention rate — you pay only the listed events.

FAQ

What does this Chinese brand monitor cover?

The Chinese Brand Monitor by Zhorex is built for teams that need cross-platform coverage without an annual contract. It aggregates Weibo, RedNote (Xiaohongshu), Bilibili, Douban, and Xueqiu in one normalized output at $0.06 per mention. No subscription, no minimum spend, no annual contract.

How is this different from Synthesio, Brandwatch, Talkwalker, or Meltwater?

Enterprise platforms like Synthesio, Brandwatch, Meltwater, and Talkwalker are sold on annual contracts with per-seat licensing. Chinese Brand Monitor is pay-per-mention at $0.06, for teams who don't need TV / podcast / news coverage and already have their own BI stack. You own the raw data, no walled-garden dashboard.

How much does it cost to monitor a Chinese brand?

For a typical daily-monitoring workflow on one brand: ~$180/mo (100 mentions/day × 30 days × $0.06). For a 10-brand agency portfolio at heavy volume: ~$9,000/mo. For a one-time AI training corpus of 50K mentions: ~$3,000 one-time. See the Realistic costs table for more examples.

Is there an official Weibo / RedNote / Bilibili / Douban / Xueqiu API for brand monitoring?

No. None of these platforms offer a public official API for cross-platform brand monitoring. Weibo's developer API requires a Chinese business license. RedNote / Xiaohongshu has no public API. Bilibili / Douban / Xueqiu APIs are deprecated, geo-restricted, or auth-gated. This Actor is a Chinese social listening alternative for international teams that need the data without Chinese business registration.

Can I monitor in real time?

Effective refresh is 5-15 minutes with Apify Schedules. For most brand monitoring and crisis response use cases this is more than fast enough — KOL posts surface within hours, not seconds. If you need millisecond latency, you're looking at a streaming API and this isn't the right tool.

Can I scrape Chinese brand mentions in Python?

Yes. Install the Apify Python client (pip install apify-client), then call zhorex/chinese-brand-monitor from any Python script. See the Python code example above. Works identically in JavaScript / Node, Go, Ruby, or any language with HTTP — Apify exposes a REST API for every actor.

Without cookies this Actor reads public pages; cookie modes read what your own logged-in session can see. No login bypass, no private accounts, no DMs, no follower lists. Optional cookieStrings are your own signed-in sessions — required for RedNote and Xueqiu keyword search, optional elsewhere — and are never used to bypass authentication. Always review your local laws and each platform's terms of service for your specific use case.

Does this require a Chinese business license or VPN?

No. The Actor runs on Apify's infrastructure with residential proxy support and is globally accessible. You don't need a Chinese business registration, a Chinese mobile number, or a VPN. Just an Apify account.

What is crossPlatformReposts and why does it matter?

When a viral post spreads from Weibo to RedNote (or any combination), this Actor detects the near-duplicate using SimHash similarity and merges them into a single canonical record — with the repost paths preserved in a crossPlatformReposts: [...] array. You don't pay twice for the same mention, and you get a free virality signal: any record with crossPlatformReposts.length >= 2 is a cross-platform breakout moment, often before mainstream Chinese media picks it up.

How do I track Chinese KOLs?

Every mention record includes authorName, authorFollowerCount, authorVerified, and the engagement metrics for that post. Filter the output for authorVerified == true AND authorFollowerCount > 50000, sort by engagement, and you have a KOL candidate list ranked by actual cultural reach. Use the Weibo Scraper for deeper profile enrichment on identified KOLs.

Can I use this for Chinese sentiment analysis / AI training data?

Yes — it's one of the highest-value use cases. Bulk-pull mentions across diverse brand keywords with sentimentAnalysis: true to get pre-labeled Chinese-language consumer text records with explicit positive / neutral / negative polarity and a numeric sentiment score. Drop into your SFT or RLHF pipeline for Chinese consumer-domain LLM fine-tuning.

What if I need deeper coverage of one platform?

Use the dedicated single-platform actors:

The aggregator is for recurring cross-platform brand monitoring with normalized output. The single-platform scrapers are for one-off deep extraction inside one platform.

Built on zhorex's Chinese platform scraper suite

This aggregator complements the single-platform scrapers in the same suite:

  • Weibo Scraper — deep microblog scraping with full comment trees
  • Bilibili Scraper — deep video scraping: metadata, comments, danmaku, creator analytics
  • RedNote / Xiaohongshu Scraper — full Xiaohongshu coverage: search, post details, profiles, videos, comments, infinite scroll
  • Douban Scraper — movies / books / music with full reviews
  • Xueqiu Scraper — stock posts + user timelines
  • JD.com Scraper — JD product detail extraction
  • 🆕 Chinese AI Training Corpus Engine — turns Weibo / RedNote / Bilibili / Douban / Xueqiu into AI-training-ready documents: deduplicated, quality-scored, PII-scrubbed, provenance-stamped for EU AI Act documentation
  • 🆕 AI Brand Visibility Monitor — the GEO companion to this monitor: see how the AI engines (DeepSeek, Qwen, Kimi, GLM + ChatGPT, Gemini, Claude) answer about your brand — mention, sentiment, rank, share-of-voice, cited sources.

If you need single-platform deep scraping (full comment trees, user profile enrichment, infinite scroll, comment threads), use the platform-specific actors directly — including the Bilibili Scraper for deep video extraction. This aggregator is for cross-platform brand mention tracking with normalized output.

Compliance posture

  • Only public mentions — no private accounts, no DMs, no follower lists, no email scraping
  • No login bypass; cookies are the user's own sessions (required for RedNote and Xueqiu keyword search, optional elsewhere) and stored as a secret in the input schema (encrypted at rest by Apify)

Integrations & data export

The Actor integrates with your existing workflow tools:

  • Google Sheets — Send scraped mentions directly to a spreadsheet
  • Slack — Webhook on completed runs, or filter to alert on negative-sentiment KOL mentions
  • Zapier / Make / n8n — Trigger downstream workflows on new mentions
  • REST API — Call the actor programmatically from any language
  • Webhooks — Get notified when a scheduled run finishes
  • Data formats — Download as JSON, CSV, Excel, XML, or RSS

Roadmap

  • Chinese BERT sentiment model (replaces SnowNLP for higher accuracy on nuanced cases)
  • Per-mention English translation field (drop your DeepL / Google Translate cost)
  • Webhook / streaming output (push mentions as they're scraped instead of batched)
  • Douyin (TikTok China) coverage — under evaluation
  • Expanded brand-match modes (regex, fuzzy, multi-keyword OR)

Changelog

2026-09-26 — deltaMode: a mention is no longer billed twice

  • Fixed: a brand's delta memory kept mention IDs in the order they were first delivered and was cut to the last 20,000, but a mention returned again kept its old place. Mentions still being returned — a popular post that stays at the top of a platform's results — were the first forgotten once a brand passed 20,000 IDs, and the next run delivered and billed them again. A mention returned again now counts as recent; only the mentions not returned for the longest time are forgotten.
  • Fixed: when a run could not read a brand's delta memory (an Apify API error), it saved that run's few mentions over the whole memory, and the next run delivered and billed everything again (offline: 100 remembered, then 3, then 97 billed again). It now re-reads the memory when saving and adds to it, or leaves it untouched if it still cannot be read.
  • The memory holds up to 200,000 IDs per brand (was 20,000), under about 5 MB. Memories saved by earlier builds load as they are. No price, default or prefill change; runs without deltaMode are unchanged.

Support

Found a bug or want a new field? Open an issue on the Actor page.


💡 Reviews, good or bad, help other users decide: leave a rating.