X / Twitter Search Timeline (Live Posts by Keyword)
omnial/twitter-web-fetch-search-timeline
Given a search keyword, returns a ranked timeline of matching public X (Twitter) posts: post text, engagement counts (likes, reposts, replies, quotes, views, bookmarks), the posting account's public profile, any video attached, and any quoted post. X search operators (e.g. `within_time:1d`) work inside the keyword to constrain recency.
Price
Up to $0.00205 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 $0.50.
Data source
Data from X (Twitter).
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.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/twitter-web-fetch-search-timeline" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/twitter-web-fetch-search-timeline" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/twitter-web-fetch-search-timeline", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/twitter-web-fetch-search-timeline", 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.00205 |
- Updated
- Oct 25, 2026
Input and output schemas
Input schema
{
"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
}Output schema
{
"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."
},
"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 data source'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.",
"additionalProperties": true
}