twitterapi.io is an independent third-party service. Not affiliated with X Corp.

TwitterAPI.io vs TwitterAPIs: what each workload costs, limits and how to switch

TwitterAPI.io and TwitterAPIs both sell public X (Twitter) data over a REST API without an X developer account, and both cost a fraction of the official API. They bill differently. TwitterAPIs charges a flat $0.0008 per call, whatever comes back. TwitterAPI.io charges per result returned, with a minimum of $0.00015 per request. That makes monitoring checks that find nothing, profile lookups and single tweets by ID cost less on TwitterAPI.io.

Priced on our customers' actual request mix over a 15-day window, TwitterAPI.io comes out 11% lower at pay-as-you-go prices, 27% lower on the Builder plan and 53% lower on Business. The table below shows where that comes from.

The short verdict

  • Monitoring and polling: TwitterAPI.io costs less. A check that finds nothing is $0.00015 against $0.0008, and most monitoring checks find nothing.
  • Profiles and tweet details: TwitterAPI.io costs less: $0.00018 per profile, $0.00015 per tweet by ID.
  • Bulk profile enrichment: $0.01 per 1,000 profiles by ID in batches of 100+, against $0.80 per 1,000 one call at a time.
  • Throughput: 20 requests a second once paid on TwitterAPI.io, 50 on Scale and up to 500 on Business, against 600 requests a minute (10 a second) on TwitterAPIs.
  • Push delivery: TwitterAPI.io runs keyword filter rules on its side and delivers matches by webhook or WebSocket, billed like polling search.

Where TwitterAPI.io costs less, on real traffic

A rate card says little until it meets real traffic. We took the requests our customers actually make, grouped them into workloads, and priced the average request in each on both services. The table shows the workloads where TwitterAPI.io is lower, and the last row prices the whole request mix, every request included.

Average cost per request for real workloads on TwitterAPI.io (three plans) and TwitterAPIs
WorkloadShare of requestsTwitterAPI.io, pay as you goTwitterAPI.io, builder planTwitterAPI.io, business planTwitterAPIs
Monitoring / polling (search calls that return no new tweets)/twitter/tweet/advanced_search (0 results)37.6%$0.0001581% lower$0.0001285% lower$0.00007990% lower$0.0008
User profiles/twitter/user/info, /twitter/user/batch_info_by_ids, /twitter/user_about16.9%$0.0003852% lower$0.0003161% lower$0.000275% lower$0.0008
Tweet details by ID/twitter/tweets9.5%$0.0003951% lower$0.0003260% lower$0.000274% lower$0.0008
Whole request mix100%11% lower27% lower53% lowerbaseline
Average cost per request. Based on our customers' actual request mix over a 15-day window (shares of requests, push delivery excluded), at each rival's published price, with empty results charged where the rival charges them. TwitterAPIs: $0.0008 per call, empty results included. The whole-mix row covers every request. Plan prices assume every extra credit is used before it expires; the Builder and Business columns include the first-month bonus and the monthly returns over 12 months.

The biggest row decides the total. More than a third of all requests are monitoring checks that find nothing new, and those cost $0.00015 here against $0.0008. Profile lookups and tweet details by ID, together about a quarter of requests, also cost about half as much per request.

Bar chart: cost per request on TwitterAPIs vs TwitterAPI.io (pay as you go and Business plan) for the workloads where TwitterAPI.io is lower. Per 1,000 requests, TwitterAPIs is $0.80 in each; TwitterAPI.io pay as you go is $0.15 for monitoring checks with nothing new, $0.38 for user profile requests and $0.39 for tweet details by ID; on the Business plan $0.08, $0.20 and $0.20.
Cost per 1,000 requests for the average request in each workload, on our customers' request mix. TwitterAPIs at its standard $0.0008 rate. The Business bars assume every extra credit is used before it expires.

How each one bills

Every bill on either service is number of requests × price per request. The price per request is where they differ, and the number of items a request returns is what moves it.

