xdataapi: X (Twitter) data

io.xdataapiPublished by xdataapi.ioOfficial publisherv0.3.2Updated Oct 28, 2026

Read-only public X (Twitter) data: profiles, tweets, threads, followers, search. Pay per result.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingData & Analytics

Overview

AI-generated overview

Hosted MCP server for read-only public X (Twitter) data: profiles, tweets, threads, followers and search, billed per result in prepaid credits.

What you can do
  • Look up profiles by handle, singly or up to 100 at a time
  • Read a user's latest tweets, followers, following lists and follower ids
  • Fetch single tweets or batches by id, plus threads, replies, quotes and retweeters
  • Run X advanced search with x.com operators
  • Check remaining credits and rate limit on the key
When to use it
Useful when an assistant needs current public X data — researching accounts, monitoring a topic through search, or pulling a conversation thread — without building your own X API integration. It is read-only, so it suits analysis and research rather than posting or engagement.
Requirements
A remote MCP endpoint over Streamable HTTP; no local runtime needed. Sign-in is by OAuth on first use, or an x-api-key header for clients without OAuth; stdio-only clients can bridge with mcp-remote. A prepaid credit balance is required, since results are charged per tweet or profile returned.
Before you install
Every returned tweet or profile costs credits, so broad searches or large follower pages can spend balance quickly; check the balance tool and cap result counts. Some endpoints (followers, following, retweeters, Top search) may return 403 depending on account tier, which is free. Requests go to a third-party service that is not affiliated with X Corp; only public data is exposed and there are no write endpoints.

Installation

In SourceWeft

  1. Open xdataapi: X (Twitter) data in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.xdataapi%2Fxdataapi/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "xdataapi-x-twitter-data": {
      "type": "http",
      "url": "https://api.xdataapi.io/mcp"
    }
  }
}

README

xdataapi

Read-only public X (Twitter) data for developers and AI agents. Profiles, tweets, timelines, threads, followers, and search with the x.com operators. One credit per tweet or profile returned. Empty results and errors are free.

Not affiliated with X Corp. Public data only. No write endpoints.

MCP

Claude Code, as a plugin — the server plus a skill that teaches the search operators and the cost rules:

bash
claude plugin marketplace add xdataapi/xdataapiclaude plugin install xdataapi@xdataapi

Or the server on its own, in any MCP client:

bash
claude mcp add --transport http xdataapi https://api.xdataapi.io/mcp

The server signs you in with OAuth on first use. Clients without OAuth pass a key instead:

json
{  "mcpServers": {    "xdataapi": {      "url": "https://api.xdataapi.io/mcp",      "headers": { "x-api-key": "xd_live_..." }    }  }}

Stdio-only clients can bridge with mcp-remote:

json
{  "mcpServers": {    "xdataapi": {      "command": "npx",      "args": ["-y", "mcp-remote", "https://api.xdataapi.io/mcp", "--header", "x-api-key:${XDATAAPI_KEY}"],      "env": { "XDATAAPI_KEY": "xd_live_..." }    }  }}

Tools: get_user, get_users, get_user_tweets, get_followers, get_following, get_follower_ids, search_tweets, get_tweet, get_tweets, get_thread, get_replies, get_quotes, get_retweeters, get_balance. All read-only. Listed on the official MCP Registry as io.xdataapi/xdataapi.

REST

bash
curl "https://api.xdataapi.io/v1/tweets/search?q=from:x%20since:2026-09-01&count=20" \  -H "x-api-key: xd_live_..."

Every response carries credits_charged and balance_remaining. Pages return next_cursor; pass it back as cursor.

SDKs

TypeScript, npm install xdataapi:

ts
import { xdataapi } from 'xdataapi';const api = xdataapi({ apiKey: process.env.XDATAAPI_KEY! });const { data } = await api.searchTweets({ query: { q: 'from:x', count: 20 } });

Python, pip install xdataapi:

python
from xdataapi import AuthenticatedClientfrom xdataapi.api.tweets import search_tweetsclient = AuthenticatedClient(base_url="https://api.xdataapi.io", token=KEY, prefix="", auth_header_name="x-api-key")page = search_tweets.sync(client=client, q="from:x", count=20)

The TypeScript client has no runtime dependencies; npm install xdataapi pulls one package.

Both are generated from openapi.yaml by sdk/generate.sh; the source is in sdk/typescript and sdk/python. Nothing in them is hand-written except the small wrapper in sdk/typescript/src/index.ts and the READMEs, so an API change means regenerating rather than editing.

Framework packages

Installable tools for agent frameworks. Each one carries the credit cost in every tool description, so the model can see what a plan costs before it runs it, and each takes a max_results cap so one agent step cannot empty the balance.

PackageInstallSource
LangChain and LangGraphpip install langchain-xdataapipackages/langchain
LlamaIndexpip install llama-index-tools-xdataapipackages/llama-index
n8ncommunity node n8n-nodes-xdataapipackages/n8n
Claude Codeclaude plugin install xdataapi@xdataapiplugins/xdataapi

For anything else, see examples/: CrewAI, the Vercel AI SDK, and the OpenAI Agents SDK. An agent that speaks MCP needs none of them.

Pricing

Prepaid credit packs from $10. Credits never expire. No per-call minimum. Rate limit rises with lifetime spend. Details: https://xdataapi.io/#pricing

Support

[email protected]. Security reports: https://xdataapi.io/.well-known/security.txt

Source: README.md at commit 31f4716

Tools

14

get_user

Profile

Profile of one X user by handle. 1 credit.

Parametersfreshhandlerequired

get_users

Profiles, batch

Profiles of up to 100 X users by handle in one call. 1 credit per profile found.

Parametersfreshhandlesrequired

get_user_tweets

User tweets

Latest tweets of a user, newest first. 1 credit per tweet.

Parametersuserrequiredcountfreshcursor

get_followers

Followers

Followers of a user. 0.1 credit per profile. Not every account tier can read this; a 403 is free.

Parametersuserrequiredcountfreshcursor

get_follower_ids

Follower ids

Numeric 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.

Parametersuserrequiredcountfreshcursor

get_following

Following

Accounts a user follows. 0.1 credit per profile. Not every account tier can read this; a 403 is free.

Parametersuserrequiredcountfreshcursor

search_tweets

Search

X advanced search. q takes the x.com operators. 1 credit per tweet or profile. product Latest is always available; Top may answer 403 (free).

Parametersqrequiredcountfreshcursorproduct

get_tweet

Tweet

One tweet by numeric id, with its author. 1 credit.

Parametersidrequiredfresh

get_tweets

Tweets, batch

Up to 100 tweets by numeric id in one call. 1 credit per tweet found.

Parametersidsrequiredfresh

get_thread

Thread

A tweet with its thread and replies; the focal tweet comes first. 1 credit per tweet returned.

Parametersidrequiredfreshcursor

get_replies

Replies

Direct replies to a tweet, one page. 1 credit per reply.

Parametersidrequiredfreshcursor

get_quotes

Quotes

Tweets that quote a tweet, newest first. 1 credit per tweet.

Parametersidrequiredcountfreshcursor

get_retweeters

Retweeters

Accounts that retweeted a tweet. 0.5 credit per profile. Not every account tier can read this; a 403 is free.

Parametersidrequiredcountfreshcursor

get_balance

Balance

Credits left on this key and its rate limit. Free.

Takes no parameters.

Version history

2
  1. v0.3.2LatestSep 21, 2026
  2. v0.3.1Sep 20, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts