# WeChat Scraper (微信): Articles, Accounts, Channels & Comments (`openclawai/wechat-scraper`) Actor

WeChat scraper (微信), no login: WeChat articles from Official Accounts (公众号) with full text and WeChat read count, WeChat Official Account search, article comments with replies, plus WeChat Channels (视频号) videos, profiles, comments and search. Pay only per result.

- **URL**: https://apify.com/openclawai/wechat-scraper.md
- **Developed by:** [Pika Choo](https://apify.com/openclawai) (community)
- **Categories:** Social media, News, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 wechat article or videos

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 💬 WeChat Scraper (微信): Articles, Accounts, Channels & Comments

WeChat scraper (微信), no login: WeChat articles from Official Accounts (公众号) with full text and WeChat read count, WeChat Official Account search, article comments with replies, plus WeChat Channels (视频号) videos, profiles, comments and search. **$4 per 1,000 articles.**

### 📋 Table of contents

- [What does it do?](#what-does-it-do)
- [Features](#features)
- [Pricing](#pricing)
- [Input](#input)
- [Output](#output)
- [Troubleshooting](#troubleshooting)
- [Who uses this WeChat Scraper?](#who-uses-this-wechat-scraper)
- [Use cases](#use-cases)
- [FAQ](#faq)
- [API, Python, JavaScript and MCP](#api-python-javascript-and-mcp)

### What does it do?

WeChat Scraper collects public data from WeChat, China's biggest app. Give it Official Account names, IDs or article links, Channels accounts or Chinese keywords, and it returns an account's latest articles, the full text of any article with its reads, likes, shares and saves, article comments with their replies, Official Account profiles, article and account search results (WeChat Search, 搜一搜), plus WeChat Channels (视频号) videos with likes, shares and comments, Channels profiles, video comments and Channels video search. Your own WeChat account is never used.

### Features

#### 🎬 What you can scrape on WeChat

| Mode | What you give it | What you get |
|---|---|---|
| `search_articles` | keywords | Search articles — top results (keywords) |
| `search_latest` | keywords | Search articles — latest (keywords) |
| `user_posts` | account name, gh\_ ID, WeChat ID or article link | Account articles — latest articles of an Official Account |
| `article_detail` | article link | Article details — full text, reads, likes, shares |
| `article_comments` | article link | Article comments with replies |
| `user_profile` | account name, gh\_ ID or article link | Official Account profile |
| `search_users` | keywords | Search accounts (keywords) |
| `channel_videos` | Channels name or ID | Channels videos — all videos of a Channels account |
| `channel_profile` | Channels name or ID | Channels profile — bio, video count |
| `video_detail` | Channels video ID | Channels video details — one video per ID |
| `video_comments` | Channels video ID | Channels video comments |
| `search_videos` | keywords | Search Channels videos (keywords) |

#### ✨ Smart features

- Accounts work by name (量子位), gh\_ ID, WeChat ID or any of their article links
- Read counts (阅读量), likes, shares and saves on article details
- Full article text, cleaned from HTML
- Comment replies are placed right under their comment
- Channels accounts work by name, v2\_…@finder or sph… ID
- Search highlight tags are stripped from titles
- Duplicates are removed automatically
- 🔓 No login, no cookies, no proxy setup
- 💸 Pay only for results: hint and error rows are free

#### 🧭 More scrapers from us

- [Weibo Scraper (微博)](https://apify.com/openclawai/weibo-scraper)
- [Zhihu Scraper (知乎)](https://apify.com/openclawai/zhihu-scraper)
- [RedNote Scraper (小红书)](https://apify.com/openclawai/rednote-scraper)
- [Douyin Scraper (抖音)](https://apify.com/openclawai/douyin-scraper)

### Pricing

You pay per result. No compute or proxy charges on top, and hint and error rows are free.

| What you get | Price per 1,000 |
|---|---|
| 📰 Articles and Channels videos from accounts or search | **$4.00** |
| 💬 Comments and replies | **$3.00** |
| 👥 Accounts from search | **$3.00** |
| 🔍 Single lookups: article with read counts, Channels video or profile | **$40.00** |

#### How much does it cost to scrape WeChat data?

| Job | Cost |
|---|---|
| 1,000 WeChat articles | $4.00 |
| 10,000 WeChat articles | $40 |
| 1,000 comments | $3.00 |
| 100 articles with read counts | $4.00 |

Set **Max cost per run** in the run options and the actor stops cleanly at that amount.

#### 🆓 Free plan

On the free Apify plan each run returns up to 5 results, so you can check the data before you buy. Article details, profiles and comment replies need a paid plan. Any paid Apify plan removes the limit.

#### ⚡ Speed

WeChat answers slowly (5 to 15 seconds per request). Account feeds return about 20 articles per request, article search about 40, Channels feeds about 15 videos and comment pages 15 to 25, so 1,000 articles take a few minutes.

### Input

| Field | What it does |
|---|---|
| `mode` | Keywords: search_articles, search_latest, search_users, search_videos. Links, @usernames or IDs: user_posts, article_detail, article_comments, user_profile, channel_videos, channel_profile, video_detail, video_comments. |
| `urls` | One per line: article links (mp.weixin.qq.com/s/…), Official Account names, gh\_ IDs or WeChat IDs, Channels names or IDs (v2\_…@finder, sph…), Channels video IDs or the item_id of a video from search. |
| `queries` | Keywords for the search modes, one per line. Chinese keywords give the best results. |
| `maxItems` | Stop after this many rows per link or keyword (comments include their replies). |
| `includeReplies` | In article_comments mode, also return the replies under each comment. Replies are billed as comments. Paid Apify plans only. |

#### 🧪 Example inputs

**Latest articles for your keywords**

```json
{"mode": "search_latest", "queries": ["人工智能", "新能源汽车"], "maxItems": 100}
```

**Latest articles of Official Accounts**

```json
{"mode": "user_posts", "urls": ["量子位", "36氪"], "maxItems": 50}
```

**Read counts and full text of articles**

```json
{"mode": "article_detail", "urls": ["https://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&mid=2247932265&idx=1&sn=21767b1988c4bcedc6b69c844014a7cc"]}
```

**Article comments with replies**

```json
{"mode": "article_comments", "urls": ["https://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&mid=2247932265&idx=1&sn=21767b1988c4bcedc6b69c844014a7cc"], "maxItems": 200, "includeReplies": true}
```

**Videos of a Channels account**

```json
{"mode": "channel_videos", "urls": ["薄世宁医生"], "maxItems": 100}
```

### Output

Every row uses the same fields. Export as JSON, CSV, Excel, XML or HTML.

#### 📦 Example output

```json
{
  "platform": "wechat",
  "item_type": "article",
  "item_id": "21767b1988c4bcedc6b69c844014a7cc",
  "url": "https://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&mid=2247932265&idx=1&sn=21767b1988c4bcedc6b69c844014a7cc&chksm=e954f026b5ec4e39052465559b8c5de9a6c0dbe85fe97f79d1834855bb4c16fb4c4d0303494b",
  "title": "DeepSeek你这岗位到底想招啥嘞？",
  "description": "克雷西 发自 凹非寺 量子位 | 公众号 QbitAI DeepSeek啊……你这岗位到底想招啥嘞？ 「AI跨界技术人才」，不限专业，不限年限，岗位描述就一句话。 一家做AGI的公司，专门开了一个岗位…",
  "author_id": "gh_114e76fd6e5d",
  "author_name": "量子位",
  "author_username": "QbitAI",
  "cover_url": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/A6fTew8FFGFKSl8D7KKWibib57Ehl8fQQS9…",
  "created_at": "2026-10-10T10:01:00+00:00",
  "play_count": 44604,
  "like_count": 540,
  "comment_count": 17,
  "share_count": 1549,
  "collect_count": 210,
  "mode": "article_detail",
  "source_input": "https://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&mid=2247932265&idx=1&sn=21767b1988c4bcedc6b69c844014a7cc",
  "scraped_at": "2026-10-10T22:40:12.118204+00:00",
  "raw": {
    "…": "full original record"
  }
}
```

#### 📤 Main fields

| Field | Description |
|---|---|
| `platform`, `item_type`, `mode`, `source_input` | Where the row came from and what it is (`video`, `user`, `comment`, `hint`, `error`…) |
| `item_id`, `url` | Native ID and a link back to the item |
| `title`, `description`, `hashtags`, `created_at` | Text and publish time (ISO 8601) |
| `author_id`, `author_name`, `author_username` | Creator or account |
| `play_count`, `like_count`, `comment_count`, `share_count`, `collect_count` | Engagement counts |
| `raw` | The full original record, every field the platform returned |
| `error_message` | Explanation on free `hint` / `error` rows |

### Troubleshooting

#### The account name finds the wrong account?

Names aren't unique on WeChat. Use the gh\_ ID or WeChat ID from the account search mode, or paste one of the account's article links.

#### Which ID do Channels video comments need?

The `item_id` of a video from Channels videos, video search or video details.

#### Getting no results?

Check that the link or username is public and typed correctly. Private accounts, deleted posts and hidden lists return a free `hint` row that says why. Keyword modes need the **Keywords** field, link modes need **Links**.

#### Getting fewer results than `maxItems`?

The platform ran out of items for that input (a small profile, a niche keyword), or the run reached its **Max cost per run** limit. The log says which one.

#### Some fields are empty?

Platforms don't return every field for every item. Everything the platform did return is kept in `raw`.

#### Video or image links stopped working?

Media URLs from these platforms expire after a few hours. Download files right after the run.

#### The run failed or shows an error row?

Retry once: the platforms sometimes refuse a request for a few minutes. If it keeps failing, open an issue with the run link and we'll fix it fast.

### Who uses this WeChat Scraper?

#### 📊 Market researchers

Read what Chinese media and brands publish about any industry.

#### 🌏 Brands entering China

Track competitors' Official Accounts and how many people read them.

#### 📰 PR and media monitoring

Find every new article that mentions your brand.

#### 🧑‍🤝‍🧑 KOL agencies

Check Official Account and Channels creators' reach before you pay them.

#### 💹 Investors and analysts

Follow company and industry accounts for news and sentiment.

#### 🤖 AI and data teams

Collect Chinese long-form articles and comments as training data.

### Use cases

#### Competitor tracking

Pull competitors' latest articles every day, then read counts on the top ones.

#### Brand monitoring

Search latest articles for your brand name every hour and read the comments.

#### Creator vetting

Compare likes and shares across a Channels creator's recent videos.

### FAQ

#### Can I scrape WeChat without an account?

Yes. No WeChat login, Chinese phone number, cookies or API keys.

#### Can I get WeChat article read counts (阅读量)?

Yes. Article details return reads, likes, shares, saves and the comment count.

#### Can I scrape all articles of an Official Account (公众号)?

Yes. Account articles pages back through the account's history. Give its name, gh\_ ID, WeChat ID or any of its article links.

#### Can I search WeChat articles?

Yes, top or latest results for any keyword, like WeChat Search (搜一搜).

#### Can I scrape WeChat Channels (视频号)?

Yes: a channel's videos, video details, comments, profiles and video search.

#### Can I scrape WeChat article comments?

Yes, with their replies (paid plans).

#### How much does it cost to scrape 10,000 WeChat articles?

About $40, at $4 per 1,000 articles.

#### Do I need a Chinese proxy?

No.

#### Is there a free tier?

Yes. On the free Apify plan each run returns up to 5 results. Article details, profiles and comment replies need a paid plan.

#### Can I use it from Python, JavaScript or an AI agent?

Yes, through the Apify API, the client libraries, or MCP.

### API, Python, JavaScript and MCP

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("openclawai/wechat-scraper").call(run_input={"mode": "search_latest", "queries": ["人工智能", "新能源汽车"], "maxItems": 100})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

**JavaScript**

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

const client = new ApifyClient({ token: "YOUR_APIFY_TOKEN" });
const run = await client.actor("openclawai/wechat-scraper").call({"mode": "search_latest", "queries": ["人工智能", "新能源汽车"], "maxItems": 100});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

**MCP** (Claude, ChatGPT, Cursor and other MCP clients): `https://mcp.apify.com/?tools=openclawai/wechat-scraper`

Works with Zapier, Make, n8n, Google Sheets, Slack, webhooks and scheduled runs.

### 🛡️ Legal

Collects **public** data only. You are responsible for complying with WeChat's terms and with privacy laws such as GDPR, CCPA and PIPL when you store personal data.

### ⭐ Support

Something not working? Check the `hint` / `error` rows, then open an issue with the run link. We reply fast.

# Actor input Schema

## `mode` (type: `string`):

Keywords: search_articles, search_latest, search_users, search_videos. Links, @usernames or IDs: user_posts, article_detail, article_comments, user_profile, channel_videos, channel_profile, video_detail, video_comments.

## `urls` (type: `array`):

One per line: article links (mp.weixin.qq.com/s/…), Official Account names, gh\_ IDs or WeChat IDs, Channels names or IDs (v2\_…@finder, sph…), Channels video IDs or the item_id of a video from search.

## `queries` (type: `array`):

Keywords for the search modes, one per line. Chinese keywords give the best results.

## `maxItems` (type: `integer`):

Stop after this many rows per link or keyword (comments include their replies).

## `includeReplies` (type: `boolean`):

In article_comments mode, also return the replies under each comment. Replies are billed as comments. Paid Apify plans only.

## Actor input object example

```json
{
  "mode": "search_articles",
  "queries": [
    "人工智能"
  ],
  "maxItems": 20,
  "includeReplies": false
}
```

# Actor output Schema

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

No description

# 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 = {
    "mode": "search_articles",
    "queries": [
        "人工智能"
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("openclawai/wechat-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 = {
    "mode": "search_articles",
    "queries": ["人工智能"],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("openclawai/wechat-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 '{
  "mode": "search_articles",
  "queries": [
    "人工智能"
  ],
  "maxItems": 20
}' |
apify call openclawai/wechat-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,openclawai/wechat-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/ohdb75fOKbfcpCGK7/builds/olB95oZfOgkLCT9Pr/openapi.json
