Douyin Posts Whose Comments Match a Keyword (First Page, Default Order, No Filters)
omnial/douyin-discussion-search
Given a keyword, returns the first page of Douyin's comment-discussion search, in the default order with no filters: the posts whose comments matched the keyword, each with its id, caption (links removed), publish time, post type, duration, play, like, comment, share and collect counts, hashtags, and its poster's user id, sec_uid, short id, handle, nickname and verification label, plus the number of result cards. The matching comments themselves are not returned.
Price
Up to $0.0205 per call; you pay what the call used
The price shown is the price you pay. No monthly minimum. Top-ups start at $5.
Data source
Douyin
Data from Douyin.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/douyin-discussion-search" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/douyin-discussion-search" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/douyin-discussion-search", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/douyin-discussion-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 17, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"keyword",
"cursor",
"sort_type",
"content_type",
"publish_time",
"filter_duration",
"backtrace",
"search_id"
],
"properties": {
"cursor": {
"enum": [
0
],
"type": "integer",
"default": 0,
"description": "Result offset. Only 0, the first page, is offered."
},
"keyword": {
"type": "string",
"minLength": 1,
"description": "The word or phrase to look for in comments, in any language Douyin carries."
},
"backtrace": {
"enum": [
""
],
"type": "string",
"default": "",
"description": "Paging token. Only the empty value (first page) is offered."
},
"search_id": {
"enum": [
""
],
"type": "string",
"default": "",
"description": "Paging search id. Only the empty value (first page) is offered."
},
"sort_type": {
"enum": [
"0"
],
"type": "string",
"default": "0",
"description": "Sort order: 0, the default comprehensive order. The only value offered."
},
"content_type": {
"enum": [
"0"
],
"type": "string",
"default": "0",
"description": "Content filter: 0, all content types. The only value offered."
},
"publish_time": {
"enum": [
"0"
],
"type": "string",
"default": "0",
"description": "Publish-time filter: 0, any time. The only value offered."
},
"filter_duration": {
"enum": [
"0"
],
"type": "string",
"default": "0",
"description": "Video-length filter: 0, any length. The only value offered."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"status_code": {
"type": "number",
"description": "0 on success."
},
"business_data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"aweme_list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"desc": {
"type": [
"string",
"null"
],
"description": "The caption, with its hashtags; links removed."
},
"author": {
"type": "object",
"properties": {
"uid": {
"type": "string",
"description": "The poster's numeric user id."
},
"sec_uid": {
"type": "string",
"description": "The poster's sec_uid, the id a profile lookup takes."
},
"nickname": {
"type": "string",
"description": "The poster's display name."
},
"short_id": {
"type": "string",
"description": "The poster's short numeric id."
},
"unique_id": {
"type": "string",
"description": "The poster's Douyin handle; can be empty."
},
"custom_verify": {
"type": "string",
"description": "The poster's verification label; empty when none."
},
"enterprise_verify_reason": {
"type": "string",
"description": "The poster's business verification label; empty when none."
}
},
"description": "The poster's public identity."
},
"aweme_id": {
"type": "string",
"description": "The post's id."
},
"duration": {
"type": "number",
"description": "Video length in milliseconds; 0 for an image post."
},
"aweme_type": {
"type": "number",
"description": "Douyin's post type code: 0 for a video, 68 for an image post."
},
"statistics": {
"type": "object",
"properties": {
"digg_count": {
"type": "number",
"description": "Likes."
},
"play_count": {
"type": "number",
"description": "Plays."
},
"share_count": {
"type": "number",
"description": "Shares."
},
"collect_count": {
"type": "number",
"description": "Saves (collects)."
},
"comment_count": {
"type": "number",
"description": "Comments."
}
}
},
"text_extra": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hashtag_id": {
"type": "string",
"description": "The hashtag's id."
},
"hashtag_name": {
"type": "string",
"description": "The hashtag, without #."
}
}
},
"description": "The hashtags in the caption; an entry for another kind of caption markup is empty."
},
"create_time": {
"type": "number",
"description": "When the post was published, in Unix seconds."
}
}
},
"description": "The post the matching comment was left on (one per card)."
}
}
}
}
},
"description": "One result card per matching comment, in Douyin's order."
},
"business_config": {
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description": "The keyword the page was returned for."
},
"card_count": {
"type": "number",
"description": "Number of result cards on the page."
}
}
}
},
"description": "The first page of matching posts, as returned after shaping."
}