TwitterAPIs uses a flat rate. Its pricing page (twitterapis.com/pricing) lists $0.0008 per call for the standard tier, which covers 65 of its 112 endpoints, and the other 47 endpoints, mostly write actions, at $0.0016 to $0.01 (full history $0.0024, full threads $0.004), with a few batch endpoints priced per item. A call that returns 20 tweets and a call that returns none cost the same.

TwitterAPI.io uses credits: 100,000 credits are $1. Tweets cost 15 credits each and profiles 18, with a 15-credit minimum per request. There is no per-request cap. The formula is:

request = max(15, 15 × tweets returned) credits · 100,000 credits = $1

So a request that returns 5 or fewer tweets costs less on TwitterAPI.io than one $0.0008 call, and a check that returns nothing costs $0.00015. Subscriptions lower our price further: our plans convert the fee to credits and add extra credits on top (14% in the first month on Builder, 50% on Business, plus a monthly return), so $1 buys 1.22× the credits on Builder and 1.9× on Business.

Price per data type

A single “per 1,000 tweets” number hides most of the difference, because per-call and per-result billing price each endpoint differently. This table prices the kinds of data where TwitterAPI.io is lower the way you would actually fetch them, at pay-as-you-go prices. Green marks the lower price on each row.

DataTwitterAPI.ioTwitterAPIs
Search that returns nothing (a monitoring check)$0.00015$0.0008
Search returning 1–5 tweets$0.00015–$0.00075$0.0008
Tweet details by ID, one tweet$0.00015$0.0008
Single profile lookup$0.00018$0.0008
Profiles in bulk by ID, per 1,000$0.01 (100+ per request)$0.80 (one profile per call; no batch-by-ID endpoint listed)
Followers / followings, per 1,000 on full pages$0.01 (200 per page)$0.012–$0.016 (its own figure; ~70 on the first page, fewer after)
Verified followers, per page of 20$0.00015$0.0008

Items per page: TwitterAPI.io returns up to 200 followers per page and 20 verified followers per page; TwitterAPIs' followers page (twitterapis.com/twitter-followers-api) states about 70 per page. Per-1,000 figures for TwitterAPIs are $0.0008 divided by items per call. TwitterAPI.io prices are from our pricing page; TwitterAPIs prices from its pricing page (twitterapis.com/pricing), checked in 2026.

What a month costs: four jobs

Four common jobs, each costed on both services with the arithmetic shown, so you can swap in your own numbers. Prices are pay-as-you-go unless a row says otherwise.

Keyword alert, polled every 60 seconds
43,200 checks a month; 90% find nothing, 10% find 3 tweets
TwitterAPI.io38,880 × $0.00015 + 4,320 × $0.00045 = $7.78
TwitterAPIs43,200 × $0.0008 = $34.56
New posts from 200 accounts, hourly (from:handle since_id search)
144,000 searches, about 1 new tweet each
TwitterAPI.io144,000 × $0.00015 = $21.60
TwitterAPIs144,000 × $0.0008 = $115.20
Enrich 100,000 profiles
by user ID in batches of 100+
TwitterAPI.io100,000 × $0.00001 = $1.00 (or $18.00 one by one)
TwitterAPIs100,000 × $0.0008 = $80.00
Export 1 million followers
200 per page here; ~70 on the first page there, fewer after
TwitterAPI.io5,000 pages × $0.002 = $10.00
TwitterAPIs$12–$16 (its stated $0.012–$0.016 per 1,000)

The pattern is consistent. Anything that repeats a query and usually finds little (alerts, monitoring, brand mentions, new posts from a list of accounts) costs several times less on TwitterAPI.io, because an empty check is $0.00015 instead of a full call. So does anything about users rather than tweets.

Poll accounts for new posts at the minimum price

Most account polling is really asking “has this account posted anything new?”, and on TwitterAPI.io that question costs least as a search that returns only the new tweets. A query like from:nasa since_id:<last id> returns only the new tweets: $0.00015 when nothing is new, $0.0003 for two, against $0.0008 per call on TwitterAPIs.

