xdataapi.io

X data for agents.
Up when others are down.

Read-only API for public X (Twitter) profiles, tweets, threads and search. One credit per tweet or profile. Credits never expire. No per-call minimum. Empty results and failed requests are free.

Numbers, not a badge

A probe outside our network calls the public API once a minute, and a canary calls X. Both are on the status page, per endpoint, with 30 days of history. Every incident is published with cause and duration.

Credits that do not punish

No per-call minimum. Empty result: free. Failed request: free. Cache hit: half price. Credits never expire, and the balance stops at zero, never below.

Built for agents

One flat Tweet and one flat User object that do not change when X changes. OpenAPI document, a hosted MCP server and batch reads of 100 objects per call, TypeScript and Python SDKs. Cursor pagination everywhere.

One request, your way

The same search from a shell, from the TypeScript or Python SDK, or as a tool an agent calls over MCP. Same object, same price, whichever way you ask.

curl "https://api.xdataapi.io/v1/tweets/search?q=from%3Ax%20since%3A2026-09-01" \
  -H "x-api-key: xd_live_your_key_here"
response, the same on every route
{
  "data": [
    { "id": "1968...", "text": "...", "author": { "handle": "X" }, "likes": 1204 }
    // 19 more tweets
  ],
  "next_cursor": "DAABCgABG...",
  "items": 20,
  "credits_charged": 20,     // 1 credit per tweet
  "balance_remaining": 4980,
  "cache": "miss",           // a hit costs half
  "request_id": "3d4f3d1c-..."
}

Status

Live from a probe outside our network that calls the public API every minute. Updated every minute.

All systems operational
99.97% of 10,413 outside checks succeeded in 7 days.X upstream 99.99%.Per endpoint, 30 days, incidents

Pricing

Buy a pack, use it at any pace. All packs land in one balance.

PackPriceCreditsEffective
Free$05,000once, no card
Starter$1080,000$0.125 per 1k
Builder$50500,000$0.100 per 1k
Growth$2002,500,000$0.080 per 1k
Scale$60010,000,000$0.060 per 1k

Rate limit: 20 requests per second from your first pack, up to 200. Enterprise from $2,000 with invoice billing and an SLA. Details in the docs.

Questions

What is xdataapi.io?

A read-only HTTP API for public X (Twitter) data: profiles, tweets, threads, search, followers. One credit per tweet or profile, from $0.06 per 1,000, and 5,000 credits free. You need one API key from the dashboard, not an X developer account and not X credentials. Not affiliated with X Corp.

How does the price compare to the official X API?

The official pay-per-usage tier charges $0.005 per tweet read and $0.010 per profile or follower read, with a cap of 3 million tweet reads a month. On our Growth pack a tweet or profile costs $0.00008 and a follower $0.000008. One million tweets: $5,000 there, $80 here. No monthly cap.

What can I read?

Public profiles, tweets, threads, replies, quotes, retweeters, followers, follower ids, following and search with the same operators as x.com. Everything is read-only. Protected accounts and deleted tweets are not available.

How fresh is the data?

Each request goes to X, unless the same object was read a moment ago. Profiles stay in cache for 10 minutes, tweets for 5, timelines and threads for 2, search for 1, follower lists for 60. A cache hit costs half. Add fresh=true to skip the cache at double price.

What does one request cost?

One credit per tweet or profile returned. Retweeters cost 0.5 per profile, followers and following 0.1, a follower id 0.02. Empty results and failed requests cost nothing. There is no per-call minimum. Credits never expire.

Is there a subscription or a monthly cap?

Neither. You buy a pack when you need one, and all packs land in one balance. Spend is limited to the packs you buy: at zero the API answers 402 with a link to buy more, and there is never an invoice for overage. Your rate limit follows the total you have paid and only goes up: 20 requests per second from the first pack, 200 from $600.

Can I get a refund?

Yes. Unused credits from a pack bought in the last 14 days are refunded on request. Send the request to hello@xdataapi.io.

How do I use it from an agent?

Connect the hosted MCP server at api.xdataapi.io/mcp with your key, or use the OpenAPI document and the TypeScript and Python SDKs. Every tool call is one REST request at the same price.

Can I move from the official X API?

Yes. Send an API key header instead of OAuth. Every endpoint returns one flat Tweet or one flat User object instead of X expansions, so you map the fields once; the TypeScript and Python SDKs carry the types. Posting and direct messages are not available.

What happens when X is down or changes?

Failed requests cost nothing. The Tweet and User objects stay the same when X changes its side. The status page shows every endpoint per minute. For each full hour under 99.9% success, customers who had a failed request in that hour get 2% of their last pack back.

How is the API versioned?

Every path carries its major version: /v1/users/by-handle. Inside v1 we only add. A breaking change opens /v2 and v1 keeps answering for at least 12 months, announced by Deprecation and Sunset headers on every v1 response and on the status page. See xdataapi.io/docs/versioning.