---
title: "WeChat Index API · SocialToAI"
canonical: https://socialtoai.com/wechat-keyword-history-api/
updated: 2026-10-30
---

# WeChat Index API

Get a keyword's WeChat Index over the last 30 days, one figure a day. The WeChat Index is WeChat's score of attention across its search, articles, Moments and more, not a count of searches, and is not comparable with Douyin's or Xiaohongshu's; days are calendar days in China time (UTC+8). A call to the WeChat Index API costs 60 credits ($0.12 to $0.20 depending on the pack); failed calls are free.

- Page: https://socialtoai.com/wechat-keyword-history-api/
- Last updated: 2026-10-30

| Request | Price key | Credits |
| --- | --- | --- |
| `POST /v1/call/wechat.keyword_history` | `wechat.keyword_history` | 60 |

Daily watch: tell your AI “watch this daily” and this call runs by itself every day, sending only what is new: at most 1,860 credits a month, about $6.20. [How to set it up](https://socialtoai.com/docs/schedules.md#watch)

## What you get from the WeChat Index API

A recorded call returned 1 item; here is the first, field by field. Names and text are removed from the sample; the numbers are as recorded.

| Field | In the recorded answer |
| --- | --- |
| title | 露营 |
| url | null |
| rank | null |
| heat | null |
| fields.points | 7 entries |

60 credits a call (≈ $0.12–$0.20): about 50 calls for $10.

## WeChat Index API: request and response

```bash
curl https://api.socialtoai.com/v1/call/wechat.keyword_history \
  -H "Authorization: Bearer $SOCIALTOAI_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "keyword": "咖啡"
  }'
```

```python
import os
import uuid
import requests

response = requests.post(
    "https://api.socialtoai.com/v1/call/wechat.keyword_history",
    headers={
        "Authorization": f"Bearer {os.environ['SOCIALTOAI_API_KEY']}",
        # A new key for each request; the same one again retries it without paying twice.
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={
        "keyword": "咖啡",
    },
)
print(response.json())
```

## WeChat Index API parameters

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `keyword` | string | Required | — | One keyword |

First page only: up to 1 items, with no cursor parameter and no next page.

## WeChat Index API response fields

| Field | Type | Meaning | Given |
| --- | --- | --- | --- |
| `items[].title` | string | The entry's title or name. | yes |
| `items[].url` | string | A link that opens it; null where the platform's list has none. | yes |
| `items[].rank` | integer | Position on a board, from 1. | yes |
| `items[].heat` | integer | The platform's heat score. | yes |
| `items[].fields.points` | array | One entry per day, oldest first: date, search_index, composite_index, notes, impressions, views, engagements. | yes; search_index, notes, impressions, views, engagements always null |

Every item also has platform, id, ref, approx and type; the response around the items is the same on every call. [Response format](https://socialtoai.com/docs/api/response.md)

## Sample response

```json
{
  "request_id": "req_00000000-0000-4000-8000-000000000001",
  "schema_version": "v1",
  "fetched_at": "2026-10-29T09:49:49.000Z",
  "action": "call",
  "op": "wechat.keyword_history",
  "platform": "wechat",
  "status": "ok",
  "items": [
    {
      "platform": "wechat",
      "id": "露营",
      "ref": "露营",
      "approx": [],
      "type": "entry",
      "entry_type": "keyword_history",
      "title": "露营",
      "url": null,
      "rank": null,
      "heat": null,
      "fields": {
        "points": [
          {
            "date": "2026-09-29T00:00:00.000Z",
            "search_index": null,
            "composite_index": 38626358,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          },
          {
            "date": "2026-09-30T00:00:00.000Z",
            "search_index": null,
            "composite_index": 35843833,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          },
          {
            "date": "2026-10-01T00:00:00.000Z",
            "search_index": null,
            "composite_index": 38536619,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          },
          {
            "date": "2026-10-02T00:00:00.000Z",
            "search_index": null,
            "composite_index": 43998859,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          },
          {
            "date": "2026-10-03T00:00:00.000Z",
            "search_index": null,
            "composite_index": 51530144,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          },
          {
            "date": "2026-10-04T00:00:00.000Z",
            "search_index": null,
            "composite_index": 47706506,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          },
          {
            "date": "2026-10-05T00:00:00.000Z",
            "search_index": null,
            "composite_index": 52354075,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          }
        ]
      }
    }
  ],
  "unavailable": ["fields.points.search_index", "fields.points.notes", "fields.points.impressions", "fields.points.views", "fields.points.engagements"],
  "page": {
    "has_more": false
  },
  "warnings": [],
  "applied_params": {
    "keyword": "咖啡"
  },
  "cost_credits": 60,
  "billing": {
    "cost_credits": 60,
    "balance_credits": 40,
    "today_spend_credits": 60,
    "daily_limit_credits": null,
    "daily_remaining_credits": null,
    "display": "This call: 60 credits (≈ $0.20). Balance: 40 credits (≈ $0.13)."
  },
  "replayed": false
}
```

## WeChat Index API: paging and billing

- One call returns the first page only, up to 1 items, with no cursor, for 60 credits.
- A call that runs and finds nothing is a successful call: status is "empty", items is empty, and it costs 60 credits.
- On this call WeChat Articles cannot tell a article that does not exist from one with no data: both come back as empty, and both are charged.
- 5 calls per second per key, 20 after a purchase; going over is not charged. [Rate limits](https://socialtoai.com/docs/credits-and-billing.md#rate-limits)
- A failed call costs 0 credits and is never retried on its own. [Error codes](https://socialtoai.com/docs/api/errors.md)
- Interface last tested: 2026-10-30. Each call reads from the platform, and `fetched_at` in the answer is when it was read. The same request sent again with the same key within 5 minutes is a replay (`replayed: true`): 0 credits, and the answer as first read.

## Once connected over MCP, these questions use the WeChat Index API

- Get a keyword's WeChat Index over the last 30 days, one figure a day: 咖啡. → `call {"op":"wechat.keyword_history","keyword":"咖啡"}`, 60 credits

## Give this to your AI

```
Use the SocialToAI MCP server (https://mcp.socialtoai.com/mcp) for this: Get a keyword's WeChat Index over the last 30 days, one figure a day: 咖啡.
Call the call tool with {"op":"wechat.keyword_history","keyword":"咖啡"}. Needed: keyword.
It gives its first page only, up to 1 items, with no next page; each call costs 60 credits.
Before you start, work out how many credits it will take in all and ask me; call it only after I agree.
If SocialToAI is not connected yet, tell me how to connect it; never ask me to paste a key into the chat.
Answer with a link to every item you used, and tell me how many credits it cost.
```

## The same call on other platforms

| Interface | Price key | Credits |
| --- | --- | --- |
| [Xiaohongshu (RedNote) Pugongying keyword search index API](https://socialtoai.com/xiaohongshu-keyword-history-api.md) | `xiaohongshu.keyword_history` | 24 |
| [Douyin trend-index keyword trends API](https://socialtoai.com/douyin-keyword-history-api.md) | `douyin.keyword_history` | 4 |

## More on WeChat Articles

| Interface | What it does | Price key | Credits |
| --- | --- | --- | --- |
| [WeChat Search suggestions API](https://socialtoai.com/wechat-keyword-related-api.md) | Get the suggestions WeChat Search lists in its search box for a keyword, in the order it lists them, about 10 at a time. | `wechat.keyword_related` | 60 |
| [WeChat Official Account owner API](https://socialtoai.com/wechat-account-owner-api.md) | Get who a WeChat Official Account is registered to, by its original ID. | `wechat.account_owner` | 60 |
| [WeChat Articles Search API](https://socialtoai.com/wechat-search-api.md) | Find articles by keyword: text, author, likes and publish time. | `wechat.search` | 12 |
| [WeChat Articles Detail API](https://socialtoai.com/wechat-detail-api.md) | One article by link: text, author and publish time. | `wechat.detail` | 12 |
| [WeChat Articles Comments API](https://socialtoai.com/wechat-comments-api.md) | The comments under one article: text, likes, reply count and time. | `wechat.comments` | 12 |
| [WeChat Articles User Profile API](https://socialtoai.com/wechat-user-profile-api.md) | One account: name. | `wechat.user_profile` | 12 |
| [WeChat Articles User Posts API](https://socialtoai.com/wechat-user-posts-api.md) | The recent articles of one account. | `wechat.user_posts` | 12 |
| [WeChat Official Account article stats API](https://socialtoai.com/wechat-article-stats-api.md) | Get the current counts of a WeChat Official Account article by its long link. | `wechat.article_stats` | 12 |
| [WeChat mini program search API](https://socialtoai.com/wechat-miniprogram-search-api.md) | Find WeChat mini programs for search terms through WeChat Search, the first page (about 25). | `wechat.miniprogram_search` | 60 |

## Read next

- [WeChat Articles official API: access, prices and limits](https://socialtoai.com/does-wechat-have-an-api.md): What its own API allows, who can use it and what it costs, with sources.
- [How to let AI read WeChat Official Account articles](https://socialtoai.com/how-to/let-ai-read-wechat-articles.md): let your AI read WeChat Official Account articles
- [Turn WeChat Official Account articles into RSS, or push them to Feishu and WeCom](https://socialtoai.com/how-to/wechat-official-account-to-rss-feishu-wecom.md): turn WeChat Official Account articles into a private RSS feed, or push them to Feishu and WeCom
- [WeChat Articles MCP server](https://socialtoai.com/mcp/wechat.md): Let your AI read WeChat Articles.

## WeChat Index API: questions

**Do I need a WeChat Articles account or WeChat Articles's own API access?**

No. You only need a SocialToAI key. The call returns content and account information publicly visible on WeChat Articles; you never sign in to WeChat Articles or apply for anything there.

**Can I get the next page?**

No. On WeChat Articles this interface gives its first page only (up to 1 items): the response carries no cursor, and page.has_more is always false.

**What does one call cost in dollars?**

60 credits: $0.20 at 300 credits per dollar (purchases from $10), $0.12 at 500 per dollar (from $200). Credits never expire and there is no subscription. 100 free credits on sign-up, no card.

**Am I charged when a call fails or finds nothing?**

A failed call costs 0 credits and is never retried on its own. A call that runs and finds nothing is a successful call: status is "empty" and it costs 60 credits. This interface cannot tell a target that does not exist from one with no data, so both are charged as empty.

**How much does one call return?**

One call returns the first page only, up to 1 items, with no cursor, for 60 credits.

**Is there a rate limit?**

5 calls a second per key, 20 a second after your first purchase. A request over the limit is told how long to wait and is not charged.

**How do I use it from Claude, ChatGPT or Cursor?**

Yes. In Claude or ChatGPT, add the MCP address https://mcp.socialtoai.com/mcp as a custom connector, sign in with the code we email you and press Allow; there is no key to paste. In Claude Code, run one command, type /mcp, pick socialtoai and sign in; Codex and Cursor sign in too, with their steps on the connect page. Then ask in plain words and your AI calls call for you.
