Contract
{
"type": "object",
"required": [
"sec_user_id"
],
"properties": {
"count": {
"type": "integer",
"default": 20,
"description": "Number per page"
},
"channel": {
"type": "string",
"default": "normal",
"description": "抖音渠道版本/Douyin channel: normal(正常版-默认), lite(极速版)"
},
"sort_type": {
"type": "integer",
"default": 0,
"description": "Sort type"
},
"max_cursor": {
"type": "integer",
"default": 0,
"description": "Maximum cursor"
},
"sec_user_id": {
"type": "string",
"examples": [
"MS4wLjABAAAANXSltcLCzDGmdNFI2Q_QixVTr67NiYzjKOIP5s03CAE"
],
"description": "User sec_user_id"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"uid": {
"type": "string",
"description": "The queried user's own numeric id, echoed back."
},
"sec_uid": {
"type": "string",
"description": "The queried sec_user_id, echoed back."
},
"has_more": {
"type": "number",
"description": "Non-zero when a further page exists at the returned max_cursor."
},
"aweme_list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"desc": {
"type": "string",
"description": "The video's caption text."
},
"music": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"title": {
"type": "string"
},
"author": {
"type": "string",
"description": "The credited artist/creator name for this sound."
},
"id_str": {
"type": "string"
},
"duration": {
"type": "number",
"description": "Seconds."
},
"play_url": {
"type": "object",
"properties": {
"url_list": {
"type": [
"array",
"null"
],
"description": "Withheld -- only whether a playable URL exists is observable."
}
},
"description": "The sound's own playable URL. Value withheld (stripped to `null`) in this tool's output.",
"additionalProperties": true
},
"is_original": {
"type": "boolean"
}
},
"description": "The sound/music used in this video.",
"additionalProperties": true
},
"video": {
"type": "object",
"properties": {
"cover": {
"type": "object",
"properties": {
"url_list": {
"type": [
"array",
"null"
],
"description": "Withheld -- only whether a cover exists is observable."
}
},
"description": "The video's cover thumbnail. Value withheld (stripped to `null`) in this tool's output.",
"additionalProperties": true
},
"ratio": {
"type": "string",
"description": "e.g. \"default\"."
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"duration": {
"type": "number",
"description": "Milliseconds. Matches the top-level `duration`."
},
"play_addr": {
"type": "object",
"properties": {
"url_list": {
"type": [
"array",
"null"
],
"description": "Withheld -- only whether a playable URL exists is observable."
}
},
"description": "The playable video URL. Value withheld (stripped to `null`) in this tool's output.",
"additionalProperties": true
},
"has_watermark": {
"type": "boolean"
}
},
"description": "The video file's own technical shape.",
"additionalProperties": true
},
"author": {
"type": "object",
"properties": {
"uid": {
"type": "string"
},
"region": {
"type": "string"
},
"sec_uid": {
"type": "string"
},
"nickname": {
"type": "string",
"description": "The user's own display name."
},
"short_id": {
"type": "string"
},
"signature": {
"type": "string",
"description": "The user's own bio text."
},
"unique_id": {
"type": "string",
"description": "The user's own @handle. Can be an empty string when unset."
},
"is_verified": {
"type": "boolean"
},
"avatar_thumb": {
"type": "object",
"properties": {
"url_list": {
"type": [
"array",
"null"
],
"description": "Withheld -- only whether an avatar is set is observable."
}
},
"description": "The user's own avatar. Value withheld (stripped to `null`) in this tool's output.",
"additionalProperties": true
},
"custom_verify": {
"type": "string",
"description": "Verification label text. Empty string when not verified."
},
"verification_type": {
"type": "number"
},
"enterprise_verify_reason": {
"type": "string",
"description": "Business verification label text. Empty string when not set."
}
},
"description": "The queried user's own public profile fields, repeated on every video in the feed.",
"additionalProperties": true
},
"region": {
"type": "string",
"description": "Two-letter-style region code, e.g. \"CN\"."
},
"aweme_id": {
"type": "string",
"description": "The video's own id."
},
"cha_list": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"properties": {
"cid": {
"type": "string",
"description": "The hashtag's own id."
},
"cha_name": {
"type": "string",
"description": "The hashtag's own text, e.g. \"le\"."
}
},
"additionalProperties": true
},
"description": "Hashtags ('challenges') attached to this video, when any; `null` when none."
},
"duration": {
"type": "number",
"description": "Milliseconds."
},
"video_tag": {
"type": "array",
"items": {
"type": "object",
"properties": {
"level": {
"type": "number",
"description": "Tag hierarchy depth, e.g. 1-3."
},
"tag_id": {
"type": "number"
},
"tag_name": {
"type": "string"
}
},
"additionalProperties": true
},
"description": "Platform-assigned topic tags for this video, when any."
},
"item_title": {
"type": "string",
"description": "A separate short title field, observed as an empty string on every video calibrated."
},
"statistics": {
"type": "object",
"properties": {
"digg_count": {
"type": "number",
"description": "Likes."
},
"play_count": {
"type": "number",
"description": "Observed as 0 on every video calibrated."
},
"share_count": {
"type": "number"
},
"collect_count": {
"type": "number"
},
"comment_count": {
"type": "number"
},
"forward_count": {
"type": "number"
},
"download_count": {
"type": "number"
}
},
"description": "Engagement counters for this video.",
"additionalProperties": true
},
"text_extra": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"properties": {
"end": {
"type": "number"
},
"type": {
"type": "number"
},
"start": {
"type": "number",
"description": "Character offset into `desc`."
},
"hashtag_id": {
"type": "string"
},
"hashtag_name": {
"type": "string",
"description": "The mentioned hashtag's own text."
}
},
"additionalProperties": true
},
"description": "Hashtag mentions parsed out of `desc`'s own text, when any; `null` when none."
},
"create_time": {
"type": "number",
"description": "Unix seconds."
}
},
"additionalProperties": true
},
"description": "One entry per posted video on this page. Empty when the user has none."
},
"max_cursor": {
"type": "number",
"description": "Pass this back as the `max_cursor` input to fetch the next page."
},
"min_cursor": {
"type": "number",
"description": "The newest video's own cursor position."
},
"status_msg": {
"type": "string",
"description": "Empty string on a normal call."
},
"status_code": {
"type": "number",
"description": "0 on a normal call."
}
},
"description": "A page of a Douyin user's posted videos, as returned at routing.responseResultPath. `aweme_list` is an empty array (with the other top-level fields still populated) when the given `sec_user_id` does not resolve to a real account -- confirmed against the `nonexistent-user` fixture, which still billed the normal per-call price.",
"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.0020475 |
- 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 23, 2026
