Twitter API free in 2026? What you can still read for $0
Is the Twitter API free? Not for new developers. What X's free credits buy in reads, what breaks when old free-tier code hits a 402, and the $0 ways to read X.
Piyushh · October 14, 2026 · 6 min read
No. New developers can no longer get the Twitter API free tier. Since February 6, 2026, X's self-serve default has been pay-per-use: every read deducts from credits you buy, at $0.005 per post and $0.010 per user or follower, as listed on X's pricing page on Oct 14, 2026. For $0 you can still get up to $70 in starter credits (card required), very cheap reads of your own data, and free scaled access if X approves your app as a public utility.
This post covers reading X data from code: what the free credits buy, what breaks when a script written for the old free tier runs against pay-per-use, and the honest $0 options. For posting and DMs, XAutoDM has is the Twitter API free in 2026. Every X fact here was checked on docs.x.com on Oct 14, 2026.
What happened to the Twitter API free tier
X's changelog covers the change in three entries.
- On August 22, 2025, X removed the like and follow endpoints from the Free tier "to combat abuse, platform manipulation, and fake engagement."
- On October 20, 2025, a closed pilot of credit-based pricing started, with post reads at $0.005 and user reads at $0.01.
- On February 6, 2026, pay-per-use launched for everyone: "Public Utility Apps continue to receive free scaled access. Recently active Legacy Free tier users receive a one-time $10 voucher."
The Legacy Free tier ended with a $10 voucher, and today's pricing page has no free plan. It says "No subscriptions, contracts, or minimum spend," and you start by buying credits. One leftover line can mislead you: X's developer guidelines still say the "free tier is non-commercial only." No free tier exists to sign up for.
The Public Utility route exists, but few projects qualify. X's docs call it "a credit program for public-good work on the X API." You request it from a live listing on X's app Exhibit, and "you cannot mark your own listing as a utility." Plan on paying.
What breaks when old free-tier code hits pay-per-use
Everyone hits the same failure, HTTP 402. A Japanese bot developer, @ShobonRanking, posted the body their bot started getting in April (post):
error: Request failed with code 402
title: "CreditsDepleted"
detail: "Your enrolled account does not have any credits to fulfill this request."
Many hobby bots died this way, and mostly nobody noticed at first. "I just noticed the bot wasn't tweeting, so I went to check the logs and apparently twitter removed the free tier," wrote @dailytboi in September (post). @Hanyuu_status, the account that announces DJ changes for an internet radio stream, explained that "all credits they gave free users when this switch happened have been used up" (post). @PapaScarpin spent two days debugging an AI social media manager before finding that "my code wasn't the problem at all my X Developer account simply has $0 API credits" (post).
If you maintain a script that reads X, check these behaviours on the pricing page before the balance runs out:
- A zero balance blocks requests. The balance can go "slightly negative," and after that requests stay blocked until you top up.
- Auto-recharge doesn't run at zero. It's "paused at zero or negative balance," so you have to add credits by hand first.
- Auto-recharge fires at most once every 5 minutes, so a bursty job can still see out-of-credit errors with it switched on.
- Free credits expire. Starter credits lapse three months after they're granted, and they're spent before purchased ones.
- Paying doesn't remove rate limits. Recent search allows 450 requests per 15 minutes per app, returns at most 100 posts per request, and only covers the last 7 days.
In code, treat a 402 as a hard stop that raises an alert. Retrying it in a loop only fills your logs.
What the Twitter API free credits buy in reads
X's free credit page lists two one-time offers: $20 when you save your first eligible card, and a match of your first auto-recharge up to $50. Prepaid cards don't qualify, and each physical card can earn the credit once across all accounts. That's up to $70 total.
At the listed read prices, that money goes this far:
| Read job | Unit price | $20 card credit | Full $70 |
|---|---|---|---|
| Posts from search or timelines | $0.005 per post | 4,000 posts | 14,000 posts |
| User profiles | $0.010 per user | 2,000 profiles | 7,000 profiles |
| Someone else's followers | $0.010 per user | 2,000 followers | 7,000 followers |
| Your own posts, followers, bookmarks (Owned Reads) | $0.001 per resource | 20,000 resources | 70,000 resources |
For typical data jobs, that works out to:
- A keyword monitor that sees about 100 new tweets a day reads 3,000 posts a month, which costs $15. The $20 credit lasts about five weeks.
- Exporting the followers of a 2,000-follower account once uses the whole $20.
- A personal dashboard over your own timeline and bookmarks costs close to nothing at the Owned Reads rate. @owengretzinger set up his agent to index everything he bookmarks into markdown files "now that owned reads are ~free" (post).
The starter credits are generous for a prototype, but anything that reads other people's data every day burns through them within weeks. Our Twitter API cost calculator works through larger jobs.
Free Twitter API options that cost $0
If you need X data without paying anyone, the list is short:
- You can use X itself in a browser. Advanced search with
since:anduntil:works for manual research, and our guide to searching tweets by date covers the operators and how to download your own archive. - Free lookup tools work for one-off checks. ChatterAPI's X tweet search and X user lookup run live queries in the browser for free, with no signup. They aren't built to feed a pipeline.
- Public mirrors used to fill the gap. Nitter instances served X without an account for years, but in 2026 most of them went dark after X sent legal letters. Our post on Nitter alternatives for developers covers where that stands.
We won't recommend scraping. X's developer guidelines list "Non-API access" as prohibited: "scraping and browser automation = permanent ban." The scraping libraries break anyway. snscrape's Twitter scrapers stopped working in June 2023, when X put content behind a login, as our snscrape alternative page details.
Reading X data with 100 free credits
ChatterAPI is an independent API for X and Reddit data, not affiliated with X Corp. You sign up with Google, get 100 free credits with no card, and read public X data with one key and no X developer app. X reads cost 3 credits per page of about 20 results. That makes 100 credits about 33 pages: roughly 660 tweets or followers, or 33 profile lookups.
Below is a user lookup with x.user. The response is a real sample recorded with a test key, so it shows charged: 0, trimmed to the useful fields:
curl "https://api.chatterapi.com/v1/x/users/levelsio" \
-H "Authorization: Bearer $CHATTERAPI_KEY"
{
"data": {
"id": "1577241403",
"handle": "levelsio",
"followers": 974707,
"following": 3276,
"blueVerified": true,
"canDm": false,
"createdAt": "2013-07-08T09:31:59.000Z"
},
"credits": { "charged": 0, "remaining": 719 },
"requestId": "req_01M4X1HX40NTY80C1W38"
}
On a live key that call costs 3 credits. When the balance runs out, ChatterAPI also returns a 402 with a machine-readable code, so your script can stop cleanly. Per the errors reference, the body looks like this:
{
"error": {
"code": "insufficient_credits",
"message": "This call costs up to 2 credits and you have 1.",
"retryable": false,
"topupUrl": "https://chatterapi.com/dashboard/billing"
}
}
This Python loop reads a few pages of tweet search and stops on that 402 instead of retrying:
import os, requests
URL = "https://api.chatterapi.com/v1/x/tweets/search"
HEADERS = {"Authorization": f"Bearer {os.environ['CHATTERAPI_KEY']}"}
params = {"q": '"crm recommendation"', "sort": "latest"}
for _ in range(5): # 5 pages = 15 credits
r = requests.get(URL, headers=HEADERS, params=params, timeout=60)
if r.status_code == 402:
print("Out of credits:", r.json()["error"]["message"])
break
body = r.json()
for t in body["data"]:
print(t["createdAt"][:10], t["author"]["handle"], t["url"])
print("credits left:", body["credits"]["remaining"])
if not body["page"]["hasMore"]:
break
params["cursor"] = body["page"]["nextCursor"]
After the 100 credits are gone, plans start at $19 a month for 25,000 credits.
When paying X directly is the better call
For some jobs, X's own pay-per-use is the right answer even though it isn't free:
- Small personal tools. If the job costs a few dollars a month, X's starter credits cover it, and there's no plan minimum afterwards.
- Reading your own account's data. Owned Reads cost $0.001 per resource, which is hard to beat for dashboards and backups.
- First-party needs. If you need posting, X's newest endpoints or a direct relationship with X, use your own key. Our X API key guide walks through the setup.
A hosted API makes more sense when you read other people's public data every day, when you also need Reddit, or when you'd rather not run an X developer app. The guide to scraping Twitter and Reddit together and our comparison with other third-party X APIs cover that case.
Try it
Look up any account in the free X user lookup, then make the same call from code. Sign up with Google to get 100 free credits without a card, which covers about 33 pages of tweets. Plans start at $19 a month for 25,000 credits.