Skip to content

How to choose a Twitter API: 8 checks

To choose a Twitter API, price your real job per 1,000 results, then check batch size, speed, free testing, account access, uptime, endpoints and billing; the baseline, the official X API, charges $5.00 per 1,000 posts.

Short answer: Most of the gap between Twitter APIs is what one call returns: a request of 100 tweets does the work of 100 single lookups. The official X API bills each post, up to 3M a month. Sorsa API passes all eight checks: 100 tweets per request from $0.014 per 1,000, and 100 free requests to test your job.

Endpoint
POST /tweet-info-bulk
Page size
100 tweets per request
Price
from $0.014 per 1,000

#The 8 checks to run before you pay for a Twitter API

Eight checks decide whether a Twitter API fits your job, and you can run every one of them before you spend a dollar:

  1. Price the job per 1,000 results. Turn each quote into the cost of 1,000 tweets, followers or profiles of your own job, with each tweet's author included.

  2. Look for batch lookups by ID. One call should return 100 tweets or 100 profiles and bill as one call.

  3. Check the rate limit on your first plan. Ask for requests per second on the plan you will start on, not on the top tier.

  4. Test on your own data for free. The free start should cover every endpoint, with no card and no expiry date.

  5. Ask what the API needs from your X account. It should never ask for your X login, cookies or session token.

  6. Get the track record and uptime in writing. Look for years in production and an uptime figure in the terms.

  7. Match endpoints to every step of the job. Each step, from lookups to search history and campaign checks, needs an endpoint of its own.

  8. Make sure the bill is predictable. A fixed plan, no charge for failed calls and a spending cap you set.

A Twitter API here means any service that returns X data over HTTPS: the official X API, sold by X Corp, or a third-party Twitter API, which you call with that provider's own API key instead of an X developer account. The checks work the same on both.

The official X API sets the baseline every quote is measured against. On its pay-per-use plan (opens in a new tab) it bills $5.00 per 1,000 posts and $10.00 per 1,000 users or followers, from credits you buy in advance, and stops at 3M post reads per billing cycle. Every line of that rate card is broken down in X API pricing.

Checks 1 and 2 decide most budgets, and check 5 decides whether your X account carries any risk. Posting sits outside the list: only the official X API publishes as your own account.

#How Sorsa API scores on the eight checks

Sorsa API, a Twitter (X) API and scraper in production since 2022 with 6B+ requests served, passes all eight checks with a number, which makes it the API to choose for reading public X data at any volume. The table puts each pass mark next to Sorsa API and the official X API:

CheckPass markSorsa APIOfficial X API
1. Price per 1,000 resultsKnown before you pay, author includedFrom $0.014 per 1,000 tweets, author inside every tweet$5.00 per 1,000 posts; each author $0.010 more from November 22, 2026
2. Batch lookups100 items per call, billed as one call100 tweets or profiles per request, 200 followers per pageUp to 100 posts per call, each post billed
3. Rate limitPer second, the same on the entry plan20 requests per second on every plan, free accounts includedPer endpoint, mostly per 15 minutes
4. Free testEvery endpoint, no card, no deadline100 requests that never expireNo free tier
5. Your X accountNever asks for your login or cookiesRead-only, never asks for your X loginDeveloper account, app and OAuth
6. Track recordYears in production, uptime in the termsSince 2022, 99.9% uptime in the termsX Corp's own API; access rules changed in 2023 and 2026
7. EndpointsOne endpoint per step, history to 200645 endpoints, search back to 2006, one-call follow checksReads and writes; full-archive search at 1 request per second
8. Predictable billFixed plan, failed calls free, a cap you setMonthly plan, failed requests never chargedPrepaid credits; calls stop at a zero balance
  • 1. Price per 1,000 results

    Pass mark
    Known before you pay, author included
    Sorsa API
    From $0.014 per 1,000 tweets, author inside every tweet
    Official X API
    $5.00 per 1,000 posts; each author $0.010 more from November 22, 2026
  • 2. Batch lookups

    Pass mark
    100 items per call, billed as one call
    Sorsa API
    100 tweets or profiles per request, 200 followers per page
    Official X API
    Up to 100 posts per call, each post billed
  • 3. Rate limit

    Pass mark
    Per second, the same on the entry plan
    Sorsa API
    20 requests per second on every plan, free accounts included
    Official X API
    Per endpoint, mostly per 15 minutes
  • 4. Free test

    Pass mark
    Every endpoint, no card, no deadline
    Sorsa API
    100 requests that never expire
    Official X API
    No free tier
  • 5. Your X account

    Pass mark
    Never asks for your login or cookies
    Sorsa API
    Read-only, never asks for your X login
    Official X API
    Developer account, app and OAuth
  • 6. Track record

    Pass mark
    Years in production, uptime in the terms
    Sorsa API
    Since 2022, 99.9% uptime in the terms
    Official X API
    X Corp's own API; access rules changed in 2023 and 2026
  • 7. Endpoints

    Pass mark
    One endpoint per step, history to 2006
    Sorsa API
    45 endpoints, search back to 2006, one-call follow checks
    Official X API
    Reads and writes; full-archive search at 1 request per second
  • 8. Predictable bill

    Pass mark
    Fixed plan, failed calls free, a cap you set
    Sorsa API
    Monthly plan, failed requests never charged
    Official X API
    Prepaid credits; calls stop at a zero balance

