WeChat Channels Live Stream Detail (by Live ID)
omnial/wechat-channels-fetch-live-detail
Given a WeChat Channels live_id, returns that live stream's status, timing, and engagement metrics (current/peak viewer count, likes, forwards, new fans gained, replay availability), plus the streaming anchor's public profile (display name, finder handle, bio, verification status, follower count). When the given live_id does not resolve to a real stream, returns a short message explaining why instead of any live data. The one stream tested had already ended and returned zero for every viewer, like, forward and fan count; no live stream was tested.
Price
Up to $0.0205 per call; you pay what the call used
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.00.
Data source
Data from WeChat Channels.
Use it
Your AI assistant does the work: it finds this tool, shows you the price first, runs it, and you are charged when the run finishes. There is nothing to set up for this tool in particular.
Connect once and your AI can find and run this tool, and any other it needs.
For developers: the calls your assistant makes
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/wechat-channels-fetch-live-detail" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/wechat-channels-fetch-live-detail" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/wechat-channels-fetch-live-detail", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/wechat-channels-fetch-live-detail", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0205 |
- Updated
- Oct 27, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"live_id"
],
"properties": {
"raw": {
"type": "boolean",
"default": true,
"description": "True=原始响应;False=精简解析结构/True=raw response; False=simplified parsed structure"
},
"scene": {
"type": "integer",
"default": 5,
"maximum": 1000,
"minimum": 0,
"description": "进入场景,默认 5/Entry scene, default 5"
},
"live_id": {
"type": "string",
"example": "2078950291205875194",
"pattern": "^[0-9]+$",
"maxLength": 32,
"description": "直播 ID(纯数字)/Live ID (numeric)"
},
"finder_username": {
"anyOf": [
{
"type": "string",
"pattern": "^(v2_[0-9a-fA-F]+@finder)?$",
"maxLength": 256
},
{
"type": "null"
}
],
"default": "",
"example": "v2_060000231003b20faec8cae1811ac4d5c702ea32b0771737aa785454f7f8177114cc4d248d66@finder",
"description": "主播 finder username(可选,提高命中)/Anchor finder username (optional, improves hit rate)"
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Present only on the not-found shape: a short explanation (observed in Chinese) that the live_id/finder_username/object_id given did not match a real stream."
},
"liveInfo": {
"type": "object",
"properties": {
"liveId": {
"type": "number",
"description": "The stream's numeric id. Large WeChat live ids can exceed JavaScript's safe integer range -- the one real value observed (2078950291205875194 as a string input) came back as 2078950291205875200, a precision-rounded number, not an exact round-trip of the id you queried with."
},
"endTime": {
"type": "number",
"description": "Unix seconds."
},
"likeCnt": {
"type": "number"
},
"totalGmv": {
"type": "number",
"description": "Gross merchandise value from the live, in the vendor's own unit; 0 observed for a non-commerce stream."
},
"onlineCnt": {
"type": "number",
"description": "Current viewer count; 0 for an ended stream."
},
"startTime": {
"type": "number",
"description": "Unix seconds."
},
"forwardCnt": {
"type": "number"
},
"liveStatus": {
"type": "number",
"description": "Numeric status code, e.g. 2 observed for a stream that has ended."
},
"newLikeCnt": {
"type": "number"
},
"sourceType": {
"type": "number"
},
"statusDesc": {
"type": "string",
"description": "Observed as an empty string when ended."
},
"replayStatus": {
"type": "number",
"description": "Numeric replay-availability code."
},
"maxOnlineCount": {
"type": "number",
"description": "Peak concurrent viewer count."
},
"liveElapsedTime": {
"type": "number",
"description": "Seconds, observed for an ended stream."
},
"liveBusinessType": {
"type": "number"
},
"participantCount": {
"type": "number"
}
},
"description": "The live stream's own status, timing, and engagement metrics.",
"additionalProperties": true
},
"liveCover": {
"type": "object",
"properties": {
"imgUrl": {
"type": [
"string",
"null"
],
"description": "Live cover image. Value withheld (returned as `null` regardless of what the stream published) -- only whether the field is populated is observable, not the image itself."
}
},
"additionalProperties": true
},
"baseResponse": {
"type": "object",
"properties": {
"ret": {
"type": "number",
"description": "0 observed on the one real populated call."
},
"errMsg": {
"type": [
"string",
"null"
],
"description": "Observed null on the one real populated call."
}
},
"description": "The upstream call's own status envelope.",
"additionalProperties": true
},
"anchorContact": {
"type": "object",
"properties": {
"headUrl": {
"type": [
"string",
"null"
],
"description": "The anchor's avatar image. Withheld, same as `liveCover.imgUrl`."
},
"authInfo": {
"type": "object",
"properties": {
"authIconUrl": {
"type": [
"string",
"null"
],
"description": "The verification badge icon. Withheld, same as `liveCover.imgUrl`."
},
"verifyStatus": {
"type": "number",
"description": "Numeric verification-status code."
},
"authProfession": {
"type": "string",
"description": "The verified business name the account has published as its own auth credential, when verified. Empty string when unverified/not set."
}
},
"additionalProperties": true
},
"nickname": {
"type": "string",
"description": "The anchor's public display name."
},
"username": {
"type": "string",
"description": "The anchor's own public 'finder' handle -- the same value this tool's own `finder_username` input field accepts."
},
"fansCount": {
"type": "number"
},
"signature": {
"type": "string",
"description": "The anchor's public bio text."
},
"liveStatus": {
"type": "number"
}
},
"description": "The streaming anchor's own public profile.",
"additionalProperties": true
},
"liveNewFansNum": {
"type": "number",
"description": "New followers gained during this live."
},
"bizLiveNewFansNum": {
"type": "number"
},
"replaySubscribedCount": {
"type": "number"
}
},
"description": "The live-detail record. Observed as just a short `message` field (no `liveInfo`/`anchorContact`) when the given `live_id` does not resolve to any real stream.",
"additionalProperties": true
}