# WeChat Article Search: Official Account Articles by Keyword (`precious_bathmat/wechat-article-search`) Actor

Search WeChat Official Account (公众号) articles by keyword through Sogou WeChat search: title, summary, account, publish time, cover image and link, up to 100 per keyword. Plus a report per keyword with the top accounts and how recent the articles are. No login.

- **URL**: https://apify.com/precious_bathmat/wechat-article-search.md
- **Developed by:** [Mariam Ahmed](https://apify.com/precious_bathmat) (community)
- **Categories:** Social media, Marketing
- **Security:** Limited permissions
- **Stats:** 6 total users, 6 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 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 Article Search: Official Account Articles by Keyword

Search **WeChat Official Account (公众号) articles** by keyword through **Sogou WeChat search** (weixin.sogou.com), the public search engine for WeChat articles, with no login and no API key, and get a **report for every keyword**:

- **Every article**: rank, **title**, **summary**, **account** (公众号 name), **publish time**, cover image, link
- **Up to 100 articles per keyword**, in Chinese or English
- **Report per keyword**: Sogou's total count, **the accounts writing most about it**, newest and oldest article, share from the last 24 hours, 7 and 30 days, articles per month

### What does this WeChat article search do?

```
WeChat · "ChatGPT" · about 216 articles on Sogou · 92 read
 14 accounts: 央视财经 39 · 中国新闻网 10 · 光明网 7
 Oldest 2022-12-08 · newest 2026-03-04

WeChat · "新能源汽车" (new-energy vehicles) · about 20,241 articles · 97 read
 90 accounts · all 97 from the last 24 hours
```

1. Enter **keywords**: a topic, a brand, a company, a product.
2. The Actor reads Sogou's WeChat search, 10 articles per page, up to 10 pages.
3. You get **one row per article** and **one report per keyword**.

```mermaid
flowchart LR
    A[Keywords] --> B[Sogou WeChat<br/>search<br/>10 per page]
    B --> C[Articles<br/>title, summary,<br/>account, time]
    C --> D[Report<br/>top accounts,<br/>freshness,<br/>per month]
```

### Who is it for?

- **Brands and agencies working in China**: what WeChat accounts publish about your brand, product or competitors
- **Market researchers and analysts**: which accounts cover a topic and how much of it is new this week
- **PR and media teams**: which state media, industry media and KOL accounts write about a subject
- **Cross-border e-commerce sellers**: the accounts and articles shaping a category in China
- **Researchers and journalists**: a quick, repeatable sample of WeChat coverage of any keyword

### What data do you get?

**Articles** (dataset, one row per article)

| Field | What it tells you |
|---|---|
| `keyword`, `rank` | The keyword searched and the article's position in Sogou's results |
| `title`, `summary` | The headline and Sogou's excerpt |
| `account` | The Official Account (公众号) that published it |
| `publishedAt` | Publish time (UTC) |
| `coverImage` | The article's cover image on WeChat's image server |
| `sogouLink` | Sogou's link to the article, for opening in a browser |
| `id` | Sogou's id for the result |

**Report** (`REPORTS`, one per keyword; `REPORTS_CSV` as a flat sheet)

| Field | What it tells you |
|---|---|
| `totalFoundApprox`, `articlesRead`, `sogouLimitReached` | Sogou's "about N results", how many were read, and whether the 100 cap was hit |
| `accounts`, `topAccounts` | How many accounts, and who publishes most on the keyword |
| `newestArticle`, `oldestArticle`, `freshness`, `byMonth` | How recent the coverage is |
| `withCoverImagePercent` | Share of articles with a cover image |

### Example: 24 October 2026

Six keywords, 100 articles each asked (561 articles in 3 minutes, 60 requests, no anti-robot check):

| Keyword | Sogou finds about | Read | Accounts | Top account | From the last 7 days |
|---|---|---|---|---|---|
| 人工智能 (AI) | 32,254 | 90 | 86 | 国际再保消息 (3) | 100% |
| 新能源汽车 (new-energy vehicles) | 20,241 | 97 | 90 | 融致升汽车产业 (4) | 100% |
| 跨境电商 (cross-border e-commerce) | 9,389 | 96 | 84 | 虎嗅APP (4) | 92% |
| 小红书运营 (RedNote marketing) | 5,026 | 88 | 32 | 运营大叔 (15) | 1% |
| ChatGPT | 216 | 92 | 14 | 央视财经 (39) | 0% |
| Tesla | 1,000 | 98 | 96 | 车研社车颜色 (2) | 100% |

Busy topics return mostly articles from the last day; narrow ones return the accounts that have covered them over the years.

### Pricing

Pay per event:

| Event | Price |
|---|---|
| Article saved | $0.001 |
| Keyword report | $0.02 |

100 articles with a report cost **$0.12**. Platform usage is small: 561 articles used under $0.005 of compute.

### Good to know

- **100 articles per keyword at most.** Without a Sogou login, Sogou shows 10 pages per search and then asks visitors to log in. Results are ranked by Sogou's relevance, not by date. For wider coverage use several narrower keywords ("特斯拉 降价", "特斯拉 Model Y").
- **Duplicates removed**: Sogou sometimes repeats an article on two pages, so a keyword can give a few under 100.
- **No full article text, read counts or likes.** The Actor reads Sogou's search pages only. WeChat's read and like counts are not public there.
- **Links**: `sogouLink` is Sogou's own link, meant for opening in a browser. It carries a search token and may stop working after a while; title, account and publish time identify the article for good.
- **Anti-robot check**: requests are spaced 3 seconds apart. If Sogou ever shows its anti-robot check, the run stops reading, keeps what it has and says so in the run summary. It does not try to get past the check.
- **Account names** are the public names of Official Accounts, as Sogou shows them.

### Input

| Field | Default | What it does |
|---|---|---|
| `keywords` | `["人工智能"]` | One search per keyword, Chinese or English |
| `maxArticlesPerKeyword` | `100` | Most articles per keyword (1 to 100) |
| `includeReports` | `true` | One report per keyword |

```json
{
  "keywords": ["特斯拉", "比亚迪", "小米汽车"],
  "maxArticlesPerKeyword": 100
}
```

### Integrations

Run it daily to watch what WeChat accounts publish about your keywords, send the dataset to **Google Sheets**, **Airtable** or a BI tool, or call it from **Make**, **Zapier**, **n8n** or the **Apify API**. The `REPORTS_CSV` record opens directly in any spreadsheet.

# Actor input Schema

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

Words to search WeChat articles for, one search each, in Chinese or English, e.g. "人工智能", "新能源汽车", "跨境电商", "ChatGPT", a brand or a company name.

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

Most articles per keyword (1 to 100). Sogou shows at most 100 per keyword without a login.

## `includeReports` (type: `boolean`):

One report per keyword: Sogou's total count, the accounts writing most about it, newest and oldest article, share from the last 24 hours, 7 and 30 days, articles per month.

## Actor input object example

```json
{
  "keywords": [
    "人工智能"
  ],
  "maxArticlesPerKeyword": 100,
  "includeReports": true
}
```

# Actor output Schema

## `articles` (type: `string`):

One row per article: rank, title, summary, account, publish time, cover image, Sogou link.

## `reports` (type: `string`):

Per keyword: total found, top accounts, newest and oldest article, freshness, articles per month.

## `reportsCsv` (type: `string`):

One flat row per keyword.

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

Requests, problems and the limits of the data.

# 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("precious_bathmat/wechat-article-search").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("precious_bathmat/wechat-article-search").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 precious_bathmat/wechat-article-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,precious_bathmat/wechat-article-search"
        }
    }
}
```

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/rvuhzDywmLklCRcSl/builds/jlIFXKtZeGvKPgijs/openapi.json