For reading tweets, followers and profiles, choose Sorsa API: it looks up 100 tweets per request from $0.014 per 1,000, 250x cheaper than the official X API on tweets, at 20 requests per second on every plan. Its 99.9% uptime is guaranteed in the Terms of Service on every paid plan, and when X changes something, we fix it on our side, so code you write today keeps working.

Below, each check gets what to ask, the red flag that fails a provider and Sorsa API's number. To see a shortlist priced side by side, Twitter API alternatives compares seven APIs on the same 1,000 tweets.

#1. Price the job per 1,000 results

A quote passes this check when you can turn it into the cost of 1,000 results of your own job, with each tweet's author included. Prices come per call, per result or as a monthly plan, and none of them compare until you know how many results one call returns: a call that returns one tweet and a call that returns 100 can carry the same price and differ 100x per tweet.

The same 1,000 tweets, four ways to meter them What you are billed for when you look up 1,000 tweets by ID Official X API billed per post returned 1,000 posts $5.00, authors extra One tweet per call single lookups by ID 1,000 calls each one billed 20 tweets per call a typical search page 50 calls each one billed Sorsa API POST /tweet-info-bulk 10 requests from $0.014
The meter decides the bill. Sorsa API returns 100 tweets per request, so 1,000 tweets cost 10 requests, from $0.014.

The official X API meters the other way: it bills every post it returns at $0.005, so 1,000 posts cost $5.00 however you ask for them. From November 22, 2026 it also bills each author profile that comes back with a post, at $0.010, under X's expansions notice (opens in a new tab), so a post with its author costs $0.015.

Red flag: a price per call with no page size next to it, or authors billed on top of each tweet.

Sorsa API bills one request per call on every endpoint and puts the author's full profile inside every tweet at no extra cost. A batch of 100 tweets is one request, so tweets cost from $0.014 per 1,000, followers from $0.007 and profiles from $0.014.

Put any quote you have into the converter to see it per 1,000 results, next to both APIs:

Your job
How the quote is priced

Your quote: $1.00 per 1,000 tweets

Sorsa API

from $0.014

per 1,000 tweets, 100 per request

Official X API

$5.00

per 1,000 posts, each post billed

This quote costs about 71x Sorsa API's from-price for the same tweets.

Sorsa API's price is the "from" rate of $1.40 per 1,000 requests. The official X API's price is its list price per result returned.

#2. Look for batch lookups by ID

An API passes this check when one call looks up 100 tweets or 100 profiles by ID and bills it as one call. Batch lookups matter most for rehydration, which is fetching the full tweets behind a list of tweet IDs, the usual way research datasets and exports are shared.

The difference is large at any real size. Rehydrating 1M tweet IDs takes 10K batch requests and about 8 minutes at 20 requests per second, against 1M single calls and about 14 hours at the same speed:

