# WeChat Channels API in Python: account videos and comments (2026)

WeChat gives developers no endpoint for reading other accounts' Channels videos and comments; to read them from a program, use a third-party data API. Below it is done with DataXAPI's Python SDK; the free trial covers up to 333 calls. 3 endpoints do it: WeChat Channels account search → WeChat Channels account videos → WeChat Channels video comments. The worked example below is 8 calls and costs $0.20 in all; a failed call is not charged.

Updated 2026-11-06

Find a Channels account by name, take its last two pages of videos, then the comments under the first 5, into one CSV: caption, likes, comment text, comment likes, time.

## Step by step

### Step 1: WeChat Channels account search

Find the account by its exact name; `id` is the account ID, starting v2_ and ending @finder. ([WeChat Channels account search](https://dataxapi.com/apis/wechat_channels/users/search/), $0.0600 / a call)

cURL

```bash
curl -G "https://api.dataxapi.com/v1/wechat_channels/users/search" \
  --data-urlencode "query=央视新闻" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY"
```

Python

```python
# pip install dataxapi
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.wechat_channels.users.search(query="央视新闻")
print(result["data"]["items"])
```

TypeScript

```typescript
// npm i @dataxapi/sdk
import { DataXAPI } from "@dataxapi/sdk";

const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.wechat_channels.users.search({ query: "央视新闻" });
console.log(result.data.items);
```

CLI

```bash
dataxapi call wechat_channels.users.search 'query=央视新闻'
```

Recorded response: From a response recorded 2026-10-29 10:19 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.

```jsonc
{
  "code": "ok",
  "request_id": "9b4ae98e-ff1c-4be2-a081-de7a4c417320",
  "data": {
    "items": [
      {
        "id": "v2_060000231003b20f05a99829d60f183968442cbbd75213164b2ee52fc0a0ade5678bd240c0@finder",
        "name": "山野咖啡馆",
        "bio": "记录生活里的小确幸｜合作请私信",
        "avatar_url": "https://wx.qlogo.cn/mmhead/sYXnQFwJZb0xiPhE5pI7TE9SVTvf0TcvVbc0dzgM/132",
        "verified": false
      },
      // … 1 more
    ]
  },
  "page": {
    "next_cursor": null,
    "cursor_expires_at": null,
    "has_more": false,
    "returned": 2
  },
  "warnings": [],
  "meta": {
    "capability": "wechat_channels.users.search",
    "result_status": "complete",
    "fetched_at": "2026-10-29T10:19:50.000Z",
    "cached": false,
    "replayed": false,
    "unavailable": {
      "username": "platform",
      "url": "platform",
      "created_at": "capability",
      "metrics": "capability"
    },
    "billing": {
      "amount": "0.06",
      "currency": "USD",
      "balance_after": "9.94"
    }
  }
}
```

### Step 2: WeChat Channels account videos

Put the account ID into `id` for a page of videos, newest first; the next page comes from `page.next_cursor`. Each item's `id` is the video ID. ([WeChat Channels account videos](https://dataxapi.com/apis/wechat_channels/users/videos/list/), $0.0200 / a call)

cURL

```bash
curl -G "https://api.dataxapi.com/v1/wechat_channels/users/videos/list" \
  --data-urlencode "id=v2_060000231003b20faec8c5e5811dc3ddce02ec30b0772029a703e1b9f446ba147658bbcfab81@finder" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY"
```

Python

```python
# pip install dataxapi
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.wechat_channels.users.videos.list(id="v2_060000231003b20faec8c5e5811dc3ddce02ec30b0772029a703e1b9f446ba147658bbcfab81@finder")
print(result["data"]["items"])
```

TypeScript

```typescript
// npm i @dataxapi/sdk
import { DataXAPI } from "@dataxapi/sdk";

const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.wechat_channels.users.videos.list({ id: "v2_060000231003b20faec8c5e5811dc3ddce02ec30b0772029a703e1b9f446ba147658bbcfab81@finder" });
console.log(result.data.items);
```

CLI

```bash
dataxapi call wechat_channels.users.videos.list id=v2_060000231003b20faec8c5e5811dc3ddce02ec30b0772029a703e1b9f446ba147658bbcfab81@finder
```

Recorded response: From a response recorded 2026-10-17 10:14 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.

```jsonc
{
  "code": "ok",
  "request_id": "2143009c-a56e-4423-a070-e4b13334cc49",
  "data": {
    "items": [
      {
        "id": "14031298325505939525",
        "type": "video",
        "text": "周末露营｜第一次尝试就爱上了，清单放评论区",
        "published_at": "2026-10-17T04:01:50.000Z",
        "author": {
          "id": "v2_060000231003b20feb309ebc5d518611c23f3acfd8710c36fa0cf94a87b33dd1af62d903a6@finder",
          "name": "老周说装备"
        },
        "metrics": {
          "likes": 4,
          "comments": 0,
          "shares": 8,
          "favorites": 13
        }
      },
      // … 14 more
    ]
  },
  "page": {
    "next_cursor": "c1.F0ZqnT3QiojAZwQ9pjt4q0VB88XXKYhLbBXIaplQ",
    "cursor_expires_at": "2026-10-17T11:14:05.000Z",
    "has_more": true,
    "returned": 15
  },
  "warnings": [],
  "meta": {
    "capability": "wechat_channels.users.videos.list",
    "result_status": "complete",
    "fetched_at": "2026-10-17T10:14:05.000Z",
    "cached": false,
    "replayed": false,
    "unavailable": {
      "url": "platform",
      "title": "platform",
      "lang": "capability",
      "author.username": "platform",
      "author.avatar_url": "capability",
      "author.verified": "capability",
      "author.followers": "capability",
      "metrics.views": "capability",
      "metrics.reposts": "platform",
      "images": "capability",
      "hashtags": "capability",
      "mentions": "capability",
      "is_pinned": "capability",
      "post_id": "platform",
      "parent_id": "platform",
      "root_id": "platform"
    },
    "billing": {
      "amount": "0.02",
      "currency": "USD",
      "balance_after": "9.98"
    }
  }
}
```

### Step 3: WeChat Channels video comments

Put the video ID into `id` for a page of top-level comments, with IP location. ([WeChat Channels video comments](https://dataxapi.com/apis/wechat_channels/videos/comments/list/), $0.0200 / a call)

cURL

```bash
curl -G "https://api.dataxapi.com/v1/wechat_channels/videos/comments/list" \
  --data-urlencode "id=14559898883113486609" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY"
```

Python

```python
# pip install dataxapi
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.wechat_channels.videos.comments.list(id="14559898883113486609")
print(result["data"]["items"])
```

TypeScript

```typescript
// npm i @dataxapi/sdk
import { DataXAPI } from "@dataxapi/sdk";

const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.wechat_channels.videos.comments.list({ id: "14559898883113486609" });
console.log(result.data.items);
```

CLI

```bash
dataxapi call wechat_channels.videos.comments.list id=14559898883113486609
```

Recorded response: From a response recorded 2026-10-13 03:25 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.

```jsonc
{
  "code": "ok",
  "request_id": "4936e536-b2a8-46ef-9132-0ad7b1d40233",
  "data": {
    "items": [
      {
        "id": "14599225504823757671",
        "text": "第三个建议太实用了！",
        "published_at": "2024-12-31T20:01:33.000Z",
        "author": {
          "id": "v2_060000231003b20fa4351d5400566796ed36158bb99b591533bcfe49e950522f0446689d86@finder",
          "name": "山野咖啡馆",
          "avatar_url": "https://wx.qlogo.cn/mmhead/kIZxpOrIhPoPPWoaXrILQ45F4oZTzTPtQa6ADu6x/132"
        },
        "metrics": { "likes": 349 },
        "post_id": "14752989122976584035",
        "parent_id": null,
        "root_id": null
      },
      // … 23 more
    ]
  },
  "page": {
    "next_cursor": "c1.SUxO2elUiHjFkB53f7ECZr8FM9MFD0eQZJ1J-6Rh",
    "cursor_expires_at": "2026-10-13T04:25:36.000Z",
    "has_more": true,
    "returned": 24
  },
  "warnings": [],
  "meta": {
    "capability": "wechat_channels.videos.comments.list",
    "result_status": "complete",
    "fetched_at": "2026-10-13T03:25:36.000Z",
    "cached": false,
    "replayed": false,
    "unavailable": {
      "url": "platform",
      "author.username": "platform",
      "metrics.comments": "capability"
    },
    "billing": {
      "amount": "0.02",
      "currency": "USD",
      "balance_after": "9.98"
    }
  }
}
```

## What the example costs

One account search, two pages of videos, then a page of comments under 5 videos

| Endpoint | Calls | Price | Subtotal |
| --- | --- | --- | --- |
| [WeChat Channels account search](https://dataxapi.com/apis/wechat_channels/users/search/) | 1 | $0.0600 | $0.0600 |
| [WeChat Channels account videos](https://dataxapi.com/apis/wechat_channels/users/videos/list/) | 2 | $0.0200 | $0.0400 |
| [WeChat Channels video comments](https://dataxapi.com/apis/wechat_channels/videos/comments/list/) | 5 | $0.0200 | $0.10 |
| Total | 8 |  | $0.20 |

Prices are the prices in force when this page was built. A failed call costs nothing.

## In your AI (MCP)

Connect DataXAPI to your AI client once. Then say what you want; the agent finds these endpoints, checks the price and calls them on your balance.

Say: Find the 央视新闻 Channels account, list its last 20 videos with captions and likes, then the comments under the 5 most liked, as one table.

What the agent sends to the call tool: 

```json
{
  "capability": "wechat_channels.users.search",
  "query": "央视新闻",
  "idempotency_key": "<a new UUID>"
}
```

[About the MCP server](https://dataxapi.com/mcp/)

## With a Skill

The Comments and word of mouth Skill does this job as a ready-made task, under a spending cap. “What are people praising and complaining about under this post?” Its example run: 3 calls, at most $0.0060. [Comments and word of mouth](https://dataxapi.com/skills/comments/)

## Why DataXAPI

- Steady: endpoints were available 99.0% of the last 30 days, on a public status page you can check.
- Fast: a paid call took 2.3 seconds at the median over the last 7 days (counted 2026-11-06).
- Fewer tokens: across 15 endpoints on WeChat Channels, one recorded real response each, the platform's own JSON comes to 231k tokens and what an AI reads through DataXAPI's MCP server to 35k, 85% fewer; the JSON of a direct API call is 82% fewer too (counted 2026-11-06). Every platform answers in one shape: the author in `author`, counts in `metrics`, the next page in `page.next_cursor`, so another platform needs no new parser.
- See before you pay: every endpoint's page shows a recorded real response, field by field.
- Spending you control: a failed call is not charged; each key can have a limit, `X-Max-Price` caps one call, and the same `Idempotency-Key` within 24 hours is never charged twice.
- Ready for AI: a remote MCP server listed in the official MCP registry as `com.dataxapi/mcp`, usable from Claude, Cursor and ChatGPT.
- Free trial of up to 333 calls, no card.

## Good to know

- With only a video's share link, `wechat_channels.videos.get` takes it, and its `author.id` is the account ID.
- No WeChat account and no QR login.
- Without code: connect DataXAPI to Claude or ChatGPT and say the sentence under “In your AI”.

## The whole script

The task above as one script that runs as it is: Python, the SDK, your key from DATAXAPI_API_KEY. It writes a CSV file and ends by printing what it called, fetched and was charged.

```python
# pip install dataxapi
# export DATAXAPI_API_KEY=dx_...   (your key)
import csv
from decimal import Decimal
from dataxapi import DataXAPI

dx = DataXAPI()
calls, fetched, charged = 0, 0, Decimal("0")

def run(capability, params):
    """One call; counts it and what it was charged."""
    global calls, charged
    result = dx.call(capability, params)
    calls += 1
    charged += Decimal(str(result["meta"]["billing"]["amount"]))
    return result

NAME = "央视新闻"
PAGES, VIDEOS = 2, 5

# 1. The account ID (v2_...@finder) for the exact name.
account = run("wechat_channels.users.search", {"query": NAME})["data"]["items"][0]["id"]

# 2. Its videos, newest first, page after page.
videos, cursor = [], None
for _ in range(PAGES):
    page = run("wechat_channels.users.videos.list", {"id": account, **({"cursor": cursor} if cursor else {})})
    videos += page["data"]["items"]
    cursor = page["page"]["next_cursor"]
    if not page["page"]["has_more"]:
        break

# 3. A page of comments under the first few.
rows = []
for video in videos[:VIDEOS]:
    for comment in run("wechat_channels.videos.comments.list", {"id": video["id"]})["data"]["items"]:
        rows.append([video.get("text"), video["metrics"].get("likes"), comment.get("text"), comment["metrics"].get("likes"), comment.get("published_at")])

fetched = len(rows)
with open("channels-comments.csv", "w", newline="", encoding="utf-8") as file:
    csv.writer(file).writerows([["caption", "video_likes", "comment", "comment_likes", "published_at"], *rows])

print(f"calls: {calls}, items: {fetched}, charged: ${charged}")
```

## Endpoints

- [WeChat Channels account search](https://dataxapi.com/apis/wechat_channels/users/search/)
- [WeChat Channels account videos](https://dataxapi.com/apis/wechat_channels/users/videos/list/)
- [WeChat Channels video comments](https://dataxapi.com/apis/wechat_channels/videos/comments/list/)

## More about WeChat Channels

- [WeChat Channels API](https://dataxapi.com/apis/wechat_channels/)
- [How to list a WeChat Official Account's past articles](https://dataxapi.com/guides/wechat-official-account-articles/)
- [How to get WeChat Official Account article reads and likes](https://dataxapi.com/guides/wechat-article-reads-and-likes/)
- [How to get WeChat Channels video comments](https://dataxapi.com/guides/wechat-channels-video-comments/)
- [How to list a WeChat Channels account's videos](https://dataxapi.com/guides/wechat-channels-user-videos/)
- [How to get WeChat Search results by keyword](https://dataxapi.com/guides/wechat-search-posts/)
- [WeChat Official Account articles API in Python: history and reads (third-party, 2026)](https://dataxapi.com/guides/wechat-official-account-api-python/)
- [Is there an API for WeChat Official Account articles?](https://dataxapi.com/answers/is-there-an-api-for-wechat-official-account-articles/)
- [How do I get WeChat Channels data?](https://dataxapi.com/answers/how-to-get-wechat-channels-data/)
- [What is __biz in a WeChat article link?](https://dataxapi.com/answers/wechat-official-account-biz/)
- [What do mid, idx and sn mean in a WeChat article link?](https://dataxapi.com/answers/wechat-article-link-mid-idx-sn/)
- [What is a WeChat Official Account's original ID (gh_)?](https://dataxapi.com/answers/wechat-official-account-original-id/)
- [What is a WeChat Channels account ID (…@finder), and what is an export ID?](https://dataxapi.com/answers/wechat-channels-finder-id/)
- [WeChat returns ret=200013 freq control when listing an account's articles: what now? (2026)](https://dataxapi.com/answers/wechat-ret-200013-freq-control/)
- [wechat-article-exporter has stopped: what else exports WeChat articles in bulk? (2026)](https://dataxapi.com/answers/wechat-article-exporter-alternative/)
- [wewe-rss has stopped working: what now? (2026)](https://dataxapi.com/answers/wewe-rss-not-working/)

---

Catalog revision 9d3b7fa5a896745d. [HTML version](https://dataxapi.com/guides/wechat-channels-api-python/)
