# How do I monitor competitors' WeChat Official Accounts for new articles?

> A daily digest of what competitors published on WeChat: new articles, headline slot, reads and likes, with full text for the headline. Endpoints, cost and code.

Canonical page: https://okdata.online/answers/monitor-competitor-wechat-official-accounts/

**Short answer: **Check each competitor's Official Account once a day with Official Account article history ($0.04 per call, 10 newest articles with reads and likes where available), and fetch full text only for the headline article ($0.02). Eight competitors cost $14.40 a month for both.

A skincare brand watches eight competitors on WeChat. Every morning the team wants one message: who published yesterday, what went in the headline slot, which pieces were original, and how many reads each had so far. That digest takes one call per competitor to [Official Account article history](/apis/wechat_mp/accounts/articles/list/), plus one [article detail](/apis/wechat_mp/articles/get/) call for each headline you want to read in full.

## What each article comes with

- Title, link, summary and publish time.
- Reads and likes at the moment you fetch, where available.
- With `view=full`: `ext.position` (1 is the headline slot, 2 and up are the secondary pieces in the same push) and `ext.original` (whether it was marked original).

The headline slot tells you what the competitor bets on that day. Original versus reposted tells you whether they are building their own content or curating.

## Cost

| Setup | Calls a month | Cost a month |
|---|---|---|
| 8 competitors, list once a day | 240 | $9.60 |
| Plus full text of each day's headline | +240 | $14.40 |
| 25 competitors, list only | 750 | $30.00 |

You need each competitor's original ID (gh_…) once; [Official Account search](/apis/wechat_mp/accounts/search/) finds it by name for $0.058 per account returned.

## The morning digest

```python
import os, datetime, requests

API = "https://api.okdata.online"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
RIVALS = {"Brand A": "gh_aaaaaaaaaaaa", "Brand B": "gh_bbbbbbbbbbbb"}
since = (datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=1)).isoformat()

lines = []
for name, gh in RIVALS.items():
    body = requests.get(API + "/v1/wechat_mp/accounts/articles/list", headers=H, timeout=60,
                        params={"id": gh, "view": "full"}).json()
    if body["code"] != "ok":
        lines.append(f"{name}: could not check ({body['code']})")
        continue
    for a in body["data"]["items"]:
        if a["published_at"] < since:
            continue
        slot = "HEADLINE" if a.get("ext", {}).get("position") == 1 else "secondary"
        reads = a["metrics"]["views"]
        lines.append(f"{name} [{slot}] {a['title']} — reads {reads if reads is not None else 'n/a'}\n{a['url']}")

print("\n".join(lines) or "No new articles yesterday.")
```

## Reading the numbers fairly

- Reads keep climbing for days. A piece fetched six hours after publishing will look weaker than last week's piece fetched after seven days. For comparisons, re-fetch the list a week later and compare like with like.
- When reads or likes can't be fetched they come back null and `meta.unavailable` names them. Treat that as unknown, not zero.
- Shares, comments and "Wow" counts are not available.
- The accounts are public, but the articles belong to their authors: summarise and link rather than republish.

## Other ways to do it

Following the accounts in WeChat yourself is free and works for three or four competitors if someone reads them daily. WeChat ranking platforms such as 新榜 are better when you want industry leaderboards and long historical read curves rather than your own list. If you also want a competitor's Douyin, Xiaohongshu or Weibo activity in the same digest, the [competitor monitoring guide](/solutions/competitor-monitoring/) shows the other platforms.

## Endpoints used

- [Official Account article history](https://okdata.online/apis/wechat_mp/accounts/articles/list/) `wechat_mp.accounts.articles.list`: $0.04 per call · about 10 articles per page
- [Official Account article detail](https://okdata.online/apis/wechat_mp/articles/get/) `wechat_mp.articles.get`: $0.02 per call
- [Official Account search](https://okdata.online/apis/wechat_mp/accounts/search/) `wechat_mp.accounts.search`: $0.058 per account · at most $0.58 per call

Updated 2026-11-12
