Install
openclaw skills install @scavio-ai/scavio-weiboPull Weibo user profiles and posts, post comments/likes/reposts, keyword search across posts, videos, users, topics and images, the hot-search board and ranking boards, and channel feeds. 31 endpoints, 1 credit each, structured JSON.
openclaw skills install @scavio-ai/scavio-weiboPull Weibo user profiles and posts, a post's comments, likes and reposts, run keyword search across posts, videos, users, topics and images, read the hot-search board and ranking boards, and pull channel feeds. All endpoints return structured JSON.
Use this skill when the user asks to:
Get a free API key at scavio.dev (50 free credits to get started, no card required):
export SCAVIO_API_KEY=sk_live_your_key
Every request is a POST with a JSON body and:
Authorization: Bearer $SCAVIO_API_KEY
Base URL: https://api.scavio.dev. Every Weibo endpoint costs 1 credit.
| Endpoint | What it returns |
|---|---|
POST /api/v1/weibo/user/info | Profile details for a user by uid or custom handle |
POST /api/v1/weibo/user/info-detail | Extended profile details |
POST /api/v1/weibo/user/posts | A user's posts, with an optional detail level (feature 0-3) |
POST /api/v1/weibo/user/original-posts | A user's original (non-repost) posts |
POST /api/v1/weibo/user/fans | A user's followers |
POST /api/v1/weibo/user/following | Accounts a user follows |
POST /api/v1/weibo/user/videos | A user's published videos |
POST /api/v1/weibo/user/video-collections | A user's video collection folders |
POST /api/v1/weibo/user/video-collection | Videos inside a collection folder (cid) |
POST /api/v1/weibo/user/search-posts | Search within one user's posts |
POST /api/v1/weibo/user/recommend-timeline | The recommended home timeline |
| Endpoint | What it returns |
|---|---|
POST /api/v1/weibo/post | Full detail for a single post by id (optional full long-text) |
POST /api/v1/weibo/post/comments | Top-level comments on a post |
POST /api/v1/weibo/post/sub-comments | Replies under a post's comments |
POST /api/v1/weibo/post/likes | Accounts that liked a post |
POST /api/v1/weibo/post/reposts | Reposts of a post |
| Endpoint | What it returns |
|---|---|
POST /api/v1/weibo/search/advanced | Keyword search with type and time filters |
POST /api/v1/weibo/search/realtime | Newest posts matching a keyword |
POST /api/v1/weibo/search/videos | Videos matching a keyword |
POST /api/v1/weibo/search/users | Users matching a keyword and filters |
POST /api/v1/weibo/search/topics | Topics matching a keyword |
POST /api/v1/weibo/search/pics | Image posts matching a keyword |
POST /api/v1/weibo/search/similar | Related search terms and accounts for a keyword |
POST /api/v1/weibo/search/ai | AI-assisted answer for a query |
| Endpoint | What it returns |
|---|---|
POST /api/v1/weibo/hot-search | The current hot-search board |
POST /api/v1/weibo/hot-search/index | The top hot-search entries |
POST /api/v1/weibo/rankings/hot-timeline | Trending posts over a time window (ranking_type) |
POST /api/v1/weibo/rankings/entertainment | The entertainment ranking board |
POST /api/v1/weibo/rankings/life | The lifestyle ranking board |
POST /api/v1/weibo/rankings/social | The social ranking board |
POST /api/v1/weibo/channel-feed | Popular content within a named channel |
uid - a numeric user id (e.g. 7277477906). user/info also accepts a custom handle instead.id - a post id (e.g. 5092682368025584). Used by every post/* endpoint.page (and since_id where offered); comment/timeline endpoints paginate with max_id from the previous response.import requests
BASE = "https://api.scavio.dev"
# Your key from https://scavio.dev. Load it from your environment or secret
# store in real code - keep it out of source control.
API_KEY = "sk_your_key_here"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# 1. A user's profile, then their posts
info = requests.post(f"{BASE}/api/v1/weibo/user/info", headers=HEADERS,
json={"uid": "7277477906"}).json()
posts = requests.post(f"{BASE}/api/v1/weibo/user/posts", headers=HEADERS,
json={"uid": "7277477906", "page": 1}).json()
# 2. A post and its comments
post = requests.post(f"{BASE}/api/v1/weibo/post", headers=HEADERS,
json={"id": "5092682368025584", "is_get_long_text": "true"}).json()
comments = requests.post(f"{BASE}/api/v1/weibo/post/comments", headers=HEADERS,
json={"id": "5092682368025584", "count": 50}).json()
# 3. Realtime keyword search and the hot-search board
realtime = requests.post(f"{BASE}/api/v1/weibo/search/realtime", headers=HEADERS,
json={"query": "yu7"}).json()
hot = requests.post(f"{BASE}/api/v1/weibo/hot-search", headers=HEADERS,
json={}).json()
curl:
curl -s https://api.scavio.dev/api/v1/weibo/hot-search \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Every response uses the envelope { data, response_time, credits_used, credits_remaining }. data carries the user / post / search payload, with lists under keys like posts, comments, users, reposts and cursors for pagination.
user/info needs either uid or custom; the post/* endpoints need id. A missing identifier is a 422, not an outage.page, since_id or max_id); stop when it stops advancing.400 means malformed input. Fix and retry.401 means the API key is invalid or missing. Check SCAVIO_API_KEY.422 means a required identifier is missing (e.g. no uid/custom or no id). Supply it and retry.429 means rate or usage limit exceeded. Wait before retrying. See rate limits.502 means the source is temporarily unavailable - wait a few seconds and retry.SCAVIO_API_KEY is not set, prompt the user to export it before continuing.