# Weibo Monitor: Keywords & Profiles, No Login (`stratasignalsystems/weibo-monitor`) Actor

Follow Weibo (微博) keywords and profiles on a schedule and pay only for new posts. Full text, engagement and region, with no account or cookie. Unofficial.

- **URL**: https://apify.com/stratasignalsystems/weibo-monitor.md
- **Developed by:** [stratasignalsystems.com](https://apify.com/stratasignalsystems) (community)
- **Categories:** Social media, News
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 Monitor: Keywords & Profiles, No Login

**Follow keywords and accounts on Weibo (微博) on a schedule, and pay only for posts you haven't seen.** No Weibo account or cookie needed, including for following a profile.

Add what you want to track, turn on **Only posts I haven't received**, and schedule it. Each run returns just what's new, with full text, author, engagement, region and media.

### Who it's for

- **China analysts and OSINT teams:** watch breaking topics and official accounts as they post.
- **Brand and PR teams:** catch mentions of your brand or competitors in Chinese.
- **Market researchers:** track consumer conversation and what's trending.
- **Developers:** feed new posts into your own app, database or alerts through the Apify API.

### Quick start

```json
{
  "keywords": ["地震", "新能源汽车"],
  "profiles": ["https://weibo.com/u/2803301701", "新浪科技"],
  "only_new": true
}
```

Profiles can be a numeric ID, a `weibo.com` link or an exact account name. A link or ID is safest.

**To get only new posts on a schedule:**

1. Add keywords, profiles or both, and turn on **Only posts I haven't received**.
2. Save it as a task and click **Schedule**, for example every 30 minutes.
3. Connect the results with a webhook or integration, or download them.

The first run returns the latest posts. Later runs return only what's new. For several separate lists, give each a **Monitor name**.

### What you get

```json
{
  "record_type": "post",
  "post_id": "5360000000000000",
  "post_url": "https://weibo.com/2803301701/AbCdEfGhI",
  "posted_at": "2026-11-02T05:43:09Z",
  "text": "示例微博内容",
  "truncated": false,
  "pinned": false,
  "author_id": "2803301701",
  "author_name": "示例账号",
  "author_verified": true,
  "author_followers": 15800000,
  "reposts": 18,
  "comments": 11,
  "likes": 69,
  "region": "北京",
  "topics": ["示例话题"],
  "images": ["https://example.com/photo.jpg"],
  "video_url": null,
  "matched_keywords": ["地震"],
  "matched_profiles": []
}
```

A post found by two keywords or profiles is returned, and charged, once. The run's `OUTPUT` record lists each target's status.

**Profile details:** turn on **Add profile details** to also get each account's name, bio, followers, following, post count and verification:

```json
{
  "record_type": "profile",
  "user_id": "2803301701",
  "name": "示例账号",
  "profile_url": "https://weibo.com/u/2803301701",
  "description": "示例简介",
  "followers": 15800000,
  "following": 3000,
  "posts_count": 125000,
  "verified": true,
  "verified_reason": "示例认证"
}
```

To look up accounts without collecting their posts, also turn off **Get posts from profiles**. Each profile counts as one result, and details are returned on every run, including with only new posts on.

**Trending list:** turn on **Add the trending list** to also get Weibo's hot search board (微博热搜), about 50 topics with rank and heat. Each topic counts as one result.

### What it costs

You pay **$3 per 1,000 results** and **$0.0005 per run**, plus a small Apify platform charge for compute and storage.

| Example | Results | Event charges |
|---|---|---|
| One-off: 5 keywords and 5 profiles | About 100 | About $0.30 |
| Check every 30 minutes that finds nothing new | 0 | $0.0005 per run |
| Monitor collecting 100 new posts a day | 3,000 a month | About $9.70 a month |

Repeat posts aren't charged when **Only posts I haven't received** is on. The trending list adds about $0.15 each time, so it's off by default.

### Good to know

- **Built for recent posts, not history:** each keyword or profile returns about 10 of its latest posts per run.
- **Schedule busy keywords often:** a busy keyword can get more than 10 posts between runs, and older ones would be missed.
- **Pinned posts can be old:** they're flagged as `pinned`.
- **Follower counts can be rounded:** large accounts may show figures like 1.58亿.
- **Names must match exactly:** otherwise the profile is reported as `not_found`.
- **If Weibo refuses access:** the run stops and reports `blocked`, instead of quietly returning nothing.

### Terms and responsible use

This is an unofficial tool, not affiliated with or endorsed by Weibo or Sina. **You are responsible for how you use it and the data**, including under Weibo's terms and privacy laws such as China's PIPL. Posts can contain personal data.

# Actor input Schema

## `keywords` (type: `array`):

Search Weibo in real time for each word or phrase. Each search returns about 10 of the latest posts.

## `profiles` (type: `array`):

Accounts to follow: a numeric ID, a weibo.com link, or an exact account name. Each returns about 10 of the latest posts.

## `profile_details` (type: `boolean`):

Also return each profile's name, bio, followers, following, post count and verification. Each profile counts as one result.

## `profile_posts` (type: `boolean`):

Turn this off, with profile details on, to look up accounts without collecting their posts.

## `include_trending` (type: `boolean`):

Also return Weibo's current hot search list.

## `only_new` (type: `boolean`):

Remembers delivered posts for each keyword and profile between your runs. Schedule often for busy keywords, because each run only sees the latest posts.

## `monitor_name` (type: `string`):

With only new posts on, separate monitors keep separate memory. Leave empty if you run just one.

## `since` (type: `string`):

30m, 6h, 1d or 1w. Leave empty for no age limit.

## `max_posts_per_target` (type: `integer`):

An upper limit. Weibo's public results are about 10 per request.

## `full_text` (type: `boolean`):

Long posts arrive cut short. This makes one extra request per long post.

## Actor input object example

```json
{
  "keywords": [
    "地震"
  ],
  "profile_details": false,
  "profile_posts": true,
  "include_trending": false,
  "only_new": false,
  "max_posts_per_target": 50,
  "full_text": true
}
```

# Actor output Schema

## `posts` (type: `string`):

One item per post, plus profile and trending rows if requested.

## `summary` (type: `string`):

Each keyword's and profile's status: ok, blocked, not_found, invalid or skipped.

# 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 = {
    "keywords": [
        "地震"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("stratasignalsystems/weibo-monitor").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 = { "keywords": ["地震"] }

# Run the Actor and wait for it to finish
run = client.actor("stratasignalsystems/weibo-monitor").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 '{
  "keywords": [
    "地震"
  ]
}' |
apify call stratasignalsystems/weibo-monitor --silent --output-dataset

```

## MCP server setup

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

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/RjfcvdoesmWPb8Bwx/builds/wVX6dza0CDIo8Ygl7/openapi.json