import os, time, requests

KEY = os.environ["TWITTERAPI_IO_KEY"]
HANDLES = ["nasa", "spacex", "esa"]  # accounts to watch
since = {h: None for h in HANDLES}

def check(handle):
    # the first run (no since_id yet) returns up to 20 recent tweets
    q = f"from:{handle}" + (f" since_id:{since[handle]}" if since[handle] else "")
    r = requests.get("https://api.twitterapi.io/twitter/tweet/advanced_search",
                     headers={"X-API-Key": KEY},
                     params={"query": q, "queryType": "Latest"}, timeout=30)
    if r.status_code == 429:
        time.sleep(int(r.headers.get("Retry-After", 1)))
        return []  # try this account again next round
    r.raise_for_status()
    tweets = r.json().get("tweets", [])
    if tweets:
        since[handle] = max(tweets, key=lambda t: int(t["id"]))["id"]
    return tweets  # billed per tweet returned; a check with nothing new is the 15-credit minimum

while True:
    for h in HANDLES:
        try:
            for t in check(h):
                print(h, t["id"], t["text"][:80])
        except requests.RequestException as e:
            print("skipped", h, e)  # network error or 5xx: retry next round
    time.sleep(3600)  # hourly; 3 accounts x 720 checks = 2,160 checks a month

Two caveats. Search results can arrive a little later than the timeline, so test the delay on your own accounts before relying on it for alerts measured in seconds. And if you need every reply and repost an account makes, compare the results with the timeline once before switching.

Features and limits

TwitterAPI.ioTwitterAPIs
Billing unitPer item returned (15 credits per tweet, 18 per profile), 15-credit minimum per requestFlat per call: $0.0008 on 65 of 112 endpoints; the rest (mostly writes) $0.0016–$0.01, a few batch endpoints per item
Minimum top-upNo minimum spend on pay-as-you-go$10
SubscriptionsOptional, $29–$1,499 a month: 8–50% extra credits in the first month plus a monthly returnPay as you go; monitoring plans
Rate limit20 requests/s once you have paid (0.2 before); 50 on Scale, 500 on Business, up to 1,000 on request600 requests/min (10/s) and 20 concurrent per key, same for everyone
Keyword rules pushed to youFilter rules delivered by webhook or WebSocket, billed like polling searchMonitors and webhooks (15 tools in its MCP list)
AuthX-API-Key headerAuthorization: Bearer (or x-api-key)
Write actionsLogin cookies from the login endpoint plus a proxyauth_token + ct0 cookie pair, or credential login

TwitterAPIs figures from its pricing (twitterapis.com/pricing), rate-limit (twitterapis.com/twitter-api-rate-limits) and MCP (twitterapis.com/mcp) pages; TwitterAPI.io from our pricing, rate limits and MCP server pages. Checked in 2026.

Rate limits in practice

TwitterAPIs gives every key the same ceiling, 600 requests a minute with 20 in flight, whatever you spend. TwitterAPI.io starts new, unpaid accounts at 0.2 requests per second, raises every account to 20 per second after the first payment, and goes to 50 on the Scale plan and 500 on Business. Your normal load rarely touches either ceiling. Backfills do, so size the limit for the backfill: at 20 per second you can fetch about 1.7 million search pages a day, at 10 per second about 860,000.

Real-time delivery

Both services can push data instead of making you poll. TwitterAPI.io runs keyword filter rules on its side and delivers matches by webhook or WebSocket, billed at the same rate as polling the search yourself; see the webhooks guide. For a fixed list of accounts, Twitter Stream costs $29 a month for 6 accounts (+$5 per extra account), $79 for 20, $149 for 50, $299 for 150 and $499 for 500, and adds accounts one at a time at $5 down to $1 each. TwitterAPIs' account monitors come in fixed tiers with no per-account add-on, so a count just above one of its tiers needs the next one: at 7–9, 21–23, 51–66, 151–199 and 501–799 accounts, Twitter Stream costs less.

