Answers
How do I get a Weibo user's follower count and profile from their UID?
Short answer
Send the numeric UID to Weibo account profile (/v1/weibo/users/get) and you get followers, following, post count, verification, name and bio for $0.002 per account. Refreshing a list of 500 accounts costs $1.00; with view=full you also get the verification reason and the IP location shown on the profile.
An agency hands you a spreadsheet of 500 Weibo bloggers it worked with last year, with a UID for each, and the client wants current follower counts before renewing any deals. Opening 500 profiles by hand takes a day. With Weibo account profile it is a loop that finishes in a few minutes and leaves you a clean CSV.
What comes back
| Field | Meaning |
|---|---|
name, bio |
Display name and bio |
followers, following |
Follower and following counts as Weibo reports them |
posts |
Number of posts on the account |
verified |
Whether the account carries a verification badge |
ext.verified_reason |
The verification text, such as a job title or company (with view=full) |
ext.ip_location |
The IP location Weibo shows on the profile (with view=full) |
ext.location, ext.gender |
Location and gender as set on the profile (with view=full) |
Total likes received is not available and comes back null, listed in meta.unavailable.
Finding the UID
The endpoint takes the numeric UID only, not a link or a nickname. On a profile URL like weibo.com/u/1234567890 the number is the UID. Accounts with a custom address need one more step: search a post of theirs with Weibo post search and read author.id.
Cost
| Accounts | Calls | Cost |
|---|---|---|
| 1 | 1 | $0.002 |
| 50 | 50 | $0.10 |
| 500, refreshed monthly for a year | 6,000 | $12.00 |
Deleted or banned accounts return not_found and are not charged.
Batch lookup
import csv, os, requests
URL = "https://api.okdata.online/v1/weibo/users/get"
KEY = os.environ["OKDATA_API_KEY"]
MONTH = "2026-11"
with open("uids.txt") as f, open("profiles.csv", "w", newline="", encoding="utf-8") as out:
w = csv.writer(out)
w.writerow(["uid", "name", "followers", "following", "posts", "verified", "reason", "ip"])
for uid in (line.strip() for line in f if line.strip()):
r = requests.get(URL, params={"id": uid, "view": "full"}, timeout=30, headers={
"Authorization": f"Bearer {KEY}",
"Idempotency-Key": f"wb-profile-{uid}-{MONTH}",
}).json()
if r["code"] != "ok":
w.writerow([uid, r["code"]]); continue
a = r["data"]["item"]
w.writerow([uid, a["name"], a["followers"], a["following"], a["posts"],
a["verified"], a["ext"].get("verified_reason"), a["ext"].get("ip_location")])
The idempotency key includes the month, so rerunning the script after a crash replays finished accounts for free.
Gotchas
- The catalog has no Weibo account timeline, so you cannot list a blogger's recent posts here. Posts that mention them, or that they wrote on a keyword, can be found through search.
- Follower counts include inactive and bought followers. Compare them with the likes and reposts on the blogger's posts before you pay for reach.
- Only public profile data is returned; nothing behind a login.
Other options
Weibo's own advertising platform shows audience demographics for bloggers who take paid posts, which this endpoint cannot. Agency databases do the same for a subscription. For fewer than 20 accounts, opening the profiles is quicker than writing code. For the larger workflow of finding and vetting bloggers, see creator discovery.
Updated