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