Weibo repost API and repost-chain tracing
Based on the 2026-10-25 specification snapshot
Quick answer
Two task types show how a Weibo post spread. POST /weibo/reposts/task collects the reposts of one post; each repost record has parent_id pointing at the post it reposted, plus author, content, time, engagement counts and a sentiment label, up to 100 per page. POST /weibo/repost/parent/task runs the other way: from one repost it follows parent links toward the original (depth 3 by default, up to 10), fetching parent posts that are not yet stored, and when DONE or PARTIAL it returns the chain retrieved so far, ordered from the starting post toward the original. Data is collected by web crawlers from content publicly published on Weibo.
What teams use it for
- Find who passed a post on and when, and which reposts drew engagement of their own.
- Trace a widely shared repost back toward its original post before you cite it.
- Map how a message moved between accounts for communications or research work.
Endpoints
Base URL: https://api.infominer.io/api/v2. Send your API key in the auth-header request header.
| Method | Path | What it does |
|---|---|---|
| POST | /weibo/reposts/task |
Creates a repost collection task from a post URL. |
| GET | /weibo/reposts/task/{task_id} |
Polls a repost task; once DONE it returns repost records, each with parent_id. |
| POST | /weibo/repost/parent/task |
Traces a repost upward through its chain, fetching parent posts not yet stored. |
| GET | /weibo/repost/parent/task/{task_id} |
Polls a repost-chain task; when DONE or PARTIAL it returns the chain retrieved so far and its post count. |
Request parameters
POST /weibo/reposts/task
| Parameter | In | Type | Required | Default / allowed | Description |
|---|---|---|---|---|---|
post_url |
body | string | Yes | Weibo post URL whose reposts you want. |
GET /weibo/reposts/task/{task_id}
| Parameter | In | Type | Required | Default / allowed | Description |
|---|---|---|---|---|---|
task_id |
path | string | Yes | Task ID returned when the task was created. | |
page |
query | integer | No | 1 |
Page number, starting at 1. |
pageSize |
query | integer | No | 100 |
Reposts per page, max 100. |
POST /weibo/repost/parent/task
| Parameter | In | Type | Required | Default / allowed | Description |
|---|---|---|---|---|---|
post_url |
body | string | Yes | URL of the repost to start tracing from. | |
depth |
body | integer | No | 3 (max 10) |
How many levels to follow up the repost chain. |
GET /weibo/repost/parent/task/{task_id}
| Parameter | In | Type | Required | Default / allowed | Description |
|---|---|---|---|---|---|
task_id |
path | string | Yes | Task ID returned when the task was created. |
Response fields
| Data | Fields | Endpoint |
|---|---|---|
| Reposts | id, parent_id, url, author, author_id, content, datetime, tm, like_count, comment_count, share_count, sentiment, region | GET /weibo/reposts/task/{task_id} |
| Repost chain (starting post toward the original) | status, depth, post_url, task, data | GET /weibo/repost/parent/task/{task_id} |
Code examples
curl: create the task
curl -X POST https://api.infominer.io/api/v2/weibo/reposts/task \
-H "auth-header: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"post_url": "https://m.weibo.cn/detail/0000000000000001"}'
curl: poll the task by ID
curl "https://api.infominer.io/api/v2/weibo/reposts/task/$TASK_ID?page=1&pageSize=100" \
-H "auth-header: YOUR_API_KEY"
curl: trace a repost up its chain
curl -X POST https://api.infominer.io/api/v2/weibo/repost/parent/task \
-H "auth-header: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"post_url": "https://m.weibo.cn/detail/0000000000000201", "depth": 5}'
Python (requests): create, poll, read
import time
import requests
BASE_URL = "https://api.infominer.io/api/v2"
HEADERS = {"auth-header": "YOUR_API_KEY"}
# 1. Create the task
resp = requests.post(
f"{BASE_URL}/weibo/reposts/task",
headers=HEADERS,
json={
"post_url": "https://m.weibo.cn/detail/0000000000000001",
},
timeout=30,
)
resp.raise_for_status()
task = resp.json()
# 2. Poll until the task leaves INIT / RUNNING
for _ in range(120):
resp = requests.get(
f"{BASE_URL}/weibo/reposts/task/{task['id']}",
headers=HEADERS,
params={
"page": 1,
"pageSize": 100,
},
timeout=30,
)
resp.raise_for_status()
result = resp.json()
status = result.get("status") or result.get("task", {}).get("status")
if status not in ("INIT", "RUNNING"):
break
time.sleep(15)
else:
raise SystemExit("task still running; poll it again later")
if status == "FAILED":
raise SystemExit("task failed")
if status != "DONE":
print("task ended with status", status, "- results may be incomplete")
# 3. Read the records (use page / pageSize to fetch further pages)
for row in result.get("data", []):
print(row["parent_id"], row["author"], row["content"][:60])
Sample response
Illustrative data written by hand: accounts are sample_user_n and IDs are obviously fake. Fields follow the 2026-10-25 specification snapshot; the sample shows a subset, and the full list is in the table above.
Poll response once the task is DONE (illustrative data)
{
"task": {
"id": "00000000-0000-4000-8000-000000000001",
"status": "DONE"
},
"total_count": 1,
"data": [
{
"id": "0000000000000201",
"parent_id": "0000000000000001",
"url": "https://m.weibo.cn/detail/0000000000000201",
"author": "sample_user_3",
"author_id": "0000000000000003",
"content": "收藏了,下次去的时候试试 //@sample_user_1: 周末在巷子里的咖啡店试了新豆子",
"datetime": "2026-06-10 14:00:00",
"tm": 1781071200,
"like_count": 2,
"comment_count": 0,
"share_count": 0,
"sentiment": "Positive"
}
]
}
Limits and notes
- Reposts are read up to 100 per page.
- Repost-chain depth defaults to 3 and can go up to 10. The chain stops when no parent link remains or the depth limit is reached, so reaching the original is not guaranteed.
- A chain task can finish as PARTIAL; it then returns the posts retrieved so far, and depth gives their number.
- Repost-chain polls take no paging parameters.
More Weibo API pages
- Keyword search
- Comments
- Reposts and repost chains
- User timeline
- English translation
Request a trial
In the request form below, mention Weibo and tell us the keywords to track (Chinese, or English for a translation subscription), whether you need comments, reposts and repost chains, and the expected volume. We confirm the scope and reply with the arrangements for the trial and API key.
Fill in the form to request a trial. We confirm the scope and reply with trial and integration arrangements.
Fill in the request formFAQ
- What is the difference between the repost task and the repost-chain task?
- The repost task goes down: from one post it collects the reposts of that post. The repost-chain task goes up: from one repost it follows parent links toward the original post.
- Does the repost chain always reach the original post?
- No. It stops when no parent link remains or the depth limit (3 by default, up to 10) is reached, and a PARTIAL task returns only the posts retrieved so far.
- Can I get reposts in English?
- For keywords in your English translation subscription, POST /weibo/translate/reposts returns the translated reposts of an original post by post_id.
- How is the data collected? Is this the official Weibo API?
- By web crawlers, from content publicly published on Weibo. LargitData is not affiliated with Weibo and this is not Weibo's own API. Whether this suits your use depends on the purpose and jurisdiction and is for your legal team to assess; we can provide a description of sources and collection methods.