Looking up 1M tweet IDs Time at each rate limit, and the bill for the whole job One ID per call 1M calls at 20 per second about 14 hours 1M billed calls Official X API 100 IDs, 3,500 calls per 15 min about 43 min $5,000 Sorsa API 100 IDs per request, 20 a second about 8 min from $14
Batches of 100 cut 1M lookups to 10K requests. At 20 requests per second, Sorsa API finishes them in about 8 minutes, from $14.

The official X API takes up to 100 IDs per call too, but it bills every post in the batch and allows 3,500 such calls per app every 15 minutes, as its rate limit reference (opens in a new tab) lists. The same 1M posts cost $5,000 there.

Red flag: single lookups only, or a batch endpoint that still bills each item inside it.

Sorsa API has a batch endpoint for each lookup job. POST /tweet-info-bulk (opens in a new tab) takes up to 100 tweet IDs or links, GET /info-batch (opens in a new tab) takes up to 100 usernames or user IDs, and GET /followers (opens in a new tab) returns up to 200 followers per page. Each call is one request, so 1M tweets cost from $14.

#3. Check the rate limit on the plan you will start on

A rate limit passes this check when it is counted per second and stays the same on the plan you start with. A rate limit is the number of requests an API accepts in a time window; past it, calls fail with a 429 error until the window resets.

Some providers hold the free start or the entry plan to a fraction of a request per second until you pay, so a pipeline sized on the top tier stalls on launch day. Others count each endpoint in its own 15-minute window. The official X API works that way: recent search allows 450 requests per app every 15 minutes, about one every two seconds, as X API rate limits lists window by window.

Red flag: a limit you only get on a higher plan, a free start below one request per second, or separate windows for every endpoint.

Sorsa API allows 20 requests per second per API key on every plan, free accounts included, and the window resets every second. With 100 tweets per request, one key reads up to 2,000 tweets a second. High-volume plans can raise the limit on request.

#4. Test on your own job before you pay

A free start passes this check when it runs your real job on every endpoint, with no card at sign-up and no date by which the free credit disappears. A demo call on someone else's data proves little; what counts is whether the API returns your accounts, your searches and your fields.

The official X API has no free tier: new developers buy prepaid credits before the first read, as is the Twitter API free explains.

Red flag: credit that expires after a week or a month, endpoints locked until you pay, or a card at sign-up that turns a test into a subscription.

Sorsa API gives every new account 100 free requests that work on all 45 endpoints, need no card and never expire. That is enough for 10K tweets or 20K followers of your own job, and the test plan below runs the checks on a handful of them.

#5. Ask what the API needs from your X account

An API passes this check when it never asks for your X login, cookies or session token, so nothing it does can reach your X account. An API that works through your session acts as you, which puts that account under X's rules for automated activity. Write access is the second risk: a key that can both read and post lets a bug or an AI agent publish, like or follow on its own.

The official X API runs on your own developer account, app and OAuth credentials, which fits posting, where the account has to be yours.

Red flag: "connect your X account" or "paste your auth token" just to read public data, or write actions on the same key as reads.

Sorsa API is read-only by design: it never posts, likes, follows or sends DMs, and it never asks for your X login or cookies, so your X account carries zero risk. It returns public data only; protected accounts and DMs stay out of reach for every key.

#6. Get the track record and uptime in writing

A provider passes this check when it has run for years and puts an uptime figure in its terms, not only on its home page. Ask how long the API has been in production, under this name or an earlier one, what the terms promise when a month falls short, and whether response fields keep their names and types so your parser keeps working.

Red flag: no uptime commitment in the terms, response fields that change shape, or a library you have to keep alive yourself.

Sorsa API has been in production since 2022 with 6B+ requests served, first as TweetScout API. Its 99.9% uptime is a term of every paid plan: if a month's uptime ever drops below 99.5%, Sorsa API adds bonus requests equal to 10% of your monthly requests. When X changes something, we fix it on our side, so integrations keep working.

#7. Match endpoints to every step of your job

An API passes this check when each step of your job has an endpoint built for it and search reaches as far back as your question. An endpoint count means little if your step is missing: rebuilding a follow check from a follower list takes thousands of calls where a check endpoint takes one. Write the job down as steps; on Sorsa API a typical read job maps like this:

