Douyin Live Stream Search (by Handle or Nickname)
omnial/douyin-search-fetch-live-search
Given a Douyin ID or nickname, returns matching accounts and whether each is currently live: display name, handle, follower count, and (when live) the room's title and status. Cursor-paginated. A keyword with no direct match still returns unrelated real accounts rather than an empty result.
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 Douyin.
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/douyin-search-fetch-live-search" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/douyin-search-fetch-live-search" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/douyin-search-fetch-live-search", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/douyin-search-fetch-live-search", 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": [
"keyword"
],
"properties": {
"cursor": {
"type": "integer",
"default": 0,
"description": "翻页游标,首次请求传 0,之后传上一页响应里的 cursor / Pagination cursor, 0 for the first request, then the cursor from the last response"
},
"keyword": {
"type": "string",
"description": "抖音号 或 抖音昵称 / Douyin ID or nickname"
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"msg": {
"type": "string",
"description": "'success' on every real call observed."
},
"code": {
"type": "number",
"description": "The endpoint's own call-result code. 0 on every real call observed."
},
"data": {
"type": "object",
"properties": {
"cursor": {
"type": "number",
"description": "Pagination cursor for the next page. Pass back as this tool's own `cursor` input to continue paging."
},
"hasMore": {
"type": "boolean"
},
"userList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"avatar": {
"type": [
"string",
"null"
],
"description": "The account's avatar image URL. Value withheld (stripped to `null`) in this tool's output -- only whether an avatar exists is a given, not the image itself."
},
"secUid": {
"type": "string",
"description": "The account's opaque platform-internal id, stable across calls."
},
"shortId": {
"type": "string",
"description": "A shorter numeric account id, distinct from `uniqueId`."
},
"nickname": {
"type": "string",
"description": "The account's own public display name -- the subject a search result surfaces."
},
"uniqueId": {
"type": "string",
"description": "The account's own public Douyin ID/handle -- the same identifier this tool's own `keyword` input searches by."
},
"liveRoomInfo": {
"type": "object",
"properties": {
"LiveRoomInfoExtra": {
"type": "object",
"properties": {
"HasClosedShoppingCart": {
"type": "boolean",
"description": "Whether the live room currently has an active shopping-cart/product-selling feature enabled."
}
},
"additionalProperties": true
},
"LiveRoomInfoDetail": {
"type": "object",
"properties": {
"Title": {
"type": "string",
"description": "The live room's title. Empty string when the account is not currently live."
},
"RoomId": {
"type": "string",
"description": "The live room's id. Observed as the literal string '0' when the account is not currently live."
},
"AnchorNickname": {
"type": "string",
"description": "The same account's own display name, mirrored here by the vendor -- identical to the top-level `nickname` on every account observed."
}
},
"additionalProperties": true
},
"LiveRoomLiveStatus": {
"type": "number",
"description": "1 when the account is currently broadcasting, 0 otherwise -- confirmed against real accounts in both states."
}
},
"description": "The account's current live-room state, present on every account observed regardless of whether it is actually live.",
"additionalProperties": true
},
"followerCount": {
"type": "number"
},
"followerCountStr": {
"type": "string",
"description": "Human-readable abbreviated follower count. Usually an empty string even though `followerCount` was always populated -- do not assume this field is ever non-empty."
}
},
"additionalProperties": true
},
"description": "Matching accounts. Observed non-empty (8-10 entries) on every real call, including a deliberately nonsense keyword -- the endpoint falls back to example/recommended accounts rather than an empty result."
}
},
"additionalProperties": true
}
},
"description": "The search result.",
"additionalProperties": true
}