xdataapi

MCP serverSearch

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

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use xdataapi

From the project's README

As published by andrewchmr/xdataapi in README.md.

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:

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:

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

Stdio-only clients can bridge with mcp-remote:

{
  "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

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:

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:

from xdataapi import AuthenticatedClient
from xdataapi.api.tweets import search_tweets
client = 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)

Both are generated from openapi.yaml. See examples/ for LangChain, CrewAI, and Vercel AI SDK tools.

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

hello@xdataapi.io. Security reports: https://xdataapi.io/.well-known/security.txt

Advanced
Delivery
xdataapi MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
Catalog kind
mcp-server
Gateway key
io-xdataapi-xdataapi
Source
github.com/andrewchmr/xdataapi
Hosted endpoint
https://api.xdataapi.io/mcp