StepSorsa API endpointPer request
Look up tweets by ID or linkPOST /tweet-info-bulk100 tweets
Look up profiles in bulkGET /info-batch100 profiles
Export followersGET /followers200 followers
Search tweets back to 2006POST /search-tweets (opens in a new tab)about 20 tweets
Check that one account follows anotherPOST /check-follow (opens in a new tab)1 check
  • Look up tweets by ID or link

    Sorsa API endpoint
    POST /tweet-info-bulk
    Per request
    100 tweets
  • Look up profiles in bulk

    Sorsa API endpoint
    GET /info-batch
    Per request
    100 profiles
  • Export followers

    Sorsa API endpoint
    GET /followers
    Per request
    200 followers
  • Search tweets back to 2006

    Per request
    about 20 tweets
  • Check that one account follows another

    Per request
    1 check

Red flag: search that stops after a few days, no check endpoints for campaigns, or tweets that come back without their author.

Sorsa API has 45 endpoints, listed with their fields in Sorsa API endpoints. Search takes X's operators and reaches back to 2006. Follow, retweet, quote and comment checks take one call each, from $0.0014 per check, and X Lists, Spaces, X Articles and "About this account" data each have their own endpoints.

#8. Make sure the bill is predictable

A bill passes this check when you know next month's number before the month starts, failed calls cost nothing, and you decide what happens when the plan runs out. Without a cap you set, a runaway loop turns into an invoice.

The official X API draws on prepaid credits per resource returned. When the balance reaches zero, its pricing page says API requests are blocked until you add credits, and a spending limit blocks them until the next billing cycle.

Red flag: failed or empty calls billed, no spending cap, or overage priced with no limit.

Good to know

Count retries before you compare bills. A pipeline that retries timeouts and 429 errors pays for every retry on an API that bills failed calls. On Sorsa API failed requests are never charged, so a retry costs a request only when it succeeds.

Sorsa API sells monthly plans from 10K to 10M requests, each with a fixed price. GET /key-usage-info (opens in a new tab) shows the requests left on your key and never counts against them. When a plan runs out, calls stop unless you switch on pay as you go: a prepaid balance that pays for extra requests (on Pro, $1.99 per 1,000, the plan's own price), with a spending limit of $100 per billing period by default that you can raise.

#Run the eight checks on 100 free requests

You can run checks 1, 2, 4, 7 and 8 on Sorsa API in about ten minutes with a few of your free requests, because the usage check itself is free. Use your own IDs, handles and search terms: the point is to see your job, not a demo.

  1. Get a key. Sign up and copy your API key from the dashboard. No card, and the 100 free requests never expire.

  2. Read your balance. GET /key-usage-info returns the requests on your key and costs nothing, so you can call it before and after every test.

    Terminal
    curl "https://api.sorsa.io/v3/key-usage-info" \
      -H "ApiKey: YOUR_API_KEY"
    
    Response200 OK
    {
      "key_requests": 100,
      "remaining_requests": 100,
      "total_requests": 0
    }
    
  3. Look up 100 tweets in one request. Send up to 100 tweet IDs or links to POST /tweet-info-bulk. Count the tweets that come back and check that each one carries its author in user: that settles checks 1 and 2 for your data.

    Terminal
    curl -X POST "https://api.sorsa.io/v3/tweet-info-bulk" \
      -H "ApiKey: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"tweet_links": ["1853120044917735424",
                          "1853098761204531200"]}'
    
    Response200 OK
    {
      "tweets": [
        {
          "id": "1853120044917735424",
          "full_text": "Shipped the weekly export: 48K rows, zero gaps.",
          "created_at": "2026-11-01T09:12:40Z",
          "lang": "en",
          "likes_count": 214,
          "retweet_count": 31,
          "reply_count": 12,
          "view_count": 18240,
          "user": {
            "id": "1712900461123481600",
            "username": "lena_signalwatch",
            "display_name": "Lena Signal",
            "followers_count": 3870,
            "verified": false
          }
        }
      ]
    }
    
  4. Page through a follower list. GET /followers returns up to 200 followers per page; pass each next_cursor back until none comes back. A 403 means the key is missing or out of requests, and a 429 means more than 20 requests in one second.

    import requests
    
    URL = "https://api.sorsa.io/v3/followers"
    HEADERS = {"ApiKey": "YOUR_API_KEY"}
    
    params = {"username": "orbit_dataworks_hq"}
    followers = []
    for page_no in range(3):  # three pages are enough for the test
        resp = requests.get(URL, headers=HEADERS, params=params, timeout=30)
        resp.raise_for_status()
        page = resp.json()
        followers.extend(page["users"])
        cursor = page.get("next_cursor")
        if not cursor:
            break
        params["next_cursor"] = cursor
    
    print(len(followers), "followers in", page_no + 1, "requests")
    
  5. Search an old date. Send a query with X's until: operator to POST /search-tweets and confirm the history your question needs comes back, for check 7.

    Terminal
    curl -X POST "https://api.sorsa.io/v3/search-tweets" \
      -H "ApiKey: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"query": "data pipeline until:2012-01-01", "order": "latest"}'
    
  6. Read your balance again. Call GET /key-usage-info once more: remaining_requests has dropped by the number of calls that succeeded, one per call on every endpoint, which settles check 8.

