Twitter/X API for Academic Research

When X shut down its free Academic Research Track in 2023, the full archive and high-volume access that powered nearly two decades of published Twitter research disappeared. Sorsa API brings that access back, free or discounted for verified non-commercial researchers.

Or just write to us: contacts@sorsa.io


The gap

What researchers lost in 2023

For seventeen years the Twitter API was the dominant data source across political science, public health, computational social science, communication studies, and linguistics — powering work on elections, misinformation, and crisis communication. The Academic Research Track gave qualified researchers full-archive search back to 2006 and roughly 10 million tweets per month. Announced in February 2023, free API access was shut off that spring, and by mid-2023 the academic endpoints were removed entirely. The replacement tiers offered little for research: a $100 basic plan with no historical access, or an enterprise contract starting near $42,000 per month. More than a hundred studies were canceled or suspended. For a deeper look at accessing old tweets, see our guide to historical Twitter data.


Capabilities

Built for research data collection

Primary differentiator

Rehydrate tweet ID datasets

Shared research datasets are distributed as lists of tweet IDs to stay within X's terms. Rehydrating them used to require the official API through tools like DocNow Hydrator or twarc, both of which broke when free and academic access ended. Sorsa's bulk endpoint takes up to 100 tweet IDs per request and returns full tweet JSON with author profiles included, with no developer account and no OAuth. Every tweet also carries view_count and bookmark_count — engagement metrics the official API does not expose for third-party tweets.

1,000,000 tweet IDs on Sorsa, the entire $49 Starter monthly quota
$49
10,000 batch requests · 100 IDs each
The same volume on the official X API, billed per post read
~$5,000
per-post-read pricing

Full-archive search back to 2006

Search the complete public archive using Twitter Advanced Search syntax: from: and to: for account-level collection, since: and until: for date windows, lang: for language filtering, plus exact phrases and hashtags. Build longitudinal datasets, event windows, and keyword corpora the way the Academic Track allowed. See our developer guide to searching tweets via API, or how to download every tweet from an account.

Reproducible, shareable datasets

Every response includes stable tweet IDs and user IDs, so you can publish a terms-compliant ID list alongside your paper and let others reproduce your collection. Output is clean JSON that drops straight into R, pandas, or your notebook — ready for sentiment analysis and other downstream pipelines.

Simple, ethics-friendly access

One API key in a request header, read-only, public data only. There is nothing to post and no account to act on behalf of, which keeps data collection straightforward to describe for IRB and ethics review. No application queue, no approval wait.


How access compares

Academic Track, official X API, and Sorsa

Academic Research Trackpre-2023Official X API2026, pay-per-useSorsaflat per-request
Full-archive searchYes, back to 2006Enterprise tier onlyYes, back to 2006
Monthly volume~10M tweetsMetered per post readFlat plans, any volume
Approval processApplication + review, weeksDeveloper-account approvalNone, instant API key
Auth methodOAuth + bearer tokenOAuth 2.0Single API key header
Cost for 1M tweetsFree, if approved~$5,000$49 Starter quota
Engagement metricsLikes, retweets, repliesLimited for third-party tweetsLikes, retweets, replies + view_count & bookmark_count

Developer experience

Rehydrate a dataset in a few lines

Send up to 100 tweet IDs per call, loop your dataset in batches of 100, and write the results to .ndjson for analysis. Full setup is in the historical-data docs.

Python
import requests

ids = ["1266876474440761346", "1266868259925737474"]  # up to 100 per request

res = requests.post(
    "https://api.sorsa.io/v3/tweet-info-bulk",
    headers={"ApiKey": "YOUR_API_KEY"},
    json={"tweet_links": ids},
)

for tweet in res.json()["tweets"]:
    print(tweet["full_text"], tweet["user"]["username"])

For researchers

Free and discounted academic access

Who qualifies: faculty, postdocs, PhD and master's students, and civil-society researchers on non-commercial projects — master's theses, PhD dissertations, and funded faculty studies all count. What you get: a free request allowance for pilot studies, or a standing discount on paid plans for larger collections. We reply within two business days.

To apply, email contacts@sorsa.io from your institutional address (.edu or your university domain), or use the form below — describe your research question and how you will use the data, and confirm the work is non-commercial. We provide a data-use and compliance letter for IRB and ethics submissions on request. Flat per-request plans also bill as a fixed, predictable line item for grant proposals, unlike the pay-per-use metering of the official API.

Apply for academic access

Working beyond academic research?

If your work is commercial, or you just want standard API access without applying, we have flat per-request plans for any volume. The full breakdown lives on the pricing page.

See pricing

Representative scenario

How researchers use Sorsa

3.2M
tweet IDs = 32,000 batch requests, well under one Pro month

Picture a communications group studying election discourse, holding a 3.2-million-tweet ID dataset shared by a partner lab. After the Academic Track closed, a twarc pipeline like theirs would return only authentication errors. On Sorsa's bulk endpoint, those 3.2M IDs are 32,000 batch requests of 100 — about a third of a single Pro month, and roughly 30 minutes of wall-clock time at 20 requests per second. Rehydration resumes with no enterprise contract and no change to the collection methodology.


FAQ

Frequently asked questions

Can I rehydrate a dataset of tweet IDs with Sorsa?

Yes. The bulk endpoint accepts up to 100 tweet IDs per request and returns full tweet content with author profiles. It works as a drop-in replacement for older hydration tools that depended on the official API, and it needs only an API key, with no developer account and no OAuth.

Does Sorsa cover old tweets and the full archive?

Yes. Full-archive search reaches public tweets back to March 2006, with the standard advanced operators for accounts, date ranges, languages, phrases, and hashtags.

Do I need a Twitter/X developer account or OAuth?

No. Access is a single API key passed in a request header. There is no application queue, no approval wait, and no OAuth flow.

Is the data suitable for IRB or ethics review?

Sorsa is read-only and returns only public data. There are no write actions and no acting on behalf of an account, which keeps collection straightforward to describe. We provide a data-use and compliance letter for IRB and ethics submissions on request.

Do you offer academic discounts or free access?

Yes. We provide free or discounted access for verified non-commercial academic research. Email contacts@sorsa.io from your institutional address with a short description of your project and intended data use, and we will review it.

Will rehydration return deleted or protected tweets?

No. Like any rehydration, only tweets that are still public are returned. Tweets deleted or made private after the original collection cannot be recovered, which is expected and consistent across every method.

Can Sorsa post tweets or run accounts for my study?

No. Sorsa is strictly read-only and covers Twitter/X only. It does not post, reply, follow, or perform any write action.

Start your research

Full-archive Twitter/X search and tweet-ID rehydration on a flat, grant-friendly budget. Read-only, public data, one API key.