Contract
{
"type": "object",
"required": [
"keyword"
],
"properties": {
"cursor": {
"type": "string",
"description": "Cursor"
},
"keyword": {
"type": "string",
"examples": [
"Elon Musk"
],
"description": "Search Keyword"
},
"search_type": {
"type": "string",
"default": "Top",
"examples": [
"Top"
],
"description": "Search Type"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"status",
"timeline",
"next_cursor",
"prev_cursor"
],
"properties": {
"status": {
"type": "string",
"description": "'ok' on both real calls observed."
},
"timeline": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"tweet_id",
"screen_name",
"text",
"created_at"
],
"properties": {
"lang": {
"type": "string",
"description": "e.g. 'en', 'es', 'tr' -- BCP-47-ish."
},
"text": {
"type": "string"
},
"type": {
"type": "string",
"description": "'tweet' on every post observed."
},
"media": {
"type": "object",
"properties": {
"video": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"duration": {
"type": "number",
"description": "Milliseconds."
},
"variants": {
"type": "array",
"items": {
"type": "object",
"properties": {
"bitrate": {
"type": "number",
"description": "Bits per second. Absent on the HLS manifest variant (content_type 'application/x-mpegURL'); present on direct mp4 variants."
},
"content_type": {
"type": "string",
"description": "e.g. 'video/mp4' or 'application/x-mpegURL'."
}
},
"additionalProperties": true
},
"description": "Encodings of the same video. The playable URL itself is not included."
},
"aspect_ratio": {
"type": "array",
"items": {
"type": "number"
}
},
"original_info": {
"type": "object",
"properties": {
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"focus_rects": {
"type": "array",
"description": "Observed empty on every video captured."
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
}
},
"description": "Only a `video` array observed; a photo-only or media-free post is unconfirmed.",
"additionalProperties": true
},
"views": {
"type": "string",
"description": "A numeric view count, but returned as a STRING on every post observed."
},
"quoted": {
"type": "object",
"properties": {
"lang": {
"type": "string"
},
"media": {
"type": "array",
"description": "Observed empty on every quoted post captured."
},
"views": {
"type": "string"
},
"author": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"rest_id": {
"type": "string"
},
"created_at": {
"type": "string"
},
"screen_name": {
"type": "string"
},
"blue_verified": {
"type": "boolean"
}
},
"additionalProperties": true
},
"quotes": {
"type": "number"
},
"replies": {
"type": "number"
},
"retweets": {
"type": "number"
},
"tweet_id": {
"type": "string"
},
"bookmarks": {
"type": "number"
},
"favorites": {
"type": "number"
},
"sensitive": {
"type": "boolean"
},
"created_at": {
"type": "string"
},
"conversation_id": {
"type": "string"
}
},
"description": "Present only when this post quotes another post. Every quoted post's own `text` observed was itself a bare t.co link (media-only quote), so it is not included here.",
"additionalProperties": true
},
"quotes": {
"type": "number"
},
"source": {
"type": "string",
"description": "The posting client, as an HTML anchor tag."
},
"replies": {
"type": "number"
},
"entities": {
"type": "object",
"properties": {
"urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"indices": {
"type": "array",
"items": {
"type": "number"
}
},
"display_url": {
"type": "string",
"description": "Human-readable truncated form, e.g. 'vm.tiktok.com/xyz/'."
}
},
"additionalProperties": true
},
"description": "A link mentioned in the post text. The shortened (t.co) and expanded URLs themselves are not included -- see `display_url` for a human-readable form."
},
"symbols": {
"type": "array",
"description": "Cashtags (e.g. $TSLA). Observed empty on every post captured; item shape unconfirmed."
},
"hashtags": {
"type": "array",
"description": "Observed empty on every post captured; item shape unconfirmed."
},
"timestamps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "e.g. '03:17', as written in the post."
},
"indices": {
"type": "array",
"items": {
"type": "number"
}
},
"seconds": {
"type": "number"
}
},
"additionalProperties": true
},
"description": "A clock-time mention inside the post text, when present."
},
"user_mentions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"id_str": {
"type": "string"
},
"indices": {
"type": "array",
"items": {
"type": "number"
}
},
"screen_name": {
"type": "string"
}
},
"additionalProperties": true
},
"description": "An @mention of another public account inside the post text."
}
},
"additionalProperties": true
},
"retweets": {
"type": "number"
},
"tweet_id": {
"type": "string"
},
"bookmarks": {
"type": "number"
},
"favorites": {
"type": "number"
},
"sensitive": {
"type": "boolean"
},
"user_info": {
"type": "object",
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "The account's own self-published external link; observed null on every post captured."
},
"name": {
"type": "string"
},
"rest_id": {
"type": "string"
},
"location": {
"type": "string",
"description": "Free-text profile location the account holder chose to publish; can be a real place, a country, or unrelated text/emoji. Observed as empty string when unset."
},
"verified": {
"type": "boolean"
},
"created_at": {
"type": "string"
},
"cover_image": {
"type": [
"string",
"null"
],
"description": "Stripped (always null). Profile banner image URL; observed null on every post captured."
},
"description": {
"type": [
"string",
"null"
],
"description": "The account's public bio text; observed null on every post captured."
},
"screen_name": {
"type": "string"
},
"friends_count": {
"type": [
"number",
"null"
],
"description": "Observed null on every post captured."
},
"verified_type": {
"type": [
"string",
"null"
],
"description": "Observed null on every post captured."
},
"favorites_count": {
"type": "number"
},
"followers_count": {
"type": "number"
}
},
"additionalProperties": true
},
"created_at": {
"type": "string",
"description": "e.g. 'Sat Sep 05 22:00:38 +0000 2026'."
},
"screen_name": {
"type": "string",
"description": "The posting account's public @handle (without the @)."
},
"conversation_id": {
"type": "string"
},
"display_text_range": {
"type": "array",
"items": {
"type": "number"
},
"description": "[start, end] character offsets into `text`."
}
},
"additionalProperties": true
},
"description": "The matching posts, ranked by engagement. Observed empty ([]) for a nonsense keyword with status still 'ok' -- the upstream vendor's own notes say an empty timeline can also happen intermittently for a keyword that normally matches; a caller should retry once before treating an empty array as a genuine no-results answer."
},
"next_cursor": {
"type": "string"
},
"prev_cursor": {
"type": "string"
}
},
"description": "The search result, as returned at routing.responseResultPath.",
"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 8, 2026