The test uses about five requests; the rest of the 100 stay on the key for the job you came to test.

#Choose the API that passes all eight

The right Twitter API is the one that passes all eight checks on your own job, starting with the price of 1,000 results. For reading public X data that is Sorsa API: tweets from $0.014 per 1,000 in batches of 100, followers from $0.007, 20 requests per second on every plan, 99.9% uptime in its terms, failed requests never charged, and it never asks for your X login. Run your shortlist through the checks, spend a few free requests on your real job, and compare the bill with the one you pay today. Keep the official X API for the posts your own account publishes. Ranked by the same numbers, the field is in best Twitter API.

#FAQ

Which Twitter API should I choose for reading X data?

Choose Sorsa API for reading public X data: it passes all eight checks in this guide. It returns 100 tweets or profiles per request from $0.014 per 1,000 and 200 followers per page from $0.007, answers 20 requests per second on every plan, guarantees 99.9% uptime in its terms and has run since 2022 with 6B+ requests served. The official X API charges $5.00 per 1,000 posts.

Can I test a Twitter API for free before paying?

Yes. Sorsa API gives every new account 100 free requests that work on all 45 endpoints, need no card and never expire, enough for 10K tweets or 20K followers of your own job. The official X API has no free tier: new developers buy prepaid credits before the first read, at $5.00 per 1,000 posts.

What uptime should a Twitter API guarantee?

Look for 99.9% uptime written into the provider's terms, not only on its home page, and for what happens in a month that falls short. Sorsa API guarantees 99.9% uptime in its Terms of Service on every paid plan; if a month's uptime ever drops below 99.5%, it adds bonus requests equal to 10% of your monthly requests.

Which Twitter API is safest for AI agents?

The safest Twitter API for an AI agent is one with no write access, so the agent can search and read but never post, like or follow. Sorsa API is read-only by design and never asks for your X login. Its MCP server, started with npx -y sorsa-mcp, gives Claude, Cursor and other clients 40 tools on one key; Twitter API for AI agents walks through the setup.

Which API do I need to post tweets?

Posting needs the official X API, which publishes as your own account through a developer app and OAuth, at $0.015 per post and $0.200 for a post with a link. Sorsa API is read-only by design, so teams that also post run both: Sorsa API for search, exports and monitoring, and the official X API only for the posts their account publishes.

#How we checked

On November 2, 2026 we read X's pay-per-use rate card and rate-limit reference on docs.x.com and its October 23 notice on billing expansions, and took every official X API figure from those pages that day. We asked Google AI Mode, ChatGPT and Bing Copilot how to choose a Twitter data API, built the eight checks around the criteria they use, and read the guides that rank for the question. Sorsa API's endpoints, page sizes and fields come from its live API reference on the same day; the requests and responses use demo data, not a paid run.

By the Sorsa API team. We build and run Sorsa API, the read-only Twitter/X API and scraper, in production since 2022 (formerly TweetScout API) with 6B+ requests served. About Sorsa API

What changed
  • First published.