# Weibo User Scraper 微博 | Timelines, Profiles & Followers (`zen-studio/weibo-user-scraper`) Actor

Collect any Weibo (微博) account's posts with engagement counts, images, video and the province each was posted from. Add the full account profile, and the accounts it follows or is followed by. Paste a profile link, a username or an account ID.

- **URL**: https://apify.com/zen-studio/weibo-user-scraper.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.29 / 1,000 posts

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Weibo User Scraper (微博用户 / 博主数据 / Sina Weibo) | Posts, Profile & Followers (2026)

[![200 posts. 15 seconds. 47 fields per Weibo profile. Lifetime likes. Video views. Follower lists.](https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/weibo-user-scraper-hero-e9f7177e49bc.png)](https://apify.com/zen-studio/weibo-user-scraper)

From **Zen Studio**, creators of [RedNote Search](https://apify.com/zen-studio/rednote-search-scraper) and [Douyin Search](https://apify.com/zen-studio/douyin-search-scraper), ranked #1 for “RedNote” and “Douyin” in Apify Store search. Dedicated actors for researching Chinese social posts, creators and conversations.

### Why choose this actor?

**200 posts in 15 seconds.** Collect creator timelines quickly, with likes, comments, reposts, media and posting locations attached. Process up to 50 accounts per run, filter by date or content type, and return only newly discovered posts on repeat runs. Profile and follower collection are separate options and add time.

**See the numbers behind the creator.** Get a 47-field profile with lifetime likes, comments and reposts, total video views, account creation date and verification details. Compare long-term engagement alongside follower counts when shortlisting creators or monitoring competitors. Field availability depends on what Weibo publishes.

**Export who follows them, and who they follow.** Optional follower and following lists contain individual accounts with their own follower counts, verification and profile links. Collect these alongside the creator’s profile and posts, with each row labeled by type.

<a href="https://apify.com/zen-studio/weibo-user-scraper"><img src="https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/weibo-user-scraper-cta-85b72b3d3a0b.svg" width="238" height="48" alt="Explore a Weibo account"/></a>

### Try a Weibo account

Start with **kfcchina**: its profile and 20 recent posts.

```json
{
  "profileUrls": [
    "kfcchina"
  ],
  "maxPostsPerUser": 20,
  "includeProfile": true
}
```

[Open actor input](https://apify.com/zen-studio/weibo-user-scraper) and enter a username, profile link or numeric account ID. Export JSON, CSV or Excel. To include follower accounts, set `maxFollowersPerUser` to a positive number; `maxFollowingPerUser` controls accounts they follow. Both default to `0`, meaning none, and are billed separately. The free tier disables these lists.

For longer timelines, request up to 5,000 posts per account. Here, `maxPostsPerUser: 0` uses that maximum. Turn `includePosts` off for profiles or follower lists alone.

<table><tr><td colspan="5" style="background:#FF8200;color:#241409;padding:10px 14px;font-size:13px;font-weight:700">Zen Studio · Chinese Social Data</td></tr><tr><td style="background:#FFE4D6;padding:10px 9px;border:1px solid #EBCBB6;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-J86FxaQHnirYs2ciZ-H07XqtXm3Y-weibo-scraper-logo.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/zen-studio/weibo-user-scraper" style="color:#3B2416;text-decoration:none;font-weight:700;font-size:13px">Weibo User</a></span><br><span style="color:#67402B;font-size:12px;white-space:nowrap">You are here</span></td><td style="background:#FFF3EB;padding:10px 9px;border:1px solid #EBCBB6;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-wsZZkHvCzyyfZQdaJ-1H1H3xrBpO-weibo-scraper-logo.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/zen-studio/weibo-search-scraper" style="color:#3B2416;text-decoration:none;font-weight:700;font-size:13px">Weibo Search</a></span><br><span style="color:#67402B;font-size:12px;white-space:nowrap">Posts by keyword</span></td><td style="background:#FFF3EB;padding:10px 9px;border:1px solid #EBCBB6;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-YL2ScrqMATr1FOd87-VyT6xhJK1p-weibo-scraper-logo.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/zen-studio/weibo-comments-scraper" style="color:#3B2416;text-decoration:none;font-weight:700;font-size:13px">Comments</a></span><br><span style="color:#67402B;font-size:12px;white-space:nowrap">Threads & replies</span></td><td style="background:#FFF3EB;padding:10px 9px;border:1px solid #EBCBB6;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-hO5NqsA6aC1bz3jra-MjB05eVFEt-xiaohongshu-search-scraper-logo-square.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/zen-studio/rednote-search-scraper" style="color:#3B2416;text-decoration:none;font-weight:700;font-size:13px">RedNote</a></span><br><span style="color:#67402B;font-size:12px;white-space:nowrap">Posts & creators</span></td><td style="background:#FFF3EB;padding:10px 9px;border:1px solid #EBCBB6;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-3TJaaOJDU1AMiOoJM-Vu2eVr0P6N-douyin-profile-scraper-logo.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/zen-studio/douyin-search-scraper" style="color:#3B2416;text-decoration:none;font-weight:700;font-size:13px">Douyin</a></span><br><span style="color:#67402B;font-size:12px;white-space:nowrap">Videos & creators</span></td></tr></table>

#### Copy to your AI assistant

```
zen-studio/weibo-user-scraper on Apify. Returns a Weibo (微博) account's posts, its full profile, and its followers/following, in one run. Input profileUrls (string[], max 50): a profile link, an m.weibo.cn link, a username like kfcchina, or a bare numeric account ID; all four resolve. Every dataset row carries rowType = post | profile | connection, so one dataset holds all three shapes. CRITICAL, the two zeros mean opposite things: maxPostsPerUser=0 means ALL AVAILABLE posts (up to 5000), while maxFollowersPerUser=0 and maxFollowingPerUser=0 mean NONE, and both default to 0. To get NO posts you must set includePosts=false; there is no number that means none. includeProfile=true (default) adds one 47-column profile row per account with followers, mutual followers, lifetime likes/comments/reposts, verification reason, account age, level and credit score. Connection rows carry relation = follower | following plus ofUserId. Optional: startDate/endDate ('2026-09-01' or a period like '7 days', China time, both covering whole days), contentType ('all'|'pictures'|'videos'), originalOnly, onlyNewPosts (skips posts delivered to you in earlier runs for the same account, remembered in your own key-value store weibo-user-delivered). Timelines are read newest first and stop at startDate; a window far in the past may sit deeper than one run reaches, so pair endDate with startDate. Billing is per row by type: post rows $4.29/1000 (less on Silver/Gold), profile $0.005 each, connection $0.0015 each, plus a $0.005 actor start fee; posts removed by a filter and accounts that cannot be found are never charged. Free tier: 10 lifetime runs, 1 profile, 20 posts, connections off. Full spec: GET https://api.apify.com/v2/actors/zen-studio~weibo-user-scraper/builds/default (Bearer TOKEN) -> inputSchema, actorDefinition.storages.dataset, readme. Token: https://console.apify.com/account/integrations
```

### Weibo User Scraper Features

- **Three row types from one run**: posts, the account profile, and followers or
  following. Every row carries `rowType`, so one dataset holds all three and you
  never stitch results together by account ID.
- **Any way of naming an account**: a profile link, an `m.weibo.cn` link, a
  username like `kfcchina`, or a bare numeric ID. Up to 50 accounts per run.
- **95 fields per post**: engagement counts and the per-reaction split, the
  province a post was written from, topics, hashtags, mentions, outbound links,
  images with dimensions, video URL and streams, repost origin, and the author
  inline on every row.
- **47-column profile**: followers, following, mutual followers, lifetime likes,
  comments and reposts, video plays, verification and its reason, account age,
  level, VIP rank, credit score, location, birthday, website and bio.
- **Followers and following**: 40 columns per account, both directions, each row
  tagged with `relation` and the account it belongs to.
- **Date range and filters**: any period in China time, posts with pictures or
  video, original posts only. Filtered posts are never charged.
- **Only new posts**: a scheduled run returns just what appeared since last time.
- **Free tier**: 10 lifetime runs, no credit card.

### How to Scrape a Weibo Account (微博主页采集)

1. Open [Weibo User Scraper](https://apify.com/zen-studio/weibo-user-scraper) and
   paste one or more profiles: a link, a username, or an account ID.
2. Set **Maximum posts per profile**, or turn **Include posts** off if you only
   want the profile or the follower list.
3. Optionally add a date range, a content filter, or a follower count.
4. Click **Start**, then download as JSON, CSV or Excel, or schedule it to repeat.

#### Input options

| Parameter | Type | Default | Meaning |
|---|---|---|---|
| `profileUrls` | string\[] | required | Links, usernames or account IDs. Max 50 |
| `maxPostsPerUser` | integer | `100` | Posts per account. `0` means **all available**, up to 5,000 |
| `includePosts` | boolean | `true` | Turn off to skip the timeline entirely |
| `includeProfile` | boolean | `true` | One 47-column profile row per account |
| `maxFollowersPerUser` | integer | `0` | Followers to collect. Here `0` means **none** |
| `maxFollowingPerUser` | integer | `0` | Accounts it follows. Here `0` means **none** |
| `startDate` / `endDate` | string | none | `2026-09-01` or a period like `7 days`, China time |
| `contentType` | select | `all` | `all`, `pictures` or `videos` |
| `originalOnly` | boolean | `false` | Skip reposts |
| `onlyNewPosts` | boolean | `false` | Skip posts delivered in earlier runs |

The two `0` values mean opposite things on purpose. For posts, `0` is the usual
"everything" sentinel. For followers and following, `0` means **collect none**,
because a popular account has millions and every one is a billed row. That is
also why "Include posts" exists: there is no number that means no posts.

#### The profile and its followers, without any posts

```json
{
  "profileUrls": ["kfcchina"],
  "includePosts": false,
  "includeProfile": true,
  "maxFollowersPerUser": 200
}
```

#### Posts from the last week, pictures only

```json
{
  "profileUrls": ["https://weibo.com/u/1618051664"],
  "maxPostsPerUser": 500,
  "startDate": "7 days",
  "contentType": "pictures",
  "includeProfile": false
}
```

#### Scheduled monitoring

```json
{
  "profileUrls": ["kfcchina", "https://weibo.com/u/1618051664"],
  "maxPostsPerUser": 0,
  "onlyNewPosts": true
}
```

### What Data Can You Extract From a Weibo Account?

Every row carries `rowType`, which is `post`, `profile` or `connection`.

#### A post row

Identity and link, text and its truncation state, topics and hashtags, mentions
and outbound links, timing and edit history, engagement with the per-reaction
split, where it was posted from, media, repost origin, and the author inline.

```json
{
  "rowType": "post",
  "userId": "1618051664",
  "userName": "头条新闻",
  "postId": "5345593410980006",
  "postBid": "Rj85L46Wy",
  "postUrl": "https://weibo.com/1618051664/Rj85L46Wy",
  "postUrlMobile": "https://m.weibo.cn/detail/5345593410980006",
  "text": "【#生育13个孩子爸爸称喜欢人多热闹#，最小的孩子2岁多，最大的已结婚】#13孩家庭2张床挤6个孩子#近日，广西钦州一对夫妻生育13个孩子的消息引发关注。\n\n据新京报报道，有网民称，该家庭中丈夫因工作时受伤致家庭较贫困。\n\n当地村干部称，13个孩子包括8个男孩和5个女孩，当地已多次向该对夫妇宣传过计 ​​​",
  "textLength": 154,
  "isLongText": true,
  "textTruncated": true,
  "topics": [
    {
      "title": "生育13个孩子爸爸称喜欢人多热闹",
      "url": "sinaweibo://searchall?containerid=231522&q=%23%E7%94%9F%E8%82%B213%E4%B8%AA%E5%AD%A9%E5%AD%90%E7%88%B8%E7%88%B8%E7%A7%B0%E5%96%9C%E6%AC%A2%E4%BA%BA%E5%A4%9A%E7%83%AD%E9%97%B9%23&extparam=%23%E7%94%9F%E8%82%B213%E4%B8%AA%E5%AD%A9%E5%AD%90%E7%88%B8%E7%88%B8%E7%A7%B0%E5%96%9C%E6%AC%A2%E4%BA%BA%E5%A4%9A%E7%83%AD%E9%97%B9%23"
    },
    {
      "title": "13孩家庭2张床挤6个孩子",
      "url": "sinaweibo://searchall?containerid=231522&q=%2313%E5%AD%A9%E5%AE%B6%E5%BA%AD2%E5%BC%A0%E5%BA%8A%E6%8C%A46%E4%B8%AA%E5%AD%A9%E5%AD%90%23&extparam=%2313%E5%AD%A9%E5%AE%B6%E5%BA%AD2%E5%BC%A0%E5%BA%8A%E6%8C%A46%E4%B8%AA%E5%AD%A9%E5%AD%90%23"
    }
  ],
  "hashtags": [
    "生育13个孩子爸爸称喜欢人多热闹",
    "13孩家庭2张床挤6个孩子"
  ],
  "mentions": [],
  "links": [
    {
      "title": "九派新闻的微博视频",
      "url": "sinaweibo://video/vvs?mid=5345593410980006&object_id=1034:5345289817489499&url_type=39&object_type=video&pos=1",
      "shortUrl": "http://t.cn/AXOTnqmt"
    }
  ],
  "createdAt": "2026-09-21T14:30:48+08:00",
  "timestampText": null,
  "editedCount": 0,
  "editedAt": null,
  "likeCount": 2,
  "commentCount": 3,
  "repostCount": 1,
  "reactions": [ /* see note below */ ],
  "engagementDisplayText": "100万+",
  "region": null,
  "province": null,
  "city": null,
  "country": null,
  "latitude": null,
  "longitude": null,
  "source": "微博视频号",
  "isPromoted": false,
  "promotedLabel": null,
  "postType": "original",
  "visibility": 0,
  "contentAuth": 0,
  "tags": [],
  "postFansCount": null,
  "picCount": 0,
  "picUrls": [],
  "picDetails": [ /* see note below */ ],
  "videoUrl": "https://f.video.weibocdn.com/o0/IwMt901elx08AWVMS8J201041200dL4n0E010.mp4?label=mp4_720p&template=720x1280.24.0&ori=0&ps=1CwnkDw1GXwCQx&Expires=1789977720&ssig=JhsdGPG3kI&KID=unistore,video",
  "videoDurationSeconds": 18,
  "videoTitle": "九派新闻的微博视频",
  "videoViewsText": "211万次观看",
  "videoStreams": [ /* see note below */ ],
  "cardType": null,
  "cardTitle": null,
  "cardUrl": null,
  "cardSummary": null,
  "authorId": "1618051664",
  "authorName": "头条新闻",
  "authorHandle": "breakingnews",
  "authorUrl": "https://weibo.com/u/1618051664",
  "authorAvatar": "https://tvax1.sinaimg.cn/crop.0.4.535.535.1024/001Lvb9uly8h8vgoyk5brj60f00f0jrq02.jpg?KID=imgbed,tva&Expires=1789984924&ssig=mdSo5Y%2Fn8V",
  "authorAvatarLarge": "https://tvax1.sinaimg.cn/crop.0.4.535.535.180/001Lvb9uly8h8vgoyk5brj60f00f0jrq02.jpg?KID=imgbed,tva&Expires=1789984924&ssig=jYrzPXFWev",
  "authorCoverImage": "https://ww1.sinaimg.cn/crop.0.0.640.640.640/549d0121tw1egm1kjly3jj20hs0hsq4f.jpg;https://ww4.sinaimg.cn/crop.0.0.640.640.640/9e5389bbjw1f1z5h9bjtjj20e80e8q38.jpg",
  "authorCreatedAt": "2009-08-28T16:34:36+08:00",
  "authorFans": 110186167,
  "authorFansText": "1.1亿",
  "authorFollowing": 1799,
  "authorMutualFollowers": 769,
  "authorPostsCount": 346945,
  "authorVideoCount": 5446,
  "authorFavoritesCount": 210,
  "authorPageFriends": 840,
  "authorLanguage": "zh-cn",
  "authorTotalLikes": 479766125,
  "authorTotalComments": 189888768,
  "authorTotalReposts": 171325111,
  "authorVideoPlays": 4726374733,
  "authorVerified": true,
  "authorVerifiedType": 3,
  "authorVerifiedTypeExt": 50,
  "authorVerifiedReason": "头条新闻官方账号",
  "authorVerifiedBadges": [],
  "authorDescription": "每日播报全球各类重要资讯、突发新闻，全天24小时即时发布。欢迎报料、投稿，请发私信或者邮件：xlttnews@vip.sina.com。",
  "authorGender": "female",
  "authorLocation": "北京",
  "authorWebsite": "http://news.sina.com.cn/",
  "authorAbilityTags": [],
  "authorLevel": 2,
  "authorVipRank": 1,
  "authorVipType": 12,
  "authorIsSvip": true,
  "authorCreditScore": 80,
  "authorIsBrand": false,
  "originalPostId": null,
  "originalPostUrl": null,
  "originalAuthorId": null,
  "originalAuthorName": null,
  "originalText": null,
  "originalLikeCount": null,
  "originalCommentCount": null,
  "originalRepostCount": null
}
```

`picDetails` and `videoStreams` are arrays of objects, one per image or stream,
each with its own URL and dimensions. `reactions` is an object keyed by reaction
name. They are shortened above only to keep the example readable; every entry is
present in the real output.

#### A profile row

```json
{
  "rowType": "profile",
  "userId": "1687422352",
  "userName": "肯德基",
  "userHandle": "kfcchina",
  "userUrl": "https://weibo.com/u/1687422352",
  "userAvatar": "https://tvax2.sinaimg.cn/crop.0.0.600.600.1024/001QcfDyly8i9cjnk1i03j60go0got9c02.jpg?KID=imgbed,tva&Expires=1789986023&ssig=AKZdKtDYVI",
  "userAvatarLarge": "https://tvax2.sinaimg.cn/crop.0.0.600.600.180/001QcfDyly8i9cjnk1i03j60go0got9c02.jpg?KID=imgbed,tva&Expires=1789986023&ssig=l81wVxXf5%2F",
  "userCoverImage": "https://wx1.sinaimg.cn/crop.0.0.640.640.640/001QcfDygy1i91098sg0qj60m80m8jsf02.jpg",
  "userCreatedAt": "2010-01-29T16:35:06+08:00",
  "userFans": 4997305,
  "userFansText": "499.7万",
  "userFollowing": 644,
  "userMutualFollowers": 181,
  "userPostsCount": 36131,
  "userVideoCount": 4341,
  "userFavoritesCount": 0,
  "userPageFriends": 349,
  "userLanguage": "zh-cn",
  "userTotalLikes": 34652934,
  "userTotalComments": 19646864,
  "userTotalReposts": 232461280,
  "userVideoPlays": 2349241796,
  "userVerified": true,
  "userVerifiedType": 2,
  "userVerifiedTypeExt": 50,
  "userVerifiedReason": "肯德基中国",
  "userVerifiedBadges": [],
  "userDescription": "永远好滋味",
  "userGender": "male",
  "userLocation": "上海",
  "userWebsite": "http://www.kfc.com.cn",
  "userAbilityTags": [],
  "userLevel": 2,
  "userVipRank": 7,
  "userVipType": 12,
  "userIsSvip": false,
  "userCreditScore": 80,
  "userIsBrand": true,
  "userBirthday": null,
  "userConstellation": null,
  "userVerifiedLevel": 3,
  "userVerifiedTrade": "1484",
  "userVerifiedSource": null,
  "userVerifiedReasonUrl": null,
  "userCareer": [],
  "userEducation": [],
  "userLatestPostId": "5345548808487557"
}
```

#### A follower or following row

`relation` is `follower` or `following`, and `ofUserId` is the account it belongs
to, so both directions live in one table.

```json
{
  "rowType": "connection",
  "ofUserId": "1618051664",
  "relation": "follower",
  "userId": "5878659096",
  "userName": "超话社区",
  "userHandle": null,
  "userUrl": "https://weibo.com/u/5878659096",
  "userAvatar": "https://tvax3.sinaimg.cn/crop.0.0.1080.1080.1024/006pQfMcly8h8v3tovfguj60u00u0q3z02.jpg?KID=imgbed,tva&Expires=1789986034&ssig=phePYRUi2x",
  "userAvatarLarge": "https://tvax3.sinaimg.cn/crop.0.0.1080.1080.180/006pQfMcly8h8v3tovfguj60u00u0q3z02.jpg?KID=imgbed,tva&Expires=1789986034&ssig=1XNvJQ02Sz",
  "userCoverImage": "https://ww1.sinaimg.cn/crop.0.0.640.640.640/549d0121tw1egm1kjly3jj20hs0hsq4f.jpg",
  "userCreatedAt": "2016-03-09T17:45:21+08:00",
  "userFans": 235462524,
  "userFansText": "2.35亿",
  "userFollowing": 2410,
  "userMutualFollowers": 294,
  "userPostsCount": 32394,
  "userVideoCount": 147,
  "userFavoritesCount": 403,
  "userPageFriends": 2038,
  "userLanguage": "zh-cn",
  "userTotalLikes": null,
  "userTotalComments": null,
  "userTotalReposts": null,
  "userVideoPlays": null,
  "userVerified": true,
  "userVerifiedType": 7,
  "userVerifiedTypeExt": 0,
  "userVerifiedReason": "超话社区官方微博",
  "userVerifiedBadges": [],
  "userDescription": null,
  "userGender": "male",
  "userLocation": "北京",
  "userWebsite": null,
  "userAbilityTags": [],
  "userLevel": null,
  "userVipRank": 1,
  "userVipType": 12,
  "userIsSvip": true,
  "userCreditScore": 80,
  "userIsBrand": false
}
```

Exports: JSON and JSONL keep the nested objects and arrays intact. CSV and Excel
flatten them, so pick JSON if you need `picDetails`, `videoStreams` or
`reactions`.

### Pricing

You pay per row, by what the row is.

| Row | Price |
|---|---|
| Post | $4.29 per 1,000, $3.99 on Silver, $3.29 on Gold and above |
| Profile | $0.005 each |
| Follower or following | $0.0015 each |

Plus Apify's $0.005 actor start fee per run. **Posts removed by a filter are
never charged, and neither is an account that cannot be found.**

A typical run of one account with the profile and 100 posts is about $0.44.

### Frequently Asked Questions

**Do I need a Weibo account or cookie?**
No. Nothing is logged in and no session is stored.

**What can I paste in?**
A profile link, an `m.weibo.cn` link, a username like `kfcchina`, or a bare
numeric account ID. Up to 50 per run, in any mix.

**How far back do posts go?**
The timeline is read newest first and keeps going. On a very busy account, page
1,000 reached posts from about eight months earlier, with no repeats and no
wrap-around. Set the maximum to `0` for everything available, up to 5,000 per
account.

**How do I get only a profile, or only followers?**
Turn **Include posts** off. `0` in the posts box means all available, not none,
which is exactly why the switch exists.

**Why are followers off by default?**
A popular account has millions of them and every one is a billed row. `0` there
means none, so you opt in with a number you choose.

**Can I schedule it?**
Yes. Turn on **Only new posts** and each run returns just what appeared since the
last one. Delivered posts are remembered in a storage in your own account called
`weibo-user-delivered`; delete it to start over.

**Why did my date range return nothing?**
Timelines are read newest first, so a window far in the past sits behind
everything newer and can be deeper than one run reaches. Pair **Posted before**
with **Posted after** to bound the work, and the run will tell you when this
happened.

**Do I pay for posts a filter removed?**
No. Filters are applied before anything is charged.

**What happens if an account does not exist?**
The run says so for that account, charges nothing for it, and carries on with
the rest.

**Is the data the same as the Weibo app shows?**
Posts carry real engagement counts, the province the post was written from,
hashtags, mentions, links, images as real JPEG URLs and video streams.

### More from Zen Studio

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-wsZZkHvCzyyfZQdaJ-1H1H3xrBpO-weibo-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Weibo 微博**
  - [Weibo Search Scraper](https://apify.com/zen-studio/weibo-search-scraper)
  - [Weibo Comments Scraper](https://apify.com/zen-studio/weibo-comments-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-sAWbV6wp5XO5aEapx-C7gOsPJt9Q-xiaohongshu-search-scraper-logo-square.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **RedNote 小红书**
  - [RedNote Search Scraper](https://apify.com/zen-studio/rednote-search-scraper)
  - [RedNote Comments Scraper](https://apify.com/zen-studio/rednote-comments-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-3TJaaOJDU1AMiOoJM-Vu2eVr0P6N-douyin-profile-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Douyin 抖音**
  - [Douyin Search Scraper](https://apify.com/zen-studio/douyin-search-scraper)
  - [Douyin Comments Scraper](https://apify.com/zen-studio/douyin-comments-scraper)

### Support

Questions or a field you need that is not here? Open an issue on the actor's
Issues tab and we answer there.

# Actor input Schema

## `profileUrls` (type: `array`):

Paste Weibo profiles (微博主页) in any form: <code>https://weibo.com/u/1618051664</code>, <code>https://weibo.com/kfcchina</code>, <code>https://m.weibo.cn/u/1618051664</code>, a username like <code>kfcchina</code>, or just the account ID. Up to 50 profiles per run.

## `maxPostsPerUser` (type: `integer`):

How many posts (微博) to collect from each account, newest first. Set this to what you actually need; cost scales linearly.<br><br><ul><li>Default: <code>100</code>. Maximum: <code>5000</code>. Set <code>0</code> to fetch <b>all available</b> posts.</li></ul>Weibo serves an account's timeline back through time without a limit, so a long-running account can be read years deep.

## `includePosts` (type: `boolean`):

Collect the account's posts. Turn this <b>off</b> to take only the profile, the followers, or both, without any posts.<br><br>It is a separate switch because <code>0</code> in the box above means <b>all available</b> posts, so there is no number that means none.

## `includeProfile` (type: `boolean`):

Add one row per account with its complete profile: follower and following counts, lifetime likes and comments, verification and the reason for it (认证), account age (注册时间), level, location, birthday, website and bio.<br><br>Billed as one profile row per account, so a run over 10 profiles adds 10 rows.

## `maxFollowersPerUser` (type: `integer`):

Collect the accounts that follow each profile, one row each, with their own follower counts and verification.<br><br><b>Off by default.</b> Here <code>0</code> means <b>collect none</b>, not "all" — a popular account has millions of followers and every one is a billed row. Raise it only as far as you need.

## `maxFollowingPerUser` (type: `integer`):

Collect the accounts each profile follows, one row each.<br><br><b>Off by default.</b> As above, <code>0</code> means <b>collect none</b>. Useful for mapping who a brand or creator pays attention to.

## `startDate` (type: `string`):

Only posts published on or after this date (China time).<br><br>Pick a date, or enter a period such as <code>7 days</code> to count back from when the run starts. Leave empty for no lower limit.<br><br>Timelines are read newest first, so the run stops as soon as it passes this date.

## `endDate` (type: `string`):

Only posts published on or before this date (China time). Leave empty to collect up to the newest post.

## `contentType` (type: `string`):

Keep only posts that include pictures, or only posts that include a video.

## `originalOnly` (type: `boolean`):

Skip reposts (转发) and keep only posts the account wrote itself.

## `onlyNewPosts` (type: `boolean`):

Return only posts this Actor has not already delivered to you in earlier runs for the same account. Ideal for scheduled monitoring: each run adds just what is new.<br><br>Delivered posts are remembered in a storage in your own account named <code>weibo-user-delivered</code>. Delete it to start over.

## Actor input object example

```json
{
  "profileUrls": [
    "https://weibo.com/u/1618051664",
    "kfcchina"
  ],
  "maxPostsPerUser": 100,
  "includePosts": true,
  "includeProfile": true,
  "maxFollowersPerUser": 0,
  "maxFollowingPerUser": 0,
  "contentType": "all",
  "originalOnly": false,
  "onlyNewPosts": false
}
```

# Actor output Schema

## `results` (type: `string`):

Link to the dataset containing every post, profile and connection collected.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "profileUrls": [
        "https://weibo.com/u/1618051664",
        "kfcchina"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/weibo-user-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "profileUrls": [
        "https://weibo.com/u/1618051664",
        "kfcchina",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/weibo-user-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "profileUrls": [
    "https://weibo.com/u/1618051664",
    "kfcchina"
  ]
}' |
apify call zen-studio/weibo-user-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zen-studio/weibo-user-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/J86FxaQHnirYs2ciZ/builds/IGjSRKmCZINeCdLnR/openapi.json