AI agents and MCP

TwitterAPI.io's MCP server has 12 read-only tools (search, users, followers, replies, trends) as an npx package. For an agent that reads, a short tool list is easy for the model to choose from, and exploratory queries that return little stay cheap at $0.00015 each.

Write actions

Both support posting, liking, reposting and following on an account you control. TwitterAPI.io's write endpoints take login cookies from its login endpoint plus a proxy. TwitterAPIs uses an auth_token and ct0 cookie pair, or a credential login for which it recommends a residential proxy. Either way, automated actions on an X account can get it limited, so keep them human-paced.

The same request on both

The read endpoints share the /twitter/... path layout, so a search is the same request with a different host, header and one parameter name:

# TwitterAPI.io
curl -H "X-API-Key: $TWITTERAPI_IO_KEY" \
  "https://api.twitterapi.io/twitter/tweet/advanced_search?query=from%3Anasa&queryType=Latest"

# TwitterAPIs
curl -H "Authorization: Bearer $TWITTERAPIS_KEY" \
  "https://api.twitterapis.com/twitter/tweet/advanced_search?query=from%3Anasa&product=Latest"
TwitterAPI.ioTwitterAPIs
Base URLhttps://api.twitterapi.iohttps://api.twitterapis.com
Auth headerX-API-Key: <key>Authorization: Bearer <key>
Search sort parameterqueryType=Latest | Topproduct=Latest
Tweets in the responsetweetstweets
Next-page cursornext_cursornext_cursor
More pages flaghas_next_pagehas_more

TwitterAPIs request and response fields from its quickstart (twitterapis.com/quickstart). Compare the fields inside each tweet object for the endpoints you use before moving production traffic.

One adapter for either provider

If you want to run both, or keep the option to move, put the four differences in one place. This TypeScript generator pages through a search on either service and backs off and retries on 429:

// One client, either provider. Only the base URL, auth header,
// search parameter and end-of-results flag differ.
type Provider = "twitterapi.io" | "twitterapis"

const CONFIG = {
  "twitterapi.io": {
    base: "https://api.twitterapi.io",
    headers: (key: string) => ({ "X-API-Key": key }),
    sortParam: "queryType",
    hasMore: (body: any) => Boolean(body.has_next_page),
  },
  twitterapis: {
    base: "https://api.twitterapis.com",
    headers: (key: string) => ({ Authorization: `Bearer ${key}` }),
    sortParam: "product",
    hasMore: (body: any) => Boolean(body.has_more),
  },
} as const

const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms))

export async function* searchTweets(provider: Provider, key: string, query: string, maxPages = 10) {
  const c = CONFIG[provider]
  let cursor = ""
  for (let page = 0; page < maxPages; page++) {
    const params = new URLSearchParams({ query, [c.sortParam]: "Latest" })
    if (cursor) params.set("cursor", cursor)
    let res: Response
    for (let attempt = 0; ; attempt++) {
      res = await fetch(`${c.base}/twitter/tweet/advanced_search?${params}`, { headers: c.headers(key) })
      if (res.status !== 429 || attempt === 5) break
      const retryAfter = Number(res.headers.get("retry-after"))
      await sleep(retryAfter > 0 ? retryAfter * 1000 : 1000 * 2 ** attempt) // back off, then retry
    }
    if (!res.ok) throw new Error(`${provider} ${res.status}`)
    const body = await res.json()
    for (const t of body.tweets ?? []) yield t
    if (!c.hasMore(body) || !body.next_cursor) return
    cursor = body.next_cursor
  }
}

