
One call searches tweets for the query (we sent search_type Top). One item in timeline[] is a tweet with its media, counts and author profile. Our call held 20 tweets (3 shown plus '… 17 more'). Pass next_cursor as the cursor parameter for the next page.
2 live routes on X, from $0.00009 per call. Every route below answered our last live test on 2026-10-06; the gateway re-tests them daily.
The upstream price you are metered at, cheapest first. A route without a published price says so.
| Provider | Endpoint | Price |
|---|---|---|
twitter-api45RapidAPI listing | SearchCHEAPESTGET search.php | $0.00009$0.09 / 1k calls |
twitter-api47RapidAPI listing | SearchGET v3/search | $0.00019$0.19 / 1k calls |
From a real call to the cheapest route: twitter-api45.
timeline[].tweet_idtweet idtimeline[].texttweet texttimeline[].created_atpost timetimeline[].screen_nameauthor handletimeline[].favoriteslike counttimeline[].retweetsretweet counttimeline[].repliesreply counttimeline[].viewsview count (string)timeline[].user_info.rest_idauthor user idtimeline[].user_info.followers_countauthor follower counttimeline[].mediaattached photo or videotimeline[].conversation_idid of the conversation rootnext_cursorcursor for the next pagePaging (twitter-api45): read `next_cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats; keep the same `search_type` (Top|Latest) on every page, a cursor belongs to its own sort. From MCP: call_endpoint("rapidapi-twitter-api45.search", params, pages=3) follows it for you.
Paging (twitter-api47): read `pagination.nextCursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats; keep the same `type` (Top|Latest|People|Photos|Videos) on every page, a cursor belongs to its own sort. From MCP: call_endpoint("rapidapi-twitter-api47.search", params, pages=3) follows it for you.
HTTP with your key in x-api-key, or the call_endpoint tool of our MCP server.
| Parameter | Type | Notes | |
|---|---|---|---|
| cursor | string · query | optional | |
| search_type | string · query | optional | one of Top, Latest, Media, People, Listse.g. Top |
| query | string · query | required | default cybertruck |
curl "https://fetchapi.co/api/gw/rapidapi-twitter-api45/search.php?query=cybertruck&search_type=Top" \ -H "x-api-key: YOUR_KEY"
call_endpoint("rapidapi-twitter-api45.search", {"query": "cybertruck", "search_type": "Top"}){
"status": "ok",
"timeline": [
{
"lang": "en",
"text": "2027 TESLA Cybertruck Pickup Is Here. Rate this ride 1–10! https://t.co/m4QJEi61hw",
"type": "tweet",
"media": {
"video": [
{
"id": "2105626489479688192",
"duration": 6041,
"variants": [
"…",
"… 2 more"
],
"aspect_ratio": [
"…",
"… 1 more"
],
"original_info": {
"width": "…",
"height": "…",
"focus_rects": "…"
},
"media_url_https": "https://pbs.twimg.com/amplify_video_thumb/2105626489479688192/img/NjQnbutN3R_la8Rz.jpg"
}
]
},
"views": "593519",
"quotes": 100,
"source": null,
"replies": 915,
"entities": {
"urls": [],
"media": [
{
"url": "https://t.co/m4QJEi61hw",
"type": "video",
"sizes": {
"large": "…",
"small": "…",
"thumb": "…",
"medium": "…"
},
"id_str": "2105626489479688192",
"indices": [
"…",
"… 1 more"
],
"media_key": "13_2105626489479688192",
"video_info": {
"variants": "…",
"aspect_ratio": "…",
"duration_millis": "…"
},
"display_url": "pic.x.com/m4QJEi61hw",
"expanded_url": "https://x.com/teslacarsonly/status/2105626527161528331/video/1",
"grok_post_id": "ca5680ac-559f-42ad-b025-1d08f9876905",
"media_results": {
"result": "…"
},
"original_info": {
"width": "…",
"height": "…",
"focus_rects": "…"
},
"media_url_https": "https://pbs.twimg.com/amplify_video_thumb/2105626489479688192/img/NjQnbutN3R_la8Rz.jpg",
"additional_media_info": {
"monetizable": "…"
},
"…": "1 more fields"
}
],
"symbols": [],
"hashtags": [],
"timestamps": [],
"user_mentions": []
},
"retweets": 503,
"tweet_id": "2105626527161528331",
"bookmarks": 340,
"favorites": 4770,
"sensitive": false,
"…": "5 more fields"
},
"… 3 more"
],
"next_cursor": "DAACCgACHTulzhYAJxAKAAMdO6XOFf_Y8AgABAAAAAILAAUAAADwRW1QQzZ3QUFBZlEvZ0dKTjB2R3AvQUFBQUJRZE1yL2orMXZR…",
"prev_cursor": "DAACCgACHTulzhYAJxAKAAMdO6XOFf_Y8AgABAAAAAELAAUAAADwRW1QQzZ3QUFBZlEvZ0dKTjB2R3AvQUFBQUJRZE1yL2orMXZR…"
}| Parameter | Type | Notes | |
|---|---|---|---|
| type | string · query | required | Required by the API (it answers 400 without it): Top or Latest. · one of Top, Latest, People, Photos, Videos · default Top |
| cursor | string · query | optional | |
| query | string · query | required | default spacex |
curl "https://fetchapi.co/api/gw/rapidapi-twitter-api47/v3/search?type=Top&query=spacex" \ -H "x-api-key: YOUR_KEY"
call_endpoint("rapidapi-twitter-api47.search", {"type": "Top", "query": "spacex"})Call it over HTTP or from any MCP client. Each key has a rate limit and a monthly cap; calls are metered at the upstream price.