What replaced the Twitter academic API
Nothing official replaced it: X closed the free Academic Research track in 2023 and offers no academic tier today, so researchers pay the standard $0.005 per post unless an EU study qualifies under the Digital Services Act.
Short answer: From January 2021 to spring 2023 the track gave approved researchers free full-archive search and 10 million posts a month. The official X API now bills $5.00 per 1,000 posts, capped at 3M a month. For a study's corpus, use Sorsa API: full-archive search from $0.07 per 1,000 tweets, academic access on top, and 100 free requests.
- Endpoint
POST /search-tweets- Page size
- about 20 tweets per request
- Price
- from $0.07 per 1,000
#What replaced the Twitter Academic Research API
No program replaced the Twitter Academic Research API. In September 2026 an X developer-relations engineer put it plainly on the official forum: "There is no separate academic / free research tier today" (opens in a new tab), and pay-per-use is the self-serve path for students and faculty alike.
The track itself opened on January 26, 2021. Approved academics got full-archive search back to 2006, 10 million posts a month and 1,024-character queries, at no cost. It was the data source behind thousands of papers and tools such as academictwitteR and twarc.
The end came in two steps. In February 2023 Twitter announced that free API access would stop. On March 30, 2023 it launched paid tiers (opens in a new tab), retired the old access levels "over the next 30 days" and told academics it was "looking at new ways to continue serving this community". No new program followed, and academic keys stopped working by mid-2023. A survey of 167 researchers (opens in a new tab) published that December counted more than 100 projects canceled, halted or moved to other platforms.
The gap between then and now is easiest to see side by side.
| What a researcher got | Academic Research track, 2021–2023 | Official X API, November 2026 |
|---|---|---|
| Price per 1,000 posts | Free | $5.00, or $15.00 with each post's author from November 22 |
| Monthly ceiling | 10M posts | 3M post reads, then Enterprise from about $42K a month |
| Archive | Back to 2006 | Back to 2006 |
| Who could use it | Approved academic researchers | Anyone with a developer account and prepaid credits |
Price per 1,000 posts
- Academic Research track, 2021–2023
- Free
- Official X API, November 2026
- $5.00, or $15.00 with each post's author from November 22
Monthly ceiling
- Academic Research track, 2021–2023
- 10M posts
- Official X API, November 2026
- 3M post reads, then Enterprise from about $42K a month
Archive
- Academic Research track, 2021–2023
- Back to 2006
- Official X API, November 2026
- Back to 2006
Who could use it
- Academic Research track, 2021–2023
- Approved academic researchers
- Official X API, November 2026
- Anyone with a developer account and prepaid credits
The X forum gives every new question about academic access the same reply: enroll in the standard pay-per-use API, or apply under Article 40 of the EU's Digital Services Act if the study qualifies.
#Three routes to X data for research in 2026
A researcher has three working routes to X data in 2026: the official X API at standard prices, EU researcher access for studies of systemic risks in the EU, and Sorsa API, a Twitter (X) API and scraper with academic access for non-commercial studies.
The official X API, pay-per-use
The official X API sells posts at $0.005 each and profiles at $0.010 (opens in a new tab), from prepaid credits, and its full-archive search reaches back to 2006. You need an approved developer account, a project, an app and its keys. Pay-per-use stops at 3 million post reads a month; past that, only an Enterprise contract.
Two details hit research budgets hardest. From November 22, 2026, authors and other expanded objects are billed (opens in a new tab) like direct reads, so a post with its author's profile costs $0.015. And X issues no letters for ethics boards (opens in a new tab): institutions rely on the public terms and proof of a paid tier.
EU researcher access under the Digital Services Act
Article 40 of the Digital Services Act obliges very large platforms, X included, to give data to researchers whose work studies systemic risks in the EU. Article 40(12) covers publicly accessible data, for researchers at universities and not-for-profit bodies that meet its conditions. Article 40(4) covers non-public data for "vetted researchers", approved by a national Digital Services Coordinator through the EU Data Access Portal (opens in a new tab), open since October 29, 2025.
The route is real but narrow. A thesis on, say, oil prices or brand sentiment doesn't qualify, and on X's forum a PhD student whose request was declined reported getting no feedback at all.
Sorsa API with academic access
Sorsa API gives researchers the same archive through one API key: search with X's operators back to 2006, posts by ID 100 at a time, timelines, replies, quotes and follower lists, with no developer account. Every tweet arrives with its author's full profile at no extra cost, and every key runs at 20 requests per second.
For non-commercial research in any discipline, Sorsa API adds academic access, shaped around the study: requests granted to your project or a deep discount on a plan. PhD and Master's students, postdocs, faculty, research staff and NGO or newsroom researchers apply from an institutional email, and a person on the team reads every application.
#How to collect a study corpus with Sorsa API
A study corpus is the set of posts your analysis runs on: here, every English post about a heat wave in July 2022. Collecting it takes a key, one test request and a short script that keeps a record of what it did.
-
Get your API key. Sign up with your institutional email: the account starts with 100 free requests, no card needed, and the key works on every endpoint.
-
Test your date range. Send one search with the
since:anduntil:operators and look at what comes back before you plan the full collection.Terminal curl -X POST "https://api.sorsa.io/v3/search-tweets" \ -H "ApiKey: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"query": "\"heat wave\" lang:en since:2022-07-01 until:2022-08-01", "order": "latest"}'Response200 OK { "tweets": [ { "id": "1549368207425953792", "full_text": "Third day above 40C. Cooling centers open until 10 pm.", "created_at": "2022-07-19T12:41:07Z", "lang": "en", "likes_count": 212, "retweet_count": 64, "reply_count": 18, "quote_count": 5, "view_count": 48210, "conversation_id_str": "1549368207425953792", "is_reply": false, "user": { "id": "1203345678901234567", "username": "heatwave_watch_desk", "display_name": "Heat Watch Desk", "followers_count": 15420, "created_at": "2019-12-07T09:15:00Z", "location": "London", "verified": false } } ], "next_cursor": "DAACCgACGW5vTq3AJxAKAAMZbm9Ord-x8AgABAAAAAIA" } -
Collect every page and log the run. The
POST /search-tweets(opens in a new tab) endpoint returns about 20 posts per page and anext_cursorfor the next one; the script follows it until it comes back empty and writes a manifest beside the data.collect_study.py import json, time, requests from datetime import datetime, timezone URL = "https://api.sorsa.io/v3/search-tweets" KEY = "YOUR_API_KEY" QUERY = '"heat wave" lang:en since:2022-07-01 until:2022-08-01' manifest = { "provider": "Sorsa API (https://api.sorsa.io)", "endpoint": "POST /v3/search-tweets", "query": QUERY, "order": "latest", "collected_at": datetime.now(timezone.utc).isoformat(), } ids, cursor = [], None with open("posts.ndjson", "w", encoding="utf-8") as out: while True: body = {"query": QUERY, "order": "latest"} if cursor: body["next_cursor"] = cursor r = requests.post(URL, headers={"ApiKey": KEY}, json=body) if r.status_code == 429: # above 20 requests per second time.sleep(1) continue r.raise_for_status() # 403: missing key or no requests left page = r.json() for tweet in page.get("tweets", []): out.write(json.dumps(tweet, ensure_ascii=False) + "\n") ids.append(tweet["id"]) cursor = page.get("next_cursor") if not cursor: break manifest["posts"] = len(ids) with open("post_ids.txt", "w") as f: f.write("\n".join(ids)) with open("manifest.json", "w") as f: json.dump(manifest, f, indent=2) -
Apply for academic access before the full run. Send the application on the academic research page with your study's scope while the free requests cover the pilot; the agreed access appears on the same account and key.
Good to know
A post collected today carries today's like and view counts and its author's current profile, even if it was written in 2014. Deleted posts and protected accounts are never returned, so a list collected in 2022 comes back smaller now. Write both points into your limitations section.
For years-long collections split by month, the guide to historical Twitter data covers backfill windows. To rebuild a published dataset from its ID list instead, rehydrate tweet IDs through POST /tweet-info-bulk (opens in a new tab), 100 posts per request.
#What a study's tweets cost
A corpus of 1 million tweets from archive search costs from $70 on Sorsa API and $5,000 on the official X API, or $15,000 once authors are billed. Switch the size to see your study.
Official X API
$5,000
for 1M tweets from archive search
$0.005 per post
Sorsa API
from$70
for 1M tweets from archive search
from $0.07 per 1,000
The same budget logic holds for other study designs. Rebuilding a published dataset by post ID costs from $0.014 per 1,000 posts, against $5.00 on the official X API. A follower network costs from $0.007 per 1,000 profiles, against $10.00. Prices quoted with "from" are at the lowest per-request rate; academic access lowers what a study pays further.
Time matters on a thesis schedule too. At 20 requests per second, 1 million tweets from search take about 42 minutes, and 1 million posts by ID about 8 minutes.
#Make your data hold up in review
Reviewers and ethics boards ask the same three things about X data: where it came from, whether someone else can rebuild it, and what it leaves out. A record kept during collection answers all three.
Fill in your study below to get a data-collection paragraph for the methods section.
Posts were collected through Sorsa API (https://api.sorsa.io), an independent API for public X (Twitter) data, using its full-archive search with the query "heat wave" lang:en for posts published from 1 July 2022 to 31 July 2022 (UTC). Collection ran on 2 November 2026. Engagement counts and author profiles are as of that date, and posts deleted or made protected before it were not returned. Post IDs and the collection script are available, so the corpus can be rebuilt.
Keep with your data: the query, the date window, the collection time, the endpoint (POST /v3/search-tweets) and the post ID list.
The paragraph updates as you type; copy it into your methods section and keep the manifest with your data.
Ethics boards usually ask a short list of questions. Sorsa API's answers:
- What data? Public posts and profiles only: no protected accounts, no direct messages.
- Any interaction with users? None. Sorsa API is read-only: it never posts, likes, follows or messages.
- Whose X account is used? None: Sorsa API never asks for your X login.
- What does the provider keep? Request logs for one year and full responses for 30 days. X never learns who is asking.
- Paperwork? On request, the team writes a short letter about the data source for your ethics board.
Sharing follows X's Developer Policy (opens in a new tab): publish post IDs and user IDs, not full posts. The policy caps sharing at 1.5 million post IDs per entity every 30 days without X's written permission, and lets academic researchers share IDs for non-commercial research approved by X in writing or for peer review. For datasets built to train models, the guide to a Twitter dataset for machine learning covers the training clause.
#How to choose a Twitter API for academic research
The tests that matter for a study are price per 1,000 posts, what each post carries, archive depth, a monthly ceiling above the corpus, setup a student can finish in a day, speed and an academic offer. Sorsa API meets each with a number, and because it is read-only, no one's X account is ever at risk.
| Test | Sorsa API | Official X API |
|---|---|---|
| Price per 1,000 tweets, archive search | from $0.07 | $5.00 ($15.00 with authors from November 22) |
| Price per 1,000 posts by ID | from $0.014 | $5.00 |
| Author profile on each post | Included | Billed as a user read from November 22 |
| Archive | Back to 2006 | Back to 2006 |
| Monthly ceiling | Your plan or agreed academic access | 3M post reads, then Enterprise |
| Setup | One API key, no developer account | Developer account, project, app, keys |
| Speed | 20 requests per second on every plan | Rate limits per endpoint |
| Academic offer | Granted requests or a deep discount | None since 2023 |
Price per 1,000 tweets, archive search
- Sorsa API
- from $0.07
- Official X API
- $5.00 ($15.00 with authors from November 22)
Price per 1,000 posts by ID
- Sorsa API
- from $0.014
- Official X API
- $5.00
Author profile on each post
- Sorsa API
- Included
- Official X API
- Billed as a user read from November 22
Archive
- Sorsa API
- Back to 2006
- Official X API
- Back to 2006
Monthly ceiling
- Sorsa API
- Your plan or agreed academic access
- Official X API
- 3M post reads, then Enterprise
Setup
- Sorsa API
- One API key, no developer account
- Official X API
- Developer account, project, app, keys
Speed
- Sorsa API
- 20 requests per second on every plan
- Official X API
- Rate limits per endpoint
Academic offer
- Sorsa API
- Granted requests or a deep discount
- Official X API
- None since 2023
The first row decides most grant budgets: a 3M-tweet corpus from archive search costs from $210 on Sorsa API and $15,000 on the official X API, before authors are billed.
#Start your study on 100 free requests
X ended free academic access in 2023, and its pay-per-use price of $5.00 per 1,000 posts now applies to every study. For a corpus searched back to 2006 at from $0.07 per 1,000 tweets, use Sorsa API: test your date range on the free requests today, then apply for academic access with your study's scope.
#FAQ
Is the Twitter Academic Research API still available?
No. Twitter retired the Academic Research track in spring 2023, and X confirmed on its developer forum in September 2026 that there is no separate academic or free research tier. Researchers now use the standard pay-per-use X API at $0.005 per post, apply under the EU's Digital Services Act if the study qualifies, or use a third-party API such as Sorsa API.
Is there free Twitter API access for researchers?
Not from X: its API has had no free read tier since 2023, and academics pay the same prices as everyone else. EU researchers studying systemic risks can apply for data under Article 40 of the Digital Services Act. Sorsa API gives every account 100 free requests that never expire, about 2,000 tweets by search, and grants requests to approved non-commercial studies.
Which API should I use for academic research on Twitter?
For most studies, use Sorsa API: full-archive search back to 2006 from $0.07 per 1,000 tweets, posts by ID from $0.014 per 1,000, each with its author's profile, at 20 requests per second with one key. Academic access adds granted requests or a deep discount. The official X API charges $5.00 per 1,000 posts and caps pay-per-use at 3M a month.
Can I cite data from Sorsa API in a paper?
Yes. Name Sorsa API and its URL, the endpoint, the exact query and date window, and the collection date in your methods section, and publish the post IDs with your code so others can rebuild the corpus. A citation line for Sorsa API reads: Scouts Labs Inc, Sorsa API: Twitter (X) API and scraper, https://api.sorsa.io, accessed on your collection date.
Does DSA Article 40 cover researchers outside the EU?
Only for research on systemic risks in the EU. Article 40 of the Digital Services Act ties access to that purpose, not to where the researcher works, and non-public data needs vetted status from an EU Digital Services Coordinator. A study on another topic or region falls outside it and goes through the standard X API or a third-party API.
#How we checked
On November 2, 2026 we read X's pricing page and changelog, the March 2023 tiers announcement, X's October 2026 notice on billing expansions, and the 2026 forum threads where X staff answer academic-access questions. We read the European Commission's FAQ on DSA data access and X's Developer Policy. Endpoints, parameters and fields come from Sorsa API's live API reference of the same day; the request and response are written from it.
Sources
- X API pricing (opens in a new tab)
- X Developer Platform changelog: Academic Research track (Jan 26, 2021) and Pay-Per-Use launch (Feb 6, 2026) (opens in a new tab)
- Announcing new access tiers for the Twitter API, March 30, 2023 (opens in a new tab)
- X staff: no separate academic tier, September 21, 2026 (opens in a new tab)
- X staff: no ethics-committee letters, September 9, 2026 (opens in a new tab)
- X API PPU expansions update, October 23, 2026 (opens in a new tab)
- European Commission: FAQs on DSA data access for researchers (opens in a new tab)
- X Developer Policy (opens in a new tab)
- Columbia Journalism Review: What happened to academic research on Twitter? (opens in a new tab)
- Sorsa API reference: Search Tweets (opens in a new tab)