GetXAPI is a pay-per-call X (Twitter) API alternative. One Bearer key, 73 REST endpoints for reading and writing X data, $0.001 per standard call, about $0.05 per 1,000 tweets, no monthly subscription and no X developer account. It is the cheapest Twitter API on published per-tweet price, and it ships an OpenAPI 3.1 spec, an MCP server for AI agents, real-time monitoring with signed webhooks, and a public status page.
If you searched for a Twitter API alternative, an X API alternative, a Twitter scraper API, a free Twitter API to start with, or a way to use the Twitter API without a developer account, this is the repository. It covers what the API does, what it costs at volume, how to migrate from X API v2, and how to call it from curl, Python, Node.js, Go, Rust and any MCP client.
- Website: getxapi.com · Docs: docs.getxapi.com · Pricing: getxapi.com/pricing · Status: getxapi.com/status
- Sign up and get $0.10 in free credit (about 100 calls, no card): getxapi.com/signup
curl -H "Authorization: Bearer YOUR_GETXAPI_KEY" \
"https://api.getxapi.com/twitter/tweet/advanced_search?q=from:elonmusk%20min_faves:500&product=Latest"You get back structured JSON: an array of tweets with author, text, engagement counts and media, plus a cursor for the next page. No HTML parsing, no proxy rotation, no OAuth dance. The same key works for every read endpoint.
The official X API is prepaid pay-per-use and bills per resource returned, not per request. A search that returns 100 posts is billed as 100 Post reads at $0.005 each. It also requires an approved developer account before the first call, and standard access is capped at 3,000,000 Post reads per month.
| GetXAPI | Official X API | |
|---|---|---|
| Billing unit | Per call | Per resource returned |
| Headline rate | $0.001 per standard call, about 20 tweets | $0.005 per Post read, $0.01 per User read |
| Cost per 1,000 tweets | About $0.05 | About $5 |
| Cost per 1,000,000 tweets | About $50 | About $5,000 |
| Developer account | Not required | Required |
| Auth | One Bearer key | OAuth 2.0 PKCE, OAuth 1.0a or app Bearer, depending on endpoint |
| Endpoint-specific quotas | None (general service throttling applies) | Per endpoint, 15-minute and 24-hour windows |
| Monthly read cap | None | 3,000,000 Post reads on standard access |
| Free to start | $0.10 signup credit, no card | No general-audience free tier published |
| Machine-readable spec | OpenAPI 3.1, public | Partial |
| AI agent access | MCP server, npm package | None first-party |
Official figures are from X's public pricing page, docs.x.com/x-api/getting-started/pricing, last re-verified 16 August 2026.
- Sign up at getxapi.com/signup with Google or email.
- Copy the Bearer key from the dashboard. It is created the moment the account exists.
- Send
Authorization: Bearer YOUR_GETXAPI_KEYwith every request tohttps://api.getxapi.com.
There is no application form, no use-case review and no waiting period. Credits start at $10 and never expire. Optional monthly plans lower the effective per-call price for steady usage. Details: how to get a Twitter API key without a developer account.
Everything sits under https://api.getxapi.com/twitter/. The full reference with request and response schemas is at docs.getxapi.com; the spec is at docs.getxapi.com/openapi.json.
| Category | Count | Endpoints |
|---|---|---|
| Users | 27 | search, info, info_by_id, user_about, status, followers, following, followers_v2, following_v2, verified_followers, followers_you_know, check_follow_relationship, affiliates, tweets, tweets_and_replies, tweets/complete, media, likes, home_timeline, mentions, bookmarks, bookmark_search, follow, unfollow, update_avatar, update_banner, update_profile |
| Tweets | 12 | advanced_search, detail, replies, retweeters, thread, create, edit, delete, favorite, retweet, bookmark, unbookmark |
| Monitoring | 9 | webhook create / list / test / delete, monitor add / list / update / remove / health |
| Articles | 7 | get, create, update, list, publish, unpublish, delete |
| Direct Messages | 3 | list, send, conversation |
| Account Recovery | 3 | user_login_v2, reset-password/send-code, reset-password/confirm |
| Community | 2 | info, join |
| Spaces | 2 | info, download (audio, optional transcript) |
| Trends | 2 | trends, trends/locations |
| Account (free) | 2 | me, payments |
| Notifications | 1 | notifications |
| Login | 1 | user_login |
| Media | 1 | upload |
| Lists | 1 | members |
Reads cover the Twitter search API, user profiles, the Twitter followers API (paginated, with verified-only and mutual variants), timelines, likes, bookmarks, mentions, threads, replies, retweeters, trends, Spaces and long-form articles. Writes cover posting, editing and deleting tweets, likes, retweets, bookmarks, follows, profile updates, media upload, DMs and article publishing.
The GetXAPI MCP server exposes the whole API as tools for Claude, Cursor, Continue and any Model Context Protocol client, so an agent can search X, read a profile or post a reply with the same key.
npx -y @getxapi/mcp@latestClaude Desktop or Cursor config:
{
"mcpServers": {
"getxapi": {
"command": "npx",
"args": ["-y", "@getxapi/mcp@latest"],
"env": { "GETXAPI_API_KEY": "YOUR_GETXAPI_KEY" }
}
}
}npm: @getxapi/mcp. Registry listings: mcpservers.org, Glama. More on agent use at getxapi.com/mcp.
The API is plain REST and JSON with a Bearer header, so any HTTP client works. Runnable versions of these live in getxapi-examples.
import requests
API_KEY = "YOUR_GETXAPI_KEY"
r = requests.get(
"https://api.getxapi.com/twitter/user/info",
params={"userName": "elonmusk"},
headers={"Authorization": f"Bearer {API_KEY}"},
)
data = r.json()["data"]
print(data["name"], data["followers"])const res = await fetch(
"https://api.getxapi.com/twitter/tweet/advanced_search?q=openai&product=Top",
{ headers: { Authorization: `Bearer ${process.env.GETXAPI_KEY}` } }
);
const { tweets } = await res.json();
console.log(tweets.length, "tweets");req, _ := http.NewRequest("GET", "https://api.getxapi.com/twitter/user/followers?userName=nasa", nil)
req.Header.Set("Authorization", "Bearer "+key)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
io.Copy(os.Stdout, resp.Body)let body = reqwest::Client::new()
.get("https://api.getxapi.com/twitter/tweet/detail?id=1234567890123456789")
.bearer_auth(key)
.send().await?
.text().await?;curl -H "Authorization: Bearer YOUR_GETXAPI_KEY" \
"https://api.getxapi.com/twitter/user/tweets?userName=nasa"| Task | Endpoint | Notes |
|---|---|---|
| Search tweets with operators | GET /twitter/tweet/advanced_search?q=...&product=Latest |
Full advanced-search operator set: from:, to:, since:, until:, lang:, min_faves:, min_retweets:, filter:verified, geocode:. product=Top for engagement ranking. Cursor pagination. |
| Look up a profile | GET /twitter/user/info?userName=... |
Followers, following, bio, verification, creation date. info_by_id for numeric ids, user_about for account metadata. |
| Pull a user's timeline | GET /twitter/user/tweets?userName=... |
tweets_and_replies and media variants. tweets/complete returns the full-fidelity tweet objects. |
| Export followers or following | GET /twitter/user/followers?userName=... |
Up to 200 profiles per page with cursor. verified_followers, followers_you_know, check_follow_relationship. |
| Read a thread or replies | GET /twitter/tweet/thread?id=..., GET /twitter/tweet/replies?id=... |
Ordered, with author objects. |
| Track trends | GET /twitter/trends, GET /twitter/trends/locations |
By WOEID. |
| Post, reply, like, retweet, follow | POST /twitter/tweet/create, favorite, retweet, user/follow |
Write endpoints take your own X account token in addition to the GetXAPI key. Exact fields are in the docs. |
| Send and read DMs | POST /twitter/dm/send, GET /twitter/dm/list, GET /twitter/dm/conversation |
$0.002 per call. |
| Download a Space | POST /twitter/spaces/download |
Queued job, MP3, optional transcript billed per minute. Polling the job is free. |
| Watch an account in real time | POST /twitter/monitor/add + a webhook |
See Monitoring below. |
Per-call billing with about 20 tweets per standard call is what makes bulk extraction cheap. Read-heavy workload, standard endpoints:
| Tweets per month | GetXAPI calls | GetXAPI cost | Official X API cost |
|---|---|---|---|
| 10,000 | 500 | $0.50 | $50 |
| 100,000 | 5,000 | $5 | $500 |
| 1,000,000 | 50,000 | $50 | $5,000 |
| 10,000,000 | 500,000 | $500 | Enterprise contract, standard access capped at 3M reads |
Assumptions: standard calls at $0.001, about 20 tweets per call on search and list responses, official Post reads at $0.005 each. Narrow queries return fewer tweets per call and raise the effective per-tweet price. Run your own numbers in the Twitter API cost calculator.
Credits are drawn at each endpoint's real cost, not one credit per call.
| Operation | Price |
|---|---|
| Standard call (search, profiles, timelines, followers, tweet detail, like, retweet, follow) | $0.001 per call |
| Post tweet, edit tweet, DM list, DM send, join community, notifications | $0.002 per call |
| User tweets, complete objects | $0.003 per call |
| Article endpoints | $0.005 per call ($0.01 to create) |
Account recovery (user_login_v2, reset password) |
$0.005 per call |
Account login (user_login) |
$0.01 per call |
| Spaces download | $0.05 base + $0.015 per transcript minute |
Account endpoints (me, payments) |
Free |
| Signup credit | $0.10, no card required, never expires |
| Minimum top-up | $10, credits never expire |
| Monthly subscription | Optional, plans lower the effective per-call price |
Full rate card and plans: getxapi.com/pricing. Side-by-side with the official rate card: Twitter API pricing compared. Free options explained: Twitter API free tier.
The Twitter webhook API replaces polling. Add a public X account as a monitor, point it at your HTTPS endpoint, and every new tweet arrives as a signed POST within seconds.
- Detection in about 15 seconds on the standard tier and about 2 seconds on the fast tier (Growth plan and above), selectable per monitor.
- HMAC-SHA256 signature and a delivery id on every request. At-least-once delivery, per-account ordering, retries with exponential backoff for up to 21 minutes if your endpoint is down.
- Payloads carry the full tweet, author, and reply and quote flags.
- Monitoring is a flat monthly plan, not per-call: Starter $19 for 6 accounts, Growth $59 for 20, Professional $119 for 50, Enterprise $249 for 150. Webhook deliveries never consume API credits.
- Monitors follow the account's permanent id, so a handle change does not break them. A test endpoint lets you verify your receiver before going live.
Setup and CRC details: Twitter webhook API and the monitoring docs.
- No endpoint-specific quota. There is no 15-minute window or daily cap per endpoint to design around. General service throttling still applies under sustained concurrency and returns HTTP 429 with a
retry_after, so keep exponential backoff in long-running jobs. Full comparison: Twitter API rate limits. - 99.9% uptime, published on a live status page with 90-day history per endpoint group.
- Most endpoints respond in under 2 seconds.
- Errors follow HTTP semantics: 401 for a bad key, 402 when credits run out, 403 for access denied by X on the target or action, 429 for throttling, 503 for platform incidents. Error reference: X and Twitter API error codes.
- Data scientists and researchers: bulk search with operators, full timelines and follower graphs as JSON at $0.05 per 1,000 tweets, no developer application. See Twitter API use cases.
- Growth and marketing: follower exports, verified-follower filters, mention tracking, brand monitoring with webhooks, competitor timelines.
- Trading and market sentiment: real-time monitors on a watchlist of accounts pushed to your pipeline in about 2 seconds, plus historical search for backtests.
- AI agents and automation: the MCP server gives Claude, Cursor and custom agents read and write access to X with one key; n8n, Make and Zapier can call the REST endpoints directly.
- Product and support teams: mention and DM retrieval, reply threads, notifications, posting and DM sending from your own account token.
- Indie developers and side projects: start on the $0.10 credit, pay per call, no plan until you want one.
Most v2 read endpoints map one to one. Swap the base URL and the auth header, drop the developer-account setup.
| X API v2 | GetXAPI |
|---|---|
GET /2/tweets/search/recent |
GET /twitter/tweet/advanced_search |
GET /2/tweets/:id |
GET /twitter/tweet/detail |
GET /2/users/by/username/:username |
GET /twitter/user/info |
GET /2/users/:id |
GET /twitter/user/info_by_id |
GET /2/users/:id/tweets |
GET /twitter/user/tweets |
GET /2/users/:id/mentions |
GET /twitter/user/mentions |
GET /2/users/:id/followers |
GET /twitter/user/followers |
GET /2/users/:id/following |
GET /twitter/user/following |
GET /2/users/:id/liked_tweets |
GET /twitter/user/likes |
GET /2/users/:id/bookmarks |
GET /twitter/user/bookmarks |
GET /2/lists/:id/members |
GET /twitter/list/members |
GET /2/trends/by/woeid/:id |
GET /twitter/trends |
POST /2/tweets |
POST /twitter/tweet/create |
DELETE /2/tweets/:id |
POST /twitter/tweet/delete |
POST /2/users/:id/likes |
POST /twitter/tweet/favorite |
POST /2/users/:id/retweets |
POST /twitter/tweet/retweet |
POST /2/users/:id/following |
POST /twitter/user/follow |
GET /2/dm_events |
GET /twitter/dm/list |
POST /2/dm_conversations/.../messages |
POST /twitter/dm/send |
| Filtered stream | Monitoring webhooks (monitor/add + webhook/create) |
Field names differ in places; the OpenAPI spec documents every response schema. Object reference for the raw X objects: X Twitter API object reference.
Both, from the caller's point of view. It is a hosted REST API with an OpenAPI spec, Bearer auth and per-call billing, so it behaves like an API. Under it, GetXAPI handles data collection, proxies and breakage so you do not run a scraper yourself. You never log in with your own account to read.
GetXAPI gives every account $0.10 in credit at signup, about 100 standard calls or roughly 2,000 tweets, with no card and no expiry. That is enough to test every endpoint and validate response schemas before paying. After that it is $0.001 per call.
No. Read endpoints need only your GetXAPI key. Write endpoints also take an X account token that you supply, so there is no OAuth app to register and no developer application to wait on.
The official API bills $0.005 per Post read and $0.01 per User read, per resource returned, so 1,000 tweets cost about $5. GetXAPI bills $0.001 per call returning about 20 tweets, so 1,000 tweets cost about $0.05. On single-resource lookups it is 5 to 10 times cheaper; on multi-result reads such as search it is about 100 times cheaper.
There is no endpoint-specific quota. General service throttling applies under sustained concurrency and returns 429, so use exponential backoff. There is no monthly read cap.
Yes. Posting, editing, deleting, liking, retweeting, following, profile updates, media upload, DMs and long-form articles are all available. Writes use your own X account token alongside the GetXAPI key.
Yes. Install the MCP server with npx -y @getxapi/mcp@latest and every endpoint becomes a tool in Claude, Cursor or any MCP client. The REST API also works from n8n, Make, Zapier and LangChain-style tool wrappers.
Any language with an HTTP client. Examples above cover curl, Python, Node.js, Go and Rust, and the OpenAPI 3.1 spec generates clients for anything else.
99.9% uptime with a public status page showing 90-day history for each endpoint group, and most endpoints respond in under 2 seconds.
GetXAPI was founded in 2026 and is headquartered in Dubai, United Arab Emirates. GetXAPI is an independent third-party API and is not affiliated with, endorsed by, or sponsored by X Corp.
- Website: getxapi.com
- Twitter API alternatives, in depth: getxapi.com/twitter-api-alternatives
- Documentation: docs.getxapi.com
- OpenAPI 3.1 spec: docs.getxapi.com/openapi.json
- MCP server: github.com/getxapi/getxapi-mcp
- Code examples: github.com/getxapi/getxapi-examples
- Status: getxapi.com/status
- Contact: bozad@getxapi.com
Prices and endpoint counts in this file were last checked against getxapi.com/pricing and the OpenAPI spec on 4 September 2026. The site is authoritative when the two differ.