xdataapi: X (Twitter) data
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Read-only public X (Twitter) data: profiles, tweets, threads, followers, search. Pay per result.
| Author | io.xdataapi |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 337 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"xdataapi: X (Twitter) data": {
"url": "https://api.xdataapi.io/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (14)
get_userread-onlyProfile of one X user by handle. 1 credit.
Parameters:
handle(required) — string — Handle, with or without @fresh— boolean — Bypass the cache. Costs 2x credits.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_usersread-onlyProfiles of up to 100 X users by handle in one call. 1 credit per profile found.
Parameters:
handles(required) — arrayfresh— boolean — Bypass the cache. Costs 2x credits.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_user_tweetsread-onlyLatest tweets of a user, newest first. 1 credit per tweet.
Parameters:
user(required) — string — Handle (with or without @) or numeric user idcount— integer — Page size, 1 to 100fresh— boolean — Bypass the cache. Costs 2x credits.cursor— string — next_cursor from the previous page
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_followersread-onlyFollowers of a user. 0.1 credit per profile. Not every account tier can read this; a 403 is free.
Parameters:
user(required) — string — Handle (with or without @) or numeric user idcount— integerfresh— boolean — Bypass the cache. Costs 2x credits.cursor— string — next_cursor from the previous page
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_follower_idsread-onlyNumeric ids of the followers of a user, no profiles. 0.02 credit per id. Same page as get_followers, so a page read there is a cache hit here. A 403 is free.
Parameters:
user(required) — string — Handle (with or without @) or numeric user idcount— integerfresh— boolean — Bypass the cache. Costs 2x credits.cursor— string — next_cursor from the previous page
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_followingread-onlyAccounts a user follows. 0.1 credit per profile. Not every account tier can read this; a 403 is free.
Parameters:
user(required) — string — Handle (with or without @) or numeric user idcount— integerfresh— boolean — Bypass the cache. Costs 2x credits.cursor— string — next_cursor from the previous page
Hints: read-only yes · destructive no · idempotent yes · open-world yes
search_tweetsread-onlyX advanced search. q takes the x.com operators. 1 credit per tweet or profile. product Latest is always available; Top may answer 403 (free).
Parameters:
q(required) — string — Query with x.com operators, e.g. "from:x since:2026-09-01 -filter:replies"count— integerfresh— boolean — Bypass the cache. Costs 2x credits.cursor— string — next_cursor from the previous pageproduct— string — Default Latest. People returns profiles.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_tweetread-onlyOne tweet by numeric id, with its author. 1 credit.
Parameters:
id(required) — stringfresh— boolean — Bypass the cache. Costs 2x credits.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_tweetsread-onlyUp to 100 tweets by numeric id in one call. 1 credit per tweet found.
Parameters:
ids(required) — arrayfresh— boolean — Bypass the cache. Costs 2x credits.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_threadread-onlyA tweet with its thread and replies; the focal tweet comes first. 1 credit per tweet returned.
Parameters:
id(required) — stringfresh— boolean — Bypass the cache. Costs 2x credits.cursor— string — next_cursor from the previous page
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_repliesread-onlyDirect replies to a tweet, one page. 1 credit per reply.
Parameters:
id(required) — stringfresh— boolean — Bypass the cache. Costs 2x credits.cursor— string — next_cursor from the previous page
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_quotesread-onlyTweets that quote a tweet, newest first. 1 credit per tweet.
Parameters:
id(required) — stringcount— integerfresh— boolean — Bypass the cache. Costs 2x credits.cursor— string — next_cursor from the previous page
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_retweetersread-onlyAccounts that retweeted a tweet. 0.5 credit per profile. Not every account tier can read this; a 403 is free.
Parameters:
id(required) — stringcount— integerfresh— boolean — Bypass the cache. Costs 2x credits.cursor— string — next_cursor from the previous page
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_balanceread-onlyCredits left on this key and its rate limit. Free.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.