# WeChat Official Account Scraper - 公众号 Articles, No Login (`reportable_broth/wechat-official-account-scraper`) Actor

WeChat Official Account (公众号) article scraper, no login: search articles by keyword, full text, images, author, account ID, original flag and publish time. Scrape any mp.weixin.qq.com link. Monitor mode returns new articles only. $4.99 per 1,000 articles.

- **URL**: https://apify.com/reportable\_broth/wechat-official-account-scraper.md
- **Developed by:** [Quiet Harvest](https://apify.com/reportable_broth) (community)
- **Categories:** Social media, News, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$4.99 / 1,000 articles

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 Official Account Scraper (公众号)

Scrape WeChat Official Account (微信公众号) articles without a WeChat account: search articles by keyword, or paste article links. You get the title, account name and ID, author, publish time, original (原创) flag, full text and image URLs.

$4.99 per 1,000 articles. No login, no cookie, no WeChat app.

### What does WeChat Official Account Scraper do?

- **Keyword search.** Finds WeChat articles through Sogou WeChat search (搜狗微信), up to about 100 articles per keyword.
- **Full articles.** Opens each article for the full text, all images, author, account ID (gh\_...), the `__biz` account id and the original flag.
- **Article links.** Paste any `mp.weixin.qq.com/s/...` link and get the same fields.
- **Monitor mode.** With `onlyNew` on, each scheduled run only returns articles you haven't seen yet.

### What can I use it for?

- Track what Chinese media and brands publish about a topic, a product or a competitor.
- Collect Chinese articles for market research, translation or an AI / RAG knowledge base.
- Find the Official Accounts that write about a niche, for partnerships or outreach.
- Archive the full text of articles before they get deleted.

### How do I use it?

1. Click Try for free. A free Apify account is enough.
2. Add keywords (Chinese works best) or article URLs.
3. Click Start.
4. Download the results as JSON, CSV or Excel, or read them through the API.

### Examples

Latest articles on a topic, full text:

```json
{
  "keywords": ["新能源汽车", "跨境电商"],
  "maxArticlesPerKeyword": 50,
  "publishedAfter": "2026-09-01"
}
```

Fast metadata only (no article pages opened):

```json
{
  "keywords": ["咖啡"],
  "maxArticlesPerKeyword": 100,
  "fetchArticles": false
}
```

Specific articles:

```json
{
  "articleUrls": ["https://mp.weixin.qq.com/s/xxxxxxxx"]
}
```

### Input

| Field | Default | |
|---|---|---|
| `keywords` | | Keywords to search |
| `articleUrls` | | mp.weixin.qq.com article links |
| `maxArticlesPerKeyword` | `20` | Up to 100 |
| `publishedAfter` | | Skip older articles (YYYY-MM-DD) |
| `fetchArticles` | `true` | Open each article for full details |
| `includeContent` | `true` | Include body text and images |
| `onlyNew` | `false` | Skip articles from earlier runs |
| `proxyConfiguration` | residential | Used for Sogou search |
| `articlesViaProxy` | `false` | Also fetch article pages through the proxy |
| `requestGapSecs` | `1.5` | Pause between Sogou requests |

### What data do I get?

```json
{
  "keyword": "咖啡",
  "title": "咖啡地图 | “咖啡”遇上西雅图，好喝夜未眠",
  "account": "企鹅吃喝指南",
  "accountId": "gh_08fd862a7e90",
  "accountBiz": "MjM5Mzc5NTk1OQ==",
  "author": "低电量",
  "publishedAt": "2017-06-11T03:52:20Z",
  "isOriginal": true,
  "digest": "西雅图，何止星巴克？还有更值得拜访的咖啡馆。",
  "summary": "不久前, 君去西雅图出差,参加咖啡展会...",
  "cover": "http://mmbiz.qpic.cn/...",
  "content": "不久前，🐧 君去西雅图出差，参加咖啡展会……",
  "wordCount": 4027,
  "images": ["https://mmbiz.qpic.cn/..."],
  "articleId": "MjM5Mzc5NTk1OQ==_2653009417_1",
  "url": "https://mp.weixin.qq.com/s?src=11&timestamp=...",
  "scrapedAt": "2026-09-30T12:00:00Z"
}
```

With `fetchArticles` off you get `title`, `summary`, `account`, `publishedAt`, `cover` and `url`.

### How much does it cost?

$4.99 per 1,000 articles ($0.005 each). No start fee, proxy included.

- 100 articles with full text: about $0.50.
- 5 keywords on a daily schedule with `onlyNew`, 50 new articles a day: about $0.25 a day.

Apify's free plan includes monthly credit that covers roughly 1,000 articles.

### Limits

- **Read counts, likes and "在看" are not included.** WeChat only shows those inside the WeChat app to logged-in users.
- **About 100 articles per keyword.** That's the most Sogou WeChat search shows. Use more specific keywords to reach more.
- **Search order is relevance, not date.** Results mix new and older articles. Use `publishedAfter` to keep recent ones.
- **The `url` is a temporary link.** WeChat links that come from search carry a signature and may stop opening after a while. Save the content you need; use `articleId` to identify an article across runs.
- Deleted or blocked articles are skipped and not charged.

### FAQ

**Do I need a WeChat account?**
No. It uses public pages: Sogou WeChat search and the public article pages.

**Can I get every article from one account?**
Not yet. Search by the account name plus a topic, or paste the article links you have.

**Why did a run stop early?**
Sogou sometimes shows a captcha to busy IPs. The actor switches IPs and retries; if it keeps getting blocked it stops, and you're only charged for articles already delivered. Running again later usually works.

**Can I call it from the API, Make, n8n or an AI agent?**
Yes, from the Apify API, any integration, or MCP.

# Actor input Schema

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

Search WeChat Official Account (公众号) articles by keyword. Chinese keywords work best, e.g. 新能源汽车, 咖啡, 跨境电商. Up to ~100 articles per keyword.

## `articleUrls` (type: `array`):

WeChat article links (mp.weixin.qq.com/s/...) to scrape directly: title, account, author, publish time, full text and images.

## `maxArticlesPerKeyword` (type: `integer`):

Sogou WeChat search shows at most 10 pages (about 100 articles) per keyword.

## `publishedAfter` (type: `string`):

Optional. Skip articles published before this date (YYYY-MM-DD, Beijing time). Search results mix new and old articles, so this keeps only recent ones.

## `fetchArticles` (type: `boolean`):

On: open every article for author, account ID, original flag, full text and images. Off: search results only (title, summary, account, date, cover, link), much faster.

## `includeContent` (type: `boolean`):

Put the article body text and image URLs in the output. Turn off if you only need metadata.

## `onlyNew` (type: `boolean`):

Remember articles from earlier runs of the same input and skip them. Use with a schedule to track new articles on a topic.

## `proxyConfiguration` (type: `object`):

Used for Sogou search, which blocks busy IPs. Residential recommended. Article pages are fetched directly unless you turn on the option below.

## `articlesViaProxy` (type: `boolean`):

Off by default: article pages are large (~0.8 MB each) and WeChat serves them without blocking.

## `requestGapSecs` (type: `number`):

Slower is less likely to be blocked.

## Actor input object example

```json
{
  "keywords": [
    "新能源汽车"
  ],
  "maxArticlesPerKeyword": 20,
  "fetchArticles": true,
  "includeContent": true,
  "onlyNew": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "articlesViaProxy": false,
  "requestGapSecs": 1.5
}
```

# 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 = {
    "keywords": [
        "新能源汽车"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("reportable_broth/wechat-official-account-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 = {
    "keywords": ["新能源汽车"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("reportable_broth/wechat-official-account-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 '{
  "keywords": [
    "新能源汽车"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call reportable_broth/wechat-official-account-scraper --silent --output-dataset

```

## MCP server setup

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