Contract
{
"type": "object",
"required": [
"keyword"
],
"properties": {
"cursor": {
"type": "integer",
"default": 0,
"description": "偏移游标,用于翻页,从上一次请求返回的响应中获取 / Offset cursor for pagination, obtained from the last response"
},
"keyword": {
"type": "string",
"description": "关键词 / Keyword"
},
"backtrace": {
"type": "string",
"default": "",
"description": "翻页回溯标识,用于翻页,从上一次请求返回的响应中获取 / Backtrace for pagination, obtained from the last response"
},
"search_id": {
"type": "string",
"default": "",
"description": "搜索ID,用于翻页,从上一次请求返回的响应中获取 / Search ID for pagination, obtained from the last response"
},
"sort_type": {
"type": "string",
"default": "0",
"description": "排序方式:0=综合排序 1=最多点赞 2=最新发布 / Sort type: 0=Comprehensive, 1=Most Likes, 2=Latest"
},
"content_type": {
"type": "string",
"default": "0",
"description": "内容类型:0=不限 1=视频 2=图片 3=文章 / Content type: 0=All, 1=Video, 2=Picture, 3=Article"
},
"publish_time": {
"type": "string",
"default": "0",
"description": "发布时间筛选:0=不限 1=最近一天 7=最近一周 180=最近半年 / Publish time filter: 0=Unlimited, 1=Last day, 7=Last week, 180=Last half year"
},
"filter_duration": {
"type": "string",
"default": "0",
"description": "视频时长过滤:0=不限 0-1=一分钟以内 1-5=一到五分钟 5-10000=五分钟以上 / Video duration filter: 0=Unlimited, 0-1=Within 1 minute, 1-5=1 to 5 minutes, 5-10000=More than 5 minutes"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"cursor": {
"type": "number",
"description": "Pass back as `cursor` to fetch the next page."
},
"has_more": {
"type": "number",
"description": "1 when more results remain for this keyword/filter combination, else 0."
},
"is_match": {
"type": "boolean",
"description": "Whether the search keyword had an exact hashtag match, observed false on both calibrated searches."
},
"status_code": {
"type": "number",
"description": "0 on a normal, successful search."
},
"challenge_list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"challenge_info": {
"type": "object",
"properties": {
"cid": {
"type": "string",
"description": "The hashtag's numeric id, as a string."
},
"tag": {
"type": "number",
"description": "Additional tag classification code, 0 on every hashtag observed."
},
"desc": {
"type": "string",
"description": "The hashtag's own description. Empty string on every hashtag observed."
},
"type": {
"type": "number",
"description": "Hashtag type code, e.g. 0 or 1 on the hashtags observed."
},
"cha_name": {
"type": "string",
"description": "The hashtag's display text (without the # sign)."
},
"sub_type": {
"type": "number",
"description": "Hashtag sub-type code, 0 on every hashtag observed."
},
"extra_attr": {
"type": "object",
"properties": {
"is_live": {
"type": "boolean",
"description": "Whether a live stream is currently associated with this hashtag."
}
},
"additionalProperties": true
},
"is_pgcshow": {
"type": "boolean",
"description": "Whether this hashtag is tied to professionally-produced show content."
},
"share_info": {
"type": "object",
"properties": {
"share_url": {
"type": [
"string",
"null"
],
"description": "The hashtag's own public share link. Value withheld (stripped to `null`) in this tool's output -- only whether the field is populated is observable, not the link itself."
},
"share_desc": {
"type": "string"
},
"share_quote": {
"type": "string"
},
"share_title": {
"type": "string"
},
"bool_persist": {
"type": "number"
},
"share_desc_info": {
"type": "string"
},
"share_weibo_desc": {
"type": "string"
},
"share_title_other": {
"type": "string"
},
"share_title_myself": {
"type": "string"
},
"share_signature_url": {
"type": "string",
"description": "Empty string on every hashtag observed."
},
"share_signature_desc": {
"type": "string"
}
},
"description": "Pre-built public share captions for this hashtag.",
"additionalProperties": true
},
"user_count": {
"type": "number",
"description": "Total number of posts tagged with this hashtag."
},
"view_count": {
"type": "number",
"description": "Total view count across all posts tagged with this hashtag."
},
"is_commerce": {
"type": "boolean",
"description": "Whether this hashtag is tied to commerce/shopping features."
},
"collect_stat": {
"type": "number",
"description": "A bookmark/collect counter, 0 on every hashtag observed."
},
"is_challenge": {
"type": "number",
"description": "1 when this is a formal branded challenge, 0 for a plain hashtag."
},
"publish_type": {
"type": "number",
"description": "Publishing permission code for this hashtag, 1 on every hashtag observed."
},
"connect_music": {
"type": "array",
"items": {},
"description": "Music tracks associated with this hashtag. Empty on both calibrated searches; item shape unconfirmed."
},
"vertical_type": {
"type": "number",
"description": "Vertical/category code for the hashtag's associated content. Rarely present -- only one of dozens of hashtags across both calibrated searches carried it."
},
"hashtag_profile": {
"type": [
"string",
"null"
],
"description": "The hashtag's own cover image URL. Value withheld (stripped to `null`) in this tool's output -- only whether the field is populated is observable, not the image itself."
},
"challenge_status": {
"type": "number",
"description": "1 (active) on every hashtag observed."
},
"related_media_source": {
"type": "object",
"properties": {
"cover": {
"type": "object",
"properties": {
"url_list": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
},
"description": "The linked media's cover image URLs. Values withheld (stripped to `null`) in this tool's output -- only whether the field is populated is observable, not the images themselves."
}
},
"additionalProperties": true
},
"title": {
"type": "string"
},
"rating": {
"type": "number"
},
"duration": {
"type": "number"
},
"media_tag": {
"type": "string",
"description": "Empty string on the one instance observed."
},
"compass_id": {
"type": "number",
"description": "The linked media's own internal id."
},
"media_name": {
"type": "string"
},
"media_type": {
"type": "number"
},
"seqs_count": {
"type": "number",
"description": "Number of episodes/segments."
},
"release_date": {
"type": "string"
},
"rating_status": {
"type": "number"
},
"classification": {
"type": "array",
"items": {
"type": "string"
},
"description": "Genre labels, e.g. [\"动画\", \"青春\"] on the one instance observed."
}
},
"description": "A linked show/film the platform associates with this hashtag, when one exists -- observed on only one of dozens of hashtags across both calibrated searches.",
"additionalProperties": true
}
},
"description": "The hashtag/challenge's own detail record.",
"additionalProperties": true
}
},
"additionalProperties": true
},
"description": "One entry per matched hashtag/challenge."
},
"keyword_disabled": {
"type": "number",
"description": "1 when the platform has disabled/blocked this keyword, else 0."
}
},
"description": "The hashtag/challenge search result, as returned at routing.responseResultPath ($.output).",
"additionalProperties": true
}Pricing
Every real charge, itemised. A model that quietly omits one is a slow financial leak, so nothing here is rolled up, and a charge that only applies to some inputs says so rather than being added in.
Prices in this catalog are the provider's own list price, not your bill: Omnial MCP charges provider cost plus a platform markup on top, so what you are charged is higher than the figure shown. For the exact amount a specific call will cost, run omnial_execute with dry_run: true; that number includes the markup and is what we hold while the call runs. It is a quote, not a cap on the charge.
| Charge | Rate |
|---|---|
Per call Flat, regardless of what comes back | $0.020475 |
- Cost basis
- Not recorded
This tool's catalog entry does not record how its final bill is determined, so we will not tell you whether its cost is fixed before the call or reported by the provider afterwards. Either way what is held is a quote rather than a cap: you are charged what the call actually costs, bounded at 2x the quote.
- Updated
- Sep 15, 2026
