# WeChat Search universal search

WeChat "Search" universal search; the vertical is switched by the business_type string key, just pass a keyword. Needs keyword. Served by TikHub.

Purpose:
- WeChat "Search" (搜一搜) universal search; the vertical is switched by the `business_type` **string key** — just pass a keyword.
- **Verified to return data**: all / official accounts (incl. service accounts and Channels) / articles / Channels videos / stickers.
- ⚠️ The other verticals (live streams, Moments, news, books, listen, images, encyclopedia, WeChat Index, underline, comments, photos, mini games, AI search) are gated server-side per account & region and currently always come back empty. A non-empty `no_more` is the universal signal (top level in both `raw=true` and `raw=false`); `raw=false` additionally gives `count=0` + `items=[]`. Still billed as a normal call.
- ⏱️ Due to WeChat server latency, this endpoint responds slowly; please set your client request timeout to 30 seconds — a timeout that is too small may result in being billed without receiving the response.
- ⚠️ Large-integer ID precision: IDs such as `docID` / `feedNonceId` in the response are 64-bit big integers beyond JavaScript's safe-integer range (2^53-1). Always receive / pass such IDs as **strings** (parse JSON with json-bigint or read them as text), never through JS `Number`. Swagger UI rounds the trailing digits of huge integers in its docs view — this is expected and does not affect the actual data returned by the API.
Parameters:
- keyword: Search keyword (1-100 chars after trimming). E.g. `人民日报`
- business_type: Optional, default `all`. Vertical string key (18 total). **Verified to return data**: `all` / `account` / `article` / `video` / `sticker`. The rest (`underline` / `encycloped

- Tool ID: `tikhub/wechat-search-v2-fetch-search`
- Name in the catalog: Wechat_search, WeChat Universal Search
- Provider: [TikHub](/providers/tikhub.md)
- Capability: [WeChat search](/tools/wechat/search.md)
- Price: $0.01 per call
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

The provider’s price, with no markup. Billed for measured usage.


```json
{
  "model": "per_call",
  "amountUsd": 0.01
}
```

Pricing source: [https://api.tikhub.io/api/v1/tikhub/user/get_all_endpoints_info](https://api.tikhub.io/api/v1/tikhub/user/get_all_endpoints_info). Official per-success route price USD 0.01; daily upstream discounts may reduce provider cost. No discount invented for the customer. 10/second.

Price verification date: 2026-10-05.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "keyword": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "title": "Keyword",
      "description": "搜索关键词（1-100 字）/Search keyword (1-100 chars)"
    },
    "business_type": {
      "type": "string",
      "enum": [
        "all",
        "account",
        "article",
        "video",
        "sticker",
        "underline",
        "encyclopedia",
        "live_stream",
        "comment",
        "listen",
        "news",
        "photos",
        "book",
        "moments",
        "image",
        "mini_game",
        "weixin_index",
        "ai_search"
      ],
      "title": "Business Type",
      "description": "垂类字符串键（共 18 个）。**实测有结果**：综合 all / 公众号·服务号·视频号 account / 文章 article / 视频 video / 表情 sticker。其余键（underline / encyclopedia / live_stream / comment / listen / news / photos / book / moments / image / mini_game / weixin_index / ai_search）由微信服务端按账号与地区下发，当前实测恒返回空结果（count=0 + no_more 文案，仍按一次正常调用计费）。当前账号真正可用的 tab 以综合搜索响应里的 categories 为准；传列表外的值直接报错（422）/Vertical key (18 total). **Verified to return data**: all / account / article / video / sticker. The rest (underline / encyclopedia / live_stream / comment / listen / news / photos / book / moments / image / mini_game / weixin_index / ai_search) are gated server-side per account & region and currently always come back empty (count=0 plus a no_more message — still billed as a normal call). Use the `categories` field of an `all` search for the authoritative per-account tab list. Values outside this list are rejected (422)",
      "default": "all"
    },
    "sort": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        }
      ],
      "title": "Sort",
      "description": "排序（结果页「排序」下拉，综合与各垂类通用）：不限(相关性) default/0 / 最新(发布时间降序) latest/1 / 最热(点赞降序) hot/2，字符串键或整数均可/Sort (result page 'sort' dropdown, common to all verticals): default/0 (relevance) / latest/1 (newest) / hot/2 (most liked); string key or integer",
      "default": "default"
    },
    "publish_time": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        }
      ],
      "title": "Publish Time",
      "description": "发布时间（结果页「时间」下拉，通用）：不限 all/0 / 最近一天 day/1 / 最近七天 week/2 / 最近半年 half_year/3，字符串键或整数均可/Publish time (result page 'time' dropdown, common): all/0 / day/1 / week/2 / half_year/3; string key or integer",
      "default": "all"
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "title": "Offset",
      "description": "首页传 0；翻页请用 cursor（只传 offset 无效，每页都回到第一页）/Pass 0 for the first page; use cursor to paginate (offset alone does not work — it returns the first page every time)",
      "default": 0
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Cursor",
      "description": "翻页游标：首页留空；翻页时把上一页响应返回的 cursor 原样传回/Pagination cursor: leave empty for the first page; for the next page pass back the cursor returned in the previous response"
    },
    "raw": {
      "type": "boolean",
      "title": "Raw",
      "description": "True=原始搜索响应；False=精简解析结构/True=raw search response; False=simplified parsed structure",
      "default": true
    }
  },
  "required": [
    "keyword"
  ],
  "additionalProperties": false
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "tikhub/wechat-search-v2-fetch-search",
  "input": {
    "keyword": "人民日报",
    "business_type": "account",
    "sort": "hot",
    "publish_time": "week",
    "offset": 0,
    "raw": true
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[Provider documentation](https://api.tikhub.io/#/WeChat-Search-V2-API/fetch_search_api_v1_wechat_search_v2_fetch_search_post)

[REST inspection](https://api.agentik.cc/v1/tools/tikhub/wechat-search-v2-fetch-search) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/tikhub/wechat-search-v2-fetch-search) · [Agent index](/llms.txt)
