Weibo hands an anonymous client zero words. We measured a public profile through residential exits in the United States, Germany and Singapore on 28 September 2026, over plain HTTP and rendered in a browser: six passes, six answers of 9,558 bytes titled Sina Visitor System, 0 words each. Eight more surfaces, from the mobile site to the hot-search page, returned the same or a 21-byte JSON error. On Weibo the setting is not a proxy at all: it is the documented Open API with an app key for the profile, and the search index for discovery, where one collector run returned 10 Weibo rows in 5.9 seconds.
The search results for this keyword are SEC proxy filings for Weibo Corporation, a paper about IP-location labels on Chinese social media, and one vendor listicle. The listicle says the right proxy makes you look like you are browsing from inside the country. We tested that claim's premise from three continents, and the premise is wrong: the country never entered into it.
Six passes, three countries, zero words
The audit target was a public profile at weibo.com/u/<id>. Every request, from every exit, with and without JavaScript, was redirected to passport.weibo.com/visitor/visitor and answered with the visitor page.
| Exit country | Plain HTTP | Rendered in a browser | Time to answer |
|---|---|---|---|
| United States | 0 words, 9,558 bytes, title Sina Visitor System | 0 words, no title | 43.2 s |
| Germany | 0 words, 9,558 bytes, title Sina Visitor System | 0 words, no title | 42.1 s |
| Singapore | 0 words, 9,558 bytes, title Sina Visitor System | 0 words, title 微博 | 9.5 s |
Read the bytes column: 9,558 from all three countries, the same file. The visitor page is a JavaScript flow that sets a visitor cookie and reloads; our rendered pass from Singapore got far enough to receive the page title 微博 and still zero words of profile, and the other two rendered passes spent over forty seconds getting nothing. There is no server-rendered profile for a client without a visitor session, and the session is not something an exit country grants. A Singapore exit, the closest we could get to the platform's home market, received the identical bytes as Germany.
This is the third shape in this series. On TikTok the exit country decided which regional backend answered. On Mastodon one cached answer served four continents. On Weibo the platform does not look at where you are; it looks at whether you carry its cookie, and an anonymous client does not.
Eight more surfaces say the same thing
We did not stop at the profile, because the vendor pages imply there is a public surface somewhere. We measured the candidates over plain HTTP from the US and, where it mattered, Singapore.
| Surface | What it returned | Bytes |
|---|---|---|
| m.weibo.cn/u/<id>, the mobile profile | redirect to visitor.passport.weibo.cn, 0 words | 9,540 |
| m.weibo.cn/api/container/getIndex, the mobile app's JSON | redirect to the visitor flow, 0 words | 9,930 |
| s.weibo.com/top/summary, the hot-search list | visitor page, 0 words | 9,564 |
| video.weibo.com/show, a video page from the search index | visitor page, 0 words | 9,790 |
| weibo.com/a/hot/..., a topic page from the search index | visitor page, 0 words, identical from US and Singapore | 9,720 |
| weibo.com/ajax/side/hotSearch | 21-byte JSON error | 21 |
| weibo.com/ajax/profile/info?uid= | 21-byte JSON error | 21 |
| weibo.com/robots.txt | the policy, in full | 968 |
The mobile container API is the one the GitHub scrapers on this keyword depend on. It redirected our plain client to the visitor flow exactly like the HTML did. The two ajax endpoints behind the desktop site answered a plain client with a 21-byte JSON error from both the US and Singapore. Nothing on this list distinguishes a residential exit from any other, and nothing on it distinguishes Singapore from Germany.
What does return data: the Open API and the search index
The Weibo Open Platform documents api.weibo.com/2/users/show.json: GET, JSON, Requires Login: true, Count Limitation: true, taking a uid or screen_name and returning the profile object with followers_count, friends_count, statuses_count, verified, created_at, location fields and the latest status inline. That is the same record a scraper would assemble from the page, delivered as one JSON object to an application that registered an AppKey and completed OAuth. The rate limit is per application and documented on the platform's own wiki, which is where you read it; it is not per IP, so proxies do not raise it.
For discovery, the search index already holds what the platform's own robots.txt lets search engines read. We ran our web search collector once with the query site:weibo.com 人民日报, the name of the People's Daily account. It returned 10 rows in 5.9 seconds at $0.0004 per row: a post permalink under weibo.com/2803301701/..., three video pages, two hot-topic pages, the realtime hot list and a live page. The video-page snippets carried the account's follower count, 1.58亿人关注, 158 million, and the view counts of two videos. That follower count, which no direct fetch returned from any country, arrived in 5.9 seconds without a single request to weibo.com.
# one collector call, no proxy configuration, no cookie
run_collector web_search { "query": "site:weibo.com 人民日报", "max_results": 10 }
# 10 rows, 5.9 s: permalinks, video pages, topic pages, follower count in a snippet
This is the pattern for a closed platform: the index and the API are the public surfaces, and the page is not. Our web scraping API with rendering will faithfully return the visitor page, 0 words, for $0.001; we measured it so that you do not have to pay for it.
What it costs, and what to stop paying for
All figures count 1 GB as 10^9 bytes at our residential Basic rate of $0.80/GB.
| How you fetch it | On-wire bytes | What you get | Cost per fetch |
|---|---|---|---|
| Profile, plain HTTP, any of 3 exits | 9,558 | 0 words | $0.0000076, wasted |
| Profile, rendered, any of 3 exits | not measured for bytes | 0 words in 9.5 to 43.2 s | wasted, plus the seconds |
| Mobile container API, plain HTTP | 9,930 | 0 words | $0.0000079, wasted |
| Open API users/show with AppKey and OAuth | a few KB | the full profile object | traffic negligible; the app quota is the limit |
| web_search collector, site:weibo.com | n/a | 10 rows with permalinks, counts in snippets | $0.004 for 10 rows |
The honest instruction is to spend less. A crawler that retries the profile through 10,000 rotating residential exits will move 95.6 MB, spend about $0.08, and receive the visitor page 10,000 times: cheap and useless. The same budget runs 200 collector queries against the index or covers a month of an Open API application's traffic. Nothing in eleven surfaces from three countries rewarded a better IP.
What Weibo's own files permit, in one line each
The robots.txt is 968 bytes, last modified 22 September 2026, and it is one of the most explicit files in this series. Eight search engines (Baiduspider, 360Spider, Googlebot, Sogou, bingbot, smspider, HaosouSpider, YisouSpider) are allowed everything with a Crawl-delay of 1. Eleven AI agents (Perplexity-User, DeepSeekBot, Bytespider, OAI-SearchBot, ChatGPT-User, Kimi, Doubao, meta-externalagent, ChatGLM and two DeepSeek variants) are allowed only the sitemaps, /2/detail/ and /ttarticle/p/show. Every other client gets Disallow: / with /ads.txt as the sole exception. And every section carries the same signal line: Content-Signal: search=yes, ai-input=yes, ai-train=no.
That is the plain line: Weibo permits search indexing, permits AI assistants to read named detail pages, refuses AI training, and disallows every unnamed client from every path. The developer agreement on the Open Platform, in Chinese, governs API use by application. Reading Weibo as an anonymous client is something the platform's files say no to and its servers make impossible; no proxy setting changes either.
What this is properly for: reading your own or a client's official account through the Open API, monitoring which posts and topics about your brand are surfacing in the search index, and research on public accounts at the scale the API quota allows. Not: registering accounts, harvesting visitor cookies at volume, or reading anything the platform serves only to a logged-in session.
The setting that works on Weibo
- Network: residential, Basic at $0.80/GB, and only for the traffic your Open API application sends; three residential exits in three countries received the same 9,558-byte page from the website, so buy no more network than that.
- Fetch mode: the Open API, engine: tls, with an AppKey and OAuth as the documentation requires. The website returned 0 words plain and 0 words rendered from every exit.
- Country to pin: irrelevant to the result; the US, Germany and Singapore received identical bytes. Pin one so your application's traffic has a stable origin.
- When the proxy is not enough: always, on this platform. The web search collector returned 10 Weibo rows in 5.9 seconds for site:weibo.com 人民日报, with permalinks and a 158-million follower count in the snippets, at $0.0004 per row; the web scraping API reads the pages those rows link to off the platform at $0.0002 per page.
- Free tier: every account gets $2 of free API usage per month, which covers 500 collector rows.