Switching checklist

  1. List the endpoints you call and how often. Price the list with the tables above; most bills are two or three endpoints.
  2. Measure your real items per call for a day. Monitoring checks, profile lookups and tweet-by-ID requests are where TwitterAPI.io is lower.
  3. For TwitterAPI.io, replace timeline polling with from:handle since_id: searches where you only need new posts.
  4. Swap the base URL and auth header, and map queryType/product and has_next_page/has_more.
  5. Diff the tweet objects for each endpoint you use (field names, nested user object, media) and adjust your parser.
  6. Check the rate limit against your backfill, not your normal load; on TwitterAPI.io make a first payment before load testing (unpaid accounts are limited to 0.2 requests a second).
  7. Run both in parallel for a few days on the free credits and compare bills and row counts before cutting over.

Where TwitterAPI.io is the better pick

  • Most of your calls are alerts, monitoring or polling, where checks usually find nothing and cost $0.00015.
  • You enrich profiles in bulk ($0.01 per 1,000), look up tweets by ID or export follower lists.
  • You need more than 10 requests a second: 20 once paid, 500 on Business.
  • You want keyword rules pushed to you by webhook or WebSocket at the polling price.
  • You run a steady volume: a subscription adds up to 90% extra credits.

Price your own workload

The calculator from our Twitter API price comparison, with TwitterAPIs highlighted. Enter how many searches you run, how many tweets they usually return and the request rate you need. For every endpoint price and how the plan credits are computed, see pricing.

If most of your requests return full pages of tweets (bulk exports, full timelines), compare the per-page price for your volume; on the Business plan a 20-tweet page costs $0.0016 after 12 monthly payments ($0.002 in the first month).

100K

Each advanced-search call returns up to 20 posts.

20 of 20

Lower this if many of your searches come back empty or short (monitoring jobs usually do).

10K

User info / follower pages, priced per profile on most APIs.

5 rps

Vendors with a lower published limit are flagged.

ProviderPricing modelPer 1K postsMonthly costRate limit
GetXAPIGrowth plan$0.025$49.00not published
TwitterAPIs.com$0.0008 per call$0.044$88.00600 rpm (10 rps)
TwitterAPI.io (pay-as-you-go)$0.15 / 1K posts, $0.18 / 1K profiles, min $0.00015 per call$0.151$30220 rps (0.2 before first payment)
SocialData$0.0002 per item returned$0.201$402120 rpm (2 rps): below your 5 rps
TwitterAPI.io (subscription)Scale plan, 50 rps$0.249$49920–500 rps by tier
SorsaEnterprise plan (500,000 requests)$0.449$89920 rps
Official X API$0.005 per post read, $0.010 per user read$5.05$10,100per-endpoint limits

Prices from each provider's own pricing page (sources below). Per-call providers charge the same for a call that returns 20 posts or none; TwitterAPI.io charges per post with a 15-credit ($0.00015) minimum per call. SocialData doesn't charge empty responses up to 3 a minute; the calculator assumes your requests are spread evenly across the month. Rows are sorted by monthly cost for the workload above.

What TwitterAPIs' comparison page says about us, checked

TwitterAPIs publishes its own comparison with TwitterAPI.io (twitterapis.com/twitterapis-vs-twitterapi-io). Several of its statements about us were right when written and have since changed, or leave out part of the picture. Here they are against our current pricing and docs.

StatementStatusCurrent facts
A search that returns nothing still costs 15 creditsCorrect15 credits is $0.00015. The same empty call costs $0.0008 on TwitterAPIs.
"60+ endpoints"Out of dateOur public API reference lists 76 endpoints.
Throughput tied to balance, "3 to 20 QPS"Out of dateThe limit depends only on whether you have paid: 0.2 requests/s before the first payment, 20 after, 50 on Scale, 500 on Business, up to 1,000 on request.
twitterapi.io ships no MCP serverOut of dateWe publish an MCP server with 12 read-only tools (npx package).
Profiles: "$0.04 per 1,000" vs "$0.18"IncompleteOur single lookup is $0.18 per 1,000 and bulk lookups by ID are $0.01 per 1,000. TwitterAPIs' price sheet lists profile lookups at $0.0008 per call, which is $0.80 per 1,000 profiles fetched one at a time.

Against the official X API

Both services exist because of what the official API costs. X now bills per resource read with no subscriptions: according to its pricing documentation, $0.005 per post read, $0.010 per user read and $0.010 per follower or following read; creating a post costs $0.015, or $0.20 if it contains a URL. Pay-per-use is capped at 3 million post reads per monthly billing cycle, above which you need an Enterprise agreement. New accounts get $20 of credits when they save a first eligible card, plus a match of the first auto-recharge up to $50.

1 million tweets read, full pagesCost
Official X API ($0.005 per post)$5,000
TwitterAPI.io, pay as you go ($0.00015 per tweet)$150.00
TwitterAPI.io, Business plan$78.95

The official API still makes sense when you need a contract with X, posting through X's own consent screen, or data that only an authenticated first-party app can read. For reading public posts, TwitterAPI.io costs about 1/33 of the official price; for single profile lookups the official price is $0.010 against $0.00018 here. See TwitterAPI.io vs the official X API for the full comparison.

Quick decision guide

If your main workload isLower cost onWhy
Keyword alerts, brand monitoring, social listeningTwitterAPI.ioMost checks find little; $0.00015 vs $0.0008 per check
New posts from a list of accountsTwitterAPI.iofrom: search with since_id returns only new tweets
Profile enrichmentTwitterAPI.io$0.01 per 1,000 in bulk vs $0.80
Tweet lookups by IDTwitterAPI.io$0.00015 per tweet vs $0.0008 per call
Follower graphsTwitterAPI.io$0.01 vs $0.012–$0.016 per 1,000 on full pages

Questions

Is TwitterAPI.io cheaper than TwitterAPIs?
On our customers' actual request mix over a 15-day window, yes: 11% lower at pay-as-you-go prices, 27% lower on the Builder plan and 53% lower on Business. Monitoring checks that find nothing ($0.00015 vs $0.0008), profile lookups and tweet details by ID cost less on TwitterAPI.io, because it bills per result returned instead of a flat $0.0008 per call.
How many tweets does one call return on each service?
Both return up to about 20 tweets per search or timeline page. TwitterAPIs' own comparison measured pages averaging about 13 tweets and search pages closer to 8. Per-call pricing gets more expensive per tweet as pages get thinner; per-item pricing does not.
Which one has higher rate limits?
TwitterAPI.io allows 20 requests per second once you have paid (0.2 before), 50 on the Scale plan and 500 on Business, with up to 1,000 on request. TwitterAPIs allows 600 requests a minute (10 per second) and 20 concurrent requests per key for every account.
Can I switch without rewriting my code?
Mostly. Both use /twitter/... paths for the shared read endpoints and return a tweets array with a next_cursor. The differences are the base URL, the auth header (X-API-Key vs Bearer), a few parameter names (queryType vs product on search) and the end-of-results flag (has_next_page vs has_more). The adapter on this page handles all four.
Is either one an official X API?
No. Both are third-party services that read public X data without an X developer account. The official X API is billed per resource read: $0.005 per post and $0.010 per user, capped at 3 million post reads a month before an Enterprise contract.

Sources and method

  • TwitterAPI.io: pricing, rate limits, Twitter Stream, MCP server, API docs.
  • TwitterAPIs: pricing (twitterapis.com/pricing), quickstart (twitterapis.com/quickstart), rate limits (twitterapis.com/twitter-api-rate-limits), MCP (twitterapis.com/mcp), followers API (twitterapis.com/twitter-followers-api), its comparison page (twitterapis.com/twitterapis-vs-twitterapi-io).
  • Official X API: pricing documentation.
  • Workload table: anonymized, aggregated API usage on TwitterAPI.io over a 15-day window, shown as shares of requests only. Each rival is priced at its published rate, with empty results charged where it charges them.
  • All figures checked in 2026. Prices change; check both pricing pages before you commit to a large job.

More comparisons