Skip to content
API PricingAPI ChangesDeveloper ToolsTwitter APIPay Per Use

GUIDE

X API Pricing in 2026: The Full Timeline, the Real Rate Card, and a Survival Playbook by Workload

The 2026 X API pricing story in full: the February pay-per-use switch, the April link-tweet jump to $0.20, the frozen legacy tiers, and a workload-by-workload plan for what to pay, cut, or move.

TwitterAPIs··Updated July 4, 2026
The 2026 X API pricing timeline and a workload-by-workload cost survival plan for developers, bots, and data pipelines

The 2026 X API story is bigger than the one number that went viral. Yes, a post with a link now costs $0.20, and yes that is a 1,900 percent jump from the old flat write rate. But the link price is the visible tip of a full pricing rebuild that started months earlier, when X switched new developers to pay-per-use billing and quietly froze the fixed monthly plans that a decade of tools were built on. If you only budgeted around that headline number, you missed the two changes that decide whether your project survives the year.

TL;DR: X rebuilt its API pricing across 2026. On February 6, 2026 pay-per-use became the default for new developers, replacing flat monthly plans with prepaid credits drawn down per request, per the X Developer Community. On April 16, 2026 a post containing a URL jumped to $0.20, plain writes rose to $0.015, and owned-account reads fell to $0.001. The old Basic and Pro plans still work for existing subscribers but are closed to new signups. If you auto-publish links you are paying more than 13 times per post. If you only read public tweets, a per-call read API at $0.04 per 1,000 reads is the cheaper path. This guide gives you the full timeline, the real per-action rate card, a six-archetype breakdown of what each workload now pays, and the exact migration playbook for reads and writes.

This is the complete field guide to X API pricing in 2026, written for the developer who has to make a real decision this week, not just read a summary. It covers how the pricing got here across the whole year, what every action actually costs on the current rate card, which of six common workload shapes got hit and by how much, a twelve-month budget model for three real projects, and the step-by-step migration path for both read-heavy and write-heavy builds. Where the cost math gets deep, the Twitter API cost math guide carries the full spreadsheet, and the 2026 cost benchmark across eight providers ranks the read alternatives by measured per-1,000 cost.

Per-action X API rates in 2026: plain post, post with a URL, standard read, and owned read compared

The chart above is the whole tension in one frame. A single classifier decision, does this post contain a URL, splits the write price by more than an order of magnitude. Everything else in this guide flows from understanding which side of that line your workload sits on, and whether you even need the write side at all.

The 2026 Pricing Timeline: How X Got Here

The 2026 pricing was not one announcement. It arrived in stages across the year, and each stage changed the math for a different kind of developer. The sequence matters because the February switch to pay-per-use is what removed the safety of a predictable monthly bill, and the April rate change is what made one specific action, posting a link, expensive enough to break projects. Read together, they signal a deliberate move away from flat plans toward metered access that scales with how heavily you use the platform.

The 2026 X API pricing timeline: February pay-per-use launch, April link-price jump, and the frozen legacy tiers

The first move landed on February 6, 2026, when X made pay-per-use the default billing model for new developers. Instead of choosing a monthly tier, you now load prepaid credits and get charged per request, a shift reported by MediaNama at the time and framed by the platform as broadening access, a framing echoed in Social Media Today's coverage of the usage-based charges. The practical effect was that your bill stopped being a fixed line item and started tracking your traffic, which is fine when traffic is small and painful when it is not.

The second move landed on April 16, 2026, effective a few days later, and this is the one that went viral. Owned-account reads dropped to $0.001 per read, standard plain writes rose from $0.010 to $0.015, and posts containing a URL jumped to $0.20 per request. The official changelog on the X Developer Community is the authoritative record, and TechCrunch covered the link-price change and its effect on news accounts specifically. The owned-read cut was a genuine gift to anyone syncing their own account data. The link-write jump was a wall for anyone auto-posting URLs.

The third move was less an event than an absence. The old fixed plans, Basic at $200 per month and Pro at $5,000 per month, were closed to new signups but kept alive for developers who had already subscribed before the cutover. That freeze quietly split the developer base into two classes: grandfathered accounts still running on predictable flat pricing, and everyone new paying per request with no flat-rate escape hatch. If you are researching whether the Twitter API is free in 2026, this freeze is the reason the answer is more complicated than a yes or no.

The direction across all three stages is consistent. X is steering high-frequency automated posting toward metered or enterprise pricing, making first-party owned reads cheap to encourage account owners to use the API on their own data, and closing the flat-rate door that let a hobby project run for years on a fixed low monthly bill. Whether that is reasonable platform economics or a squeeze on the developer ecosystem depends on where you sit, but the mechanism is not ambiguous.

The Real Per-Action Rate Card

To plan against 2026 pricing you need the per-action rates, not the headline. The official X API now bills most work per resource: a post read is one charge, a user read is another, a write is another, and a link-write is in a band of its own. The legacy fixed tiers still exist for grandfathered accounts, and a direct third-party read API bills on a different basis again. Putting all of them on one card is the only way to see what your specific mix of actions costs.

Legacy fixed tiers versus 2026 pay-per-use across price, reads, and posts

Here is the official X API side, drawn from the published per-resource rates and the official X API pricing documentation, cross-checked against the X API endpoint reference. Treat every figure as dated to mid-2026, because pricing on this platform moves and a number that is current today may not be next quarter.

Action on the official X API2026 rateNotes
Post read (standard)$0.005 per readroughly $5.00 per 1,000 reads
Owned-account read$0.001 per readcut in the April change
Plain post created$0.015 per postup from $0.010
Post containing a URL$0.20 per postthe April link band, up 1,900 percent
Legacy Basic plan$200 per monthgrandfathered only, roughly 15,000 reads and 50,000 posts
Legacy Pro plan$5,000 per monthgrandfathered only, about 1,000,000 reads and 300,000 posts
Enterprisefrom about $42,000 per monthnegotiated, for high-volume and restricted actions

Two rows carry most of the pain. The $0.20 link-post band is the one everyone talks about, and the $5.00-per-1,000 standard read rate is the one that quietly makes read-heavy analytics expensive. Both have cheaper alternatives, which is the whole back half of this guide. The enterprise figure of an estimated $42,000 per month is worth stating plainly because it is the real floor for the actions that left self-serve, and it is far out of reach for the hobby and indie projects that made up much of the old ecosystem.

Now the other side of the card. A direct read API bills per API call rather than per resource, and one call returns a batch, so the per-tweet cost is far lower than the per-call number suggests. The rates below are the standard TwitterAPIs card, where a single call returns roughly 20 tweets.

Action on TwitterAPIsRateWhat it covers
Standard read$0.0008 per callsearch, user lookups, timelines, follower graph; about $0.04 per 1,000 tweets
Simple write$0.0008 per callfavorite, retweet, bookmark, follow, and their undos, plus delete
Create a post$0.0016 per calltweet creation
Direct message read$0.0016 per calldm list and dm conversation
Full account history$0.0024 per calla user's complete tweet history
Full thread expansion$0.004 per callan entire thread pulled in one call
Free signup credit$0.50about 625 standard calls, no credit card

The structural difference is the point. The official API concentrates cost in per-resource reads and, above all, in link-writes, while a per-call model spreads a flat low rate across reads and simple writes and reserves a modest premium for a few heavy actions. For a read-heavy project the gap is the difference between $5.00 and $0.04 per 1,000 tweets. The cost-per-1,000-calls benchmark normalizes every provider onto that single unit if you want to audit the numbers line by line.

How Pay-Per-Use Billing Actually Works

Before you model any cost, it helps to understand the billing mechanism itself, because pay-per-use behaves differently from the flat plans it replaced. Under the new model you do not subscribe to a tier with a monthly allowance. You load prepaid credits into your account, and every request draws down that balance at the per-action rate for whatever endpoint you hit. There is no monthly minimum, which is a genuine improvement for spiky or seasonal workloads, and there is no free monthly read allowance either, which is the loss that broke so many hobby projects.

The absence of a floor cuts both ways. On the flat Basic plan you paid $200 whether you made ten calls or ten thousand, so a light user overpaid and a heavy user got a bargain. Pay-per-use removes that cross-subsidy: a light user now pays almost nothing, and a heavy user pays in proportion to usage with no ceiling to cap the bill. For a read-heavy analytics build that used to hide inside a flat monthly plan, this is the moment the true cost of the workload becomes visible, and it is often much higher than the old flat line item suggested.

Two mechanics inside the model are easy to miss and expensive to ignore. The first is a monthly cap on standard post reads, reported around two million reads per month on the pay-per-use path, which means a high-volume monitor can hit a hard ceiling regardless of budget, not just a big bill. The second is the deduplication window on the official API: re-fetching the same resource within a single UTC day does not always incur a second charge, so a naive job that re-reads the same tweets every hour is not billed as many times as the raw call count implies. Both mechanics change your real cost, and both are the kind of detail a per-call read API sidesteps entirely by simply charging a flat rate per request with no cap and no window arithmetic to reason about.

There is one more operational reality worth planning for: prepaid credit is a balance you have to watch. Under a flat plan you never thought about your remaining allowance because it reset every month. Under pay-per-use a runaway job, a retry storm, or a single misconfigured cron can drain a balance quietly, and the first sign is often a failed request when the credit hits zero. The defensive habit is to set a low-balance alert, cap any batch job with a hard page limit like the loops in the code samples below, and reconcile spend against expected volume weekly. None of that is hard, but it is a discipline the old model never demanded, and the projects that got surprised by a fast-draining balance were usually the ones that carried a flat-plan mindset into a metered world.

The 2026 model also bundled platform credits toward X's own AI products into some developer spending, a detail Social Media Today noted in its coverage of the pricing revamp. That bundling is a signal about where the platform wants developer spend to flow, and it is worth factoring into any long-term dependence decision, because a provider steering you toward its adjacent products is a provider whose incentives may diverge from yours over time. The practical takeaway is simple: understand the meter before you plan the budget, because pay-per-use rewards a tightly scoped workload and punishes a loose one far more directly than a flat plan ever did.

The link-tweet price dominated the conversation for a simple reason: it is the only 2026 change that raised a single action by more than an order of magnitude, and it targets a behavior that a huge share of automated accounts do on every post. Understanding exactly how the band is triggered, and why the reply workaround exists, is what lets you decide whether it touches you at all.

The link-tweet band: a single URL flips a plain post into the most expensive write action

The mechanism is a binary classifier on the post body. If the text contains an http or https string anywhere, the whole post bills at $0.20 regardless of what else it says. There is no partial rate for a short link, no discount for linking to your own domain, and no way to declare a post link-free once a URL is present. The detection is a plain string match on the URL shape, the same scheme-prefixed pattern the WHATWG URL standard describes, so any recognizable link token counts. A plain post is still $0.015, so the entire cost difference hinges on that one classifier decision.

The behavior that gets caught is common and, for the accounts hit hardest, unavoidable. Newsletter relays post a link on every issue. Blog syndicators post a link to every article. Affiliate accounts post a link by definition. Public-service alert feeds post a link to the source on every warning. For all of them the per-post cost did not nudge, it changed category, and a monthly bill that used to be rounding error became a real line item overnight.

The platform pushed back on one common assumption. When developers speculated that link posts were also being suppressed in reach, X's head of product Nikita Bier stated there is "no code that is deboosting links," and suggested publishers add context around a link rather than posting a bare headline. That does not lower the price, but it matters for how you think about the tradeoff: the cost is real, the alleged reach penalty is disputed by the platform. Techmeme founder Gabe Rivera captured the publisher math bluntly, noting that a news site tweeting links automatically now faces hundreds of dollars a month, which is why some publishers, Techmeme among them, stripped links from their automated posts rather than pay the band.

The workaround that emerged is mechanical. Because the band is evaluated on the post body, you can post the main content as a plain $0.015 post and drop the URL in a reply, which is billed at the standard write rate rather than the link rate. A post-plus-reply pattern costs roughly $0.015 plus a second standard write instead of a flat $0.20. It changes how the post renders in a follower timeline, so it is not free of tradeoffs, but at volume it is the single largest write-side saving available short of an enterprise contract. If posting is central to your build, the Twitter bot guide for 2026 covers which actions still work on self-serve after the change.

Start building with TwitterAPIs

$0.04 per 1,000 tweets. $0.50 free credits. No credit card required.

The Six Workload Archetypes and What Each One Now Pays

The 2026 change does not hit every project the same way, and the fastest way to know your exposure is to match your build to one of six common workload archetypes. Each archetype has a different dominant action, so each one lands in a different place on the new rate card. Some barely notice the change, one benefits from it, and two get hit hard enough to force a redesign. Find yours before you spend an hour modeling costs you may not owe.

The six workload archetypes and where each one lands on the 2026 X API rate card

The read-only monitor consumes public tweets for sentiment analysis, brand monitoring, research, or dashboards, and never posts. This archetype is the most common and, on the official API, one of the more expensive at $5.00 per 1,000 standard reads. It is also the easiest to move, because reading public data never required the write path at all. A per-call read API at $0.04 per 1,000 covers it at a fraction of the cost, which is why read-only projects were the first to migrate. To make the gap concrete, a monitor pulling 250,000 tweet reads a month for a competitive-intelligence dashboard pays about $1,250 a month on the official standard read rate and about $10 a month on the per-call path, the same data at roughly one percent of the cost. If this is you, the best Twitter API for scraping comparison is the natural next read, and the how to scrape tweets walkthrough covers the mechanics end to end.

The link-publisher bot auto-posts content that always includes a URL: newsletter relays, RSS-to-X bridges, blog syndicators, and affiliate feeds. This is the archetype the link band was built to price, and it is the one most likely to break. Every post is a link post, so the per-post cost is more than 13 times a plain write. The survival moves are the reply workaround, a hard audit of how many posts truly need a URL, or migrating the feed to another platform.

The owned-account manager reads and posts only from accounts it controls, such as a scheduling tool syncing your own timeline. This archetype is the one that benefits, because the April change cut owned-account reads to $0.001, five times cheaper than a standard read. Its plain writes rose slightly to $0.015, but unless it posts links at volume, the net effect is a small win.

The follower-graph analytics build pulls followers, following, and relationship data for growth tooling or audience research. On the official API this is standard-read work at $5.00 per 1,000, and the graph endpoints are exactly where volume adds up fast. A direct API prices follower-graph reads at the flat $0.0008 standard rate, so this archetype gets the same 100x-class read saving as the monitor. The export followers guide covers the endpoint mapping.

The engagement automation build follows, likes, retweets, or bookmarks programmatically. On the official self-serve API these actions were tightened in the repricing, which is the change that forces a redesign rather than a bigger bill. A direct API keeps them available as simple writes at $0.0008 per call, using a token passed per request, so this archetype has a first-party-parity path that does not require enterprise access.

The historical-archive puller pulls a user's full tweet history or complete threads for research or backup. This is heavier work, and it is priced accordingly: full history at $0.0024 per call and full thread expansion at $0.004 per call on a direct API, still far below official-API resource pricing at volume. The scrape tweet history guide and the full thread fetch guide cover the mechanics.

Naming your archetype does most of the decision work. Two of the six, the link-publisher and the engagement build, are the ones that were structurally broken by the change. The other four are either cheaper to run than before or trivially cheaper to move. That is a far more useful lens than a blanket "the API got expensive," because it tells you whether you have a pricing problem, an architecture problem, or no problem at all.

To make the archetypes concrete at a glance, here is how the six shake out on the two questions that decide your fate: did the change raise your cost, and does a cheaper path exist. The read-only monitor, the follower-graph build, and the historical-archive puller all have a clean, large read saving available. The owned-account manager came out slightly ahead on its own. The link-publisher and the engagement build are the two that were structurally disrupted, one by price and one by access, and they are the two that need the most deliberate response. Keep that split in mind as the cost model below turns three of these archetypes into real annual numbers.

The Twelve-Month Cost Model: Three Real Budgets

Abstract per-action rates do not communicate impact the way an annual budget does, so here are three worked twelve-month models for three of the archetypes above. Each one uses the published 2026 rates and a realistic volume, and each one compares the official-API path against the cheapest alternative for that workload. The numbers are illustrative but the method is exactly what you should run against your own volume before you commit.

Twelve-month cost for a link-publisher bot: old flat rate versus the 2026 pay-per-use bill

Start with the link-publisher bot, the archetype the change hit hardest. Assume a modest cadence of 20 link-posts per day, roughly 600 a month, which describes a single active newsletter or alert account. Under the old flat write rate of $0.010, those 600 posts cost an estimated $6.00 a month, about $72 across a year, the kind of number nobody budgets for. At the $0.20 link band, the same 600 posts cost an estimated $120 a month, about $1,440 across a year. The workload did not change, the output did not change, and the annual bill rose by a factor of 20. Apply the reply workaround, moving each link into a second standard write, and the per-post cost falls to roughly $0.015 plus $0.015, or an estimated $18 a month and $216 a year, still triple the old cost but a fraction of the link band.

Now the read-only monitor. Assume 100,000 tweet reads a month, a reasonable volume for a brand-monitoring dashboard covering a busy topic. On the official X API standard read rate of $0.005, that is $500 a month, about $6,000 a year. On a marketplace scraper actor at roughly $0.40 per 1,000 reads once proxy overhead is counted, it is about $40 a month, roughly $480 a year. On a per-call read API at $0.04 per 1,000, it is $4 a month, about $48 a year. The spread across a full year, $6,000 versus $48, is why read-only projects treated the 2026 change as a prompt to re-examine the read side rather than a crisis.

Cost to read 1,000 tweets by path: official standard read, marketplace scraper actor, and a per-call read API

The bar above is the read-side story in one frame, and it is the single chart most read-heavy teams should internalize. The distance between the official standard read rate and a per-call read API is not a discount, it is a change of order of magnitude, and it is why the read split is the highest-leverage move for the four archetypes that read more than they write.

Finally the historical-archive puller, the heaviest of the three. Assume a research project pulling 5,000 full tweet histories a month at $0.0024 per call on a direct API, plus 2,000 full thread expansions at $0.004 per call. That is about $12 for the histories and $8 for the threads, roughly $20 a month and $240 a year for a workload that would run into serious money on official resource pricing at the same volume. Add a fourth, the engagement automation build, to see the non-price case. Assume it performs 30,000 simple write actions a month, a mix of follows, likes, and bookmarks for a modest growth tool. On the official self-serve API those actions were tightened out of easy reach, so the honest official-path cost is either an enterprise contract in the tens of thousands or a feature that quietly stops shipping. On a direct API at $0.0008 per simple write, the same 30,000 actions cost about $24 a month, roughly $288 a year. That is not a saving on a bill, it is the difference between a feature existing and not existing, which is why the engagement archetype is a redesign story rather than a budget story.

The lesson across all four budgets is the same: the annual figure, not the per-call rate, is what should drive the decision, and the annual figure swings enormously based on which path you route each workload through. The cost math guide carries the full per-workload spreadsheet if you want to model your own numbers.

The Decision Tree: Stay, Split, or Leave

Once you know your archetype and your annual budget, the decision narrows to three paths, and the choice is usually obvious. You either stay on the official API and absorb the new prices, split your reads onto a cheaper per-call API while keeping writes first-party, or leave X for another platform entirely. The right answer depends on one question above all others: do you actually need to write to X, or only to read from it?

The 2026 decision tree: stay on the official API, split reads onto a per-call API, or leave the platform

Stay on the official API when posting is core and first-party. If your product must publish tweets programmatically, the official API is still the only first-party write path, and you manage the link cost with the reply workaround plus a hard audit of how many posts truly carry a URL. Owned-account managers that mostly sync their own data also have a good reason to stay, because the April owned-read cut to $0.001 actively rewards first-party use. Staying is the right call for a minority of builds, and it is a deliberate choice rather than a default.

Split your workload when you read far more than you write, which describes most projects that touch the API. Keep any genuine first-party write on the official API and route every read through a per-call read API at $0.04 per 1,000. This is the highest-leverage single change available, because it moves the expensive part of your bill, the reads, onto the cheapest path while leaving the small write portion where it has to be. The split is usually a few hours of work, and the migration guide from twitterapi.io or the RapidAPI alternative breakdown cover the mapping if you are already on a third-party host.

Leave the platform when the workload is a link-publisher feed with no revenue to absorb the new cost, or an engagement build that lost its self-serve actions. This is the hardest path and the saddest, but for a volunteer alert feed or a non-commercial notification bot, the honest answer is often that X no longer fits the budget. That is why the first half of 2026 saw a steady migration of notification feeds to Bluesky, Telegram, and Discord, a pattern the field notes below make concrete. The Twitter API v2 versus TwitterAPIs comparison is the side-by-side to read before you commit to any of the three.

The Read-Path Playbook: Moving Reads to a Per-Call API

For the split path, moving reads off the official API is the concrete work, and it is usually small because the data shapes line up. A per-call read API removes the two things that make the official read path painful: the OAuth setup and the per-resource read rate. Authentication collapses to one bearer token, the request is a plain REST call, and the meter only moves when you actually fire a request. This section walks the migration in code you can run today.

The read-path migration in four steps: inventory reads, swap the auth, map endpoints, run parallel

Start with the smallest possible call to confirm your key works: a single user lookup. The bearer-token pattern here is the standard described in RFC 6750, so it drops into any HTTP client you already use. This example uses the Python requests library and returns a structured profile object.

import os
import requests

API_KEY = os.environ.get("TWITTERAPIS_KEY", "YOUR_API_KEY")
BASE = "https://api.twitterapis.com"

resp = requests.get(
    f"{BASE}/twitter/user/info",
    headers={"Authorization": f"Bearer {API_KEY}"},
    params={"userName": "twitterapis"},
    timeout=30,
)
resp.raise_for_status()
profile = resp.json()["data"]

print(f"{profile['name']} (@{profile['userName']})")
print(f"Followers: {profile['followers']:,}")
print(f"Tweets:    {profile['statusesCount']:,}")

Keeping the key in an environment variable rather than hard-coding it is the small habit that lets the same script run in local development and production without edits. If you want to confirm the endpoint from the shell before writing any code, the same lookup works as a one-line curl, which is the fastest way to see the response shape.

curl -s "https://api.twitterapis.com/twitter/user/info?userName=twitterapis" \
  -H "Authorization: Bearer $TWITTERAPIS_KEY"

The workhorse read for most monitors is search. The advanced search endpoint takes a query string and a query type and returns matching tweets with their engagement counts, using the same operators you already know. The advanced search operators reference covers how to write a precise query that pulls only what you need, which is the real cost control, because a tighter query means fewer reads and a smaller bill.

import os
import requests

API_KEY = os.environ.get("TWITTERAPIS_KEY", "YOUR_API_KEY")
BASE = "https://api.twitterapis.com"

resp = requests.get(
    f"{BASE}/twitter/tweet/advanced_search",
    headers={"Authorization": f"Bearer {API_KEY}"},
    params={"query": "x api pricing min_faves:25", "product": "Top"},
    timeout=30,
)
resp.raise_for_status()
payload = resp.json()

print(f"Matched {payload['count']} tweets")
for t in payload["tweets"][:5]:
    print(f"- {t['likeCount']:>5} likes | {t['text'][:70]}")

Real workloads pull more than one page, and the per-call model uses cursor pagination: each response returns a cursor you pass into the next request until the cursor stops coming back. This replaces the window-based pagination of the official API, and because you pay per call rather than per window, you size the loop by budget rather than by a fixed quota. The loop below caps itself so a runaway job cannot silently burn credits.

import os
import requests

API_KEY = os.environ.get("TWITTERAPIS_KEY", "YOUR_API_KEY")
BASE = "https://api.twitterapis.com"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

def collect(query, max_pages=5):
    cursor, out = None, []
    for _ in range(max_pages):
        params = {"query": query, "product": "Latest"}
        if cursor:
            params["cursor"] = cursor
        r = requests.get(f"{BASE}/twitter/tweet/advanced_search",
                         headers=HEADERS, params=params, timeout=30)
        r.raise_for_status()
        page = r.json()
        out.extend(page.get("tweets", []))
        cursor = page.get("next_cursor")
        if not cursor:
            break
    return out

tweets = collect("x api pricing")
print(f"Collected {len(tweets)} tweets")

Before you cut over, it is worth estimating the bill so there are no surprises. A per-call model makes this trivial: the cost is your call count times the per-call rate, and because a standard call returns roughly 20 tweets, you can reason in either unit. The pure-Python helper below turns a monthly read target into a dollar figure with no network call, which is exactly the kind of check to run before you commit a workload.

def monthly_read_cost(tweets_per_month, tweets_per_call=20, per_call=0.0008):
    calls = tweets_per_month / tweets_per_call
    return round(calls * per_call, 2)

for volume in (10_000, 100_000, 1_000_000):
    print(f"{volume:>9,} tweets/month -> ${monthly_read_cost(volume):.2f}")

# 10,000 tweets/month -> $0.40
# 100,000 tweets/month -> $4.00
# 1,000,000 tweets/month -> $40.00

Finally, wrap real jobs in basic error handling so a transient failure does not stall the pipeline. Read a 401 as a bad or missing key, a 429 as a signal to slow the call rate, and any 5xx as a transient blip worth one short retry. This is the same defensive shape you would use against any HTTP API, and it is the last piece before a read job is production-ready.

import os
import requests

API_KEY = os.environ.get("TWITTERAPIS_KEY", "YOUR_API_KEY")
BASE = "https://api.twitterapis.com"

try:
    r = requests.get(
        f"{BASE}/twitter/user/info",
        headers={"Authorization": f"Bearer {API_KEY}"},
        params={"userName": "twitterapis"},
        timeout=30,
    )
    r.raise_for_status()
    print("ok:", r.json()["data"]["userName"])
except requests.exceptions.HTTPError as e:
    print("HTTP error:", e.response.status_code)
except requests.exceptions.RequestException as e:
    print("request failed:", type(e).__name__)

If you prefer to see the workflow end to end before writing code, this walkthrough covers getting X API keys with read and write access, which is the official-portal path the per-call route lets you skip.

https://www.youtube.com/watch?v=xwfp-580KOE

For a Node stack the Twitter API Node.js tutorial covers the equivalent fetch-based calls, and the full Python Twitter API tutorial walks the request patterns end to end. If your goal is sentiment work on the data you pull, the Twitter sentiment analysis in Python walkthrough picks up where the read call leaves off. The operational win here is as real as the price win: a per-call model meters by request rather than by a rate-limit window, so a single noisy job cannot exhaust a quota and stall your whole pipeline, a failure mode the rate limit guide covers in detail alongside the official X API rate-limit reference.

The cheapest pay-as-you-go Twitter API. Try it free.

$0.04 per 1,000 tweets. $0.50 free credits. No credit card required.

A Step-by-Step Migration Checklist for Read Workloads

If you have decided to split reads off the official API, the migration is usually a small amount of work because the data shapes are similar, and running it in a fixed order keeps the risk low. The checklist below is the sequence that has worked for the read-only monitor and follower-graph archetypes, and it is deliberately conservative: nothing gets cut over until a parallel run proves the numbers line up.

Start by inventorying every place your code reads X data. In most projects this is a surprisingly short list, a search call, a user lookup, maybe a timeline or follower pull, and writing that list down is half the work. For each read, note the exact fields you consume downstream, because you almost never use every field the official API returns, and matching the subset you actually need is faster and less error-prone than matching everything the response contains.

Next, swap the authentication. The official API uses OAuth or app-only bearer tokens with their own scoping rules, while a per-call read API uses a single bearer token in an Authorization header, so you replace the whole OAuth client with one environment variable. Keep the key out of source control and read it from the environment exactly as the code samples above do, which lets the same script run unchanged in local development and production.

Then map the endpoints one at a time. A user lookup maps to the user-info endpoint, a keyword search maps to advanced search with a query parameter, a timeline maps to the user-tweets endpoint, and follower data maps to the follower-graph endpoints. The response fields, text, author handle, like and retweet and view counts, and timestamps, carry the same meaning across both, so your downstream parsing changes very little. Replace window-based pagination with the cursor pattern shown earlier, following the returned cursor until it stops coming back.

After the endpoints are mapped, estimate the bill with the cost helper from the read playbook so you know the target number before you commit, then run both paths in parallel for a day. Point a copy of your read job at the new endpoint, compare its output against the official path field by field, and confirm they match before you touch the live job. Once the parallel run agrees, flip the live job to the new endpoint and decommission the old credentials. Because reads are billed per call with no monthly minimum, there is no sunk subscription to strand and no contract to unwind, so the cutover is reversible right up to the moment you delete the old key. For projects that need to keep posting, the write path is different and more limited, which is the subject of the next section.

Writing is harder than reading to route around, because posting to X is a first-party action. But there is still real money to save short of an enterprise contract, and the moves are all about the classifier that decides whether a post is a $0.015 plain write or a $0.20 link write. This section is the write-side counterpart to the read playbook above.

Cutting the link-tweet band: audit posts, move links to replies, batch plain writes, then re-price

The first move is an audit, because most accounts overestimate how link-heavy they are. Pull a month of your posts and count how many actually contain a URL. It is common to discover that only a minority do, in which case the link band touches a smaller slice of your bill than the panic suggested, and the fix is a targeted change rather than a rebuild. Re-price the whole workflow at the real per-action rates afterward so you are planning against numbers rather than the old mental model.

The second move is the reply pattern, the largest single write-side saving. Post the main content as a plain $0.015 write, then add the URL as a reply billed at the standard write rate rather than the link band. The tradeoff is that the link no longer sits in the primary post, so test whether that fits how your followers actually consume the feed before you roll it out everywhere. For high-value posts where the link must be prominent, you may choose to pay the band; for a high-volume relay, the reply pattern is often the difference between viable and not.

The third move is to reconsider whether the engagement actions your build depends on still belong on the official self-serve API at all. Follow, like, retweet, and bookmark automation was tightened in the 2026 repricing, and rebuilding those on official enterprise access is expensive. A direct API keeps them as simple writes at $0.0008 per call using a token you pass per request, which is the parity path for an engagement build that does not want an enterprise contract. That does not make automation risk-free, and you should still respect platform rules and the bot-detection realities that govern any automated account, but it removes the pricing wall.

The honest limit of the write playbook is worth stating. If posting links at high volume is the entire point of your product and there is no revenue to absorb the cost, no workaround fully rescues the economics, and the real decision is whether to re-scope the feature or move the feed to a platform with cheaper distribution. Pretending a cheap trick fixes a structurally expensive workload helps no one. The complete 2026 Twitter API tutorial covers the full action set if you are re-scoping from scratch.

What Broke: Field Notes From the Developers Who Got Hit

The clearest picture of the 2026 change is not the rate card, it is the public record of developers reacting to it in real time. Across posts and threads from the first half of the year, the same pattern repeats: a project that ran quietly for years suddenly could not cover its own API bill, and the maintainer had to publicly announce a workaround, a migration, or a shutdown. These are not abusive scrapers. They are utility accounts and small tools that posted or read exactly the way the new pricing makes expensive.

What hit projects did next: dropped links, split reads onto a per-call API, left the platform, or paused

The bluntest signal comes from bots that simply announced they were done. A notification bot spelled out the exact mechanics of why: the free tier was gone, the pay-per-use model replaced it, and even the small credit grant existing apps received had run out.

https://x.com/jamiepaigebot/status/2048784381293080724

The math that kills these projects is small in absolute terms and fatal in context. Another bot did the arithmetic in public, landing on a figure of a few dollars a month for a modest posting cadence, and concluded that even that was not worth carrying for a free community service.

https://x.com/MagiPokaBot/status/2060285906481827968

Not every reaction was a shutdown. Some maintainers paused to reassess, which is its own signal: the change was disruptive enough that even builders who wanted to keep going had to stop and re-plan around the loss of the free tier.

https://x.com/spto_frames/status/2050806884853244275

And some developers approached it from the other direction, weighing whether the API was finally worth paying for after years of getting by on fragile scraping and workarounds. That framing captures the split the pricing created: it pushed some projects off the platform and simultaneously pulled others toward a paid, more reliable data path.

https://x.com/witcheer/status/2040879262249463962

The community threads tell the same story at scale, and they predate 2026, which is the important part. The complaint that X API pricing is unworkable for ordinary projects has been building since the earlier price shocks, and the 2026 change sharpened a grievance that was already there.

Twitter API plans are a joke! from r/webdev

The frustration goes well beyond hobby projects. When the enterprise floor first came into public view, the reaction from professional operators was disbelief that the numbers could be real for anything short of a large company.

Is Elon on crack? I'm not paying $42K PER MONTH for Twitter API access from r/sysadmin

Source: the r/sysadmin thread on X's enterprise API pricing.

The cost also drove visible, named products to strip Twitter integration entirely rather than pay, which is the clearest evidence that this is an ecosystem effect and not a handful of outliers.

WordPress drops Twitter social sharing due to API price hike from r/technology

What ties every one of these together is that none of them are the abuse the pricing is nominally aimed at. They are alert feeds, community bots, integrations, and utilities, the long tail of useful automation that the old flat rate quietly subsidized. The projects most likely to disappear are the low-margin, high-value ones, and that is the part of the ecosystem visibly thinning out. The indie-hacker perspective on the hike argues the same point from the builder side.

The Historical Pattern: Every Platform Reprices Once You Depend On It

Zoom out and the 2026 change is not an anomaly, it is a rerun. Every major platform that opened an API in the last decade eventually tightened or repriced it once the dependent ecosystem was large enough to monetize. The specific numbers differ each time, but the shape repeats: cheap or free access to attract builders, a period of ecosystem growth, then a price that captures value once developers are committed and switching is painful. Seeing the pattern is what turns the next repricing from a crisis into a planned-for event.

The platform repricing pattern: Twitter 2023, Reddit 2023, and X 2026 followed the same curve

The most-cited precedent is Reddit's 2023 API repricing, reported widely at the time by The Verge, which shut down a generation of third-party clients almost overnight. Twitter's own earlier price shocks in 2023 followed the same arc, and the community reaction then, disbelief at the enterprise floor, is near-identical to the reaction to the 2026 enterprise figure, which shows how consistent the pattern is across both platforms and years. The 2026 pay-per-use switch is simply the latest and most granular expression of the same underlying move.

The Twitter precedent is worth spelling out because it rhymes so closely with 2026. In early 2023, Twitter abruptly ended the free API tier that thousands of bots and research projects ran on, then floated paid tiers that started low for a fraction of the old access and climbed to an enterprise floor in the tens of thousands of dollars a month. The reaction then was the same disbelief the community threads above capture, the same wave of shutdown announcements, and the same scramble to find cheaper intermediaries. What is different in 2026 is only the granularity. Instead of a blunt tier cut, the platform moved to per-action metering that prices each behavior separately, which is a more precise way to reach the same end of extracting more from committed developers. A developer who lived through 2023 and abstracted their data layer afterward spent 2026 changing a configuration value, while one who wired the raw API into every call site paid for that shortcut a second time. The pattern is not a warning about one platform, it is a description of how every data platform behaves once a dependent ecosystem forms around it, and it is the reason a swappable data layer is worth building before the day you need it.

The durable lesson is architectural, not tactical. The projects that weathered every one of these repricings best were the ones that had abstracted their data layer behind their own interface, so swapping the provider underneath was a configuration change rather than a rewrite. If your code calls a platform API directly throughout your codebase, a pricing shock forces a scramble across every call site. If it calls a thin internal wrapper that happens to talk to a provider, you change one module and move on. Introducing that seam before you need it is the single most valuable habit for surviving the next repricing, because the next one will not announce itself any earlier than this one did.

The practical version of that habit for X data specifically is to decouple reads from writes, know which of your workloads is which, and keep a tested fallback read provider configured so a price change is an inconsistency you route around rather than an outage you fight. A read pipeline and a posting bot are different products with different economics, and the projects that suffered most in 2026 were the ones that had bundled both onto a single expensive tier. If you are building fresh, the best practices guide covers how to structure a data layer that survives this, and the n8n scraping walkthrough shows one no-code way to wire a resilient read pipeline.

There is a second-order lesson in how quickly the ecosystem adapted. Within weeks of each repricing, a market of cheaper intermediaries appeared, providers that absorb the platform relationship and resell access at a per-call rate, precisely because the demand for affordable data did not vanish when the first-party price rose. That is the durable shape of every API repricing: the platform captures more value from committed developers, and a layer of alternatives grows underneath to serve everyone the new price pushed out. Knowing that layer exists, and keeping your integration loose enough to use it, is what converts a repricing from an existential threat into a routing decision. The developers who treated the 2026 change as the latter are the ones still shipping.

The Bottom Line

X API pricing in 2026 is a full rebuild, not a single price bump, and the developers who came out ahead are the ones who read the whole timeline rather than just the headline number. February moved new developers to pay-per-use and removed the safety of a flat monthly bill. April made link-posts 13 times more expensive than plain posts and, in the same stroke, made owned-account reads cheap. The old fixed tiers were frozen shut to new signups, leaving pay-per-use as the only door in.

The response that worked, over and over, was to match your build to a workload archetype, model the annual cost rather than the per-call rate, and then split reads off the official API where they were the expensive part of the bill. A read-only monitor, a follower-graph analytics build, or a historical-archive puller can move to a per-call read API at $0.04 per 1,000 reads and cut a four-figure annual bill to a two-figure one, with no OAuth flow and no monthly minimum. A link-publisher bot survives with the reply workaround or moves its feed elsewhere. An engagement build finds first-party-parity actions at $0.0008 per call rather than an enterprise contract.

When a project is read-heavy, there is no reason to keep funding a posting path it never touches. One bearer token, a REST call, and per-request billing cover most read workloads with no developer-account queue and no monthly floor. You can sign up and run your first read in a few minutes with $0.50 in free credits, or check the current rates on the pricing page before you migrate. The next repricing, on this platform or another, will not warn you any earlier than this one did, so the best time to make your data layer swappable is before you need to.

// sources

Where these numbers come from

Each row is a figure in this post and the artefact it was read from. Prices and limits on this platform move, so check the date on the source before you plan against it.

X API pricing documentation
The published per-resource rate card the article's rate table is drawn from, including the $5.00 per 1,000 standard read figure.
X Developer Community, April 2026 pricing update
The changelog thread the timeline is built on: pay-per-use as the default, owned reads at $0.001, and the $0.20 band for a post containing a URL.
X API rate-limit reference
Backs the section contrasting per-request metering with window-based rate limits, and the claim that one noisy job can exhaust a windowed quota.
TechCrunch on the April 2026 link-post price
Independent contemporaneous reporting of the link-post repricing, used so the timeline does not rest only on the platform's own changelog.
Social Media Today on usage-based API access
Source for the note that the 2026 model bundled platform AI credits into some developer spending, and for the February pay-per-use framing.

Frequently Asked Questions

As of 2026 the X API runs on pay-per-use billing, which became the default for new developers on February 6, 2026. You load prepaid credits and draw them down per request instead of paying a flat monthly fee. Published per-resource rates are roughly $0.005 per post read, $0.001 per owned-account read, $0.015 per plain post created, and $0.20 for any post that contains a URL, per the X Developer Community changelog. The old fixed Basic and Pro plans still exist for developers who subscribed before the cutover, but new signups can no longer buy them.

There is no general free read tier for new developers in 2026. The pay-per-use model has no standing monthly read allowance the way the old tiers did. A minimal Free write tier remains for a small monthly post cap with no meaningful read access, so any real read workload is paid per request. Several third-party read APIs offer a small signup credit instead: TwitterAPIs gives new accounts $0.50 in credits, about 625 standard calls, with no credit card required.

On the official self-serve API these actions were tightened during the 2026 repricing and now sit behind higher-cost or enterprise-gated access, so a build that leaned on automated follow, like, or quote-post at volume needs a rethink. A direct third-party API takes a different approach: TwitterAPIs exposes follow and unfollow, favorite and unfavorite, retweet and unretweet, and bookmark and unbookmark as standard write actions at $0.0008 per call, using a token you pass per request, so those actions stay available without an enterprise contract.

Point your read calls at a per-call API that returns the same public fields, tweet text, author, engagement counts, and timestamps. With TwitterAPIs you authenticate with a single bearer token, call a REST endpoint for search or user data, and pay per request at $0.04 per 1,000 reads with no OAuth flow, no developer-account approval queue, and no monthly minimum. The migration is usually small because the data shapes line up, so you swap the auth, map a handful of endpoints, and run both paths in parallel for a day before cutting over. See the pricing page for the live rate card.

On April 16, 2026, X moved any post that contains a URL into its own price band at $0.20 per request, separate from a plain post at $0.015. The classifier is binary: one http or https string anywhere in the body flips the whole post into the expensive tier, whether the link is the point of the post or a trailing source. The change lands hardest on accounts that always attach a URL, such as newsletter relays, blog syndicators, and alert feeds, where every single post now costs more than 13 times a plain-text post.

It depends entirely on the path you pick. The official X API Pro read rate works out to about $5.00 per 1,000 reads, and the owned-account read rate lands near $1.00 per 1,000. A marketplace scraper actor runs around $0.40 per 1,000 once you add proxy overhead. A per-call read API like TwitterAPIs is $0.04 per 1,000 reads with no monthly minimum, because one $0.0008 call returns roughly 20 tweets. For read-only work the per-call route is usually both the cheapest and the least fragile to operate.

No. The April 2026 changes applied to requests made on or after the effective date, not to credits already spent. Nothing was repriced after the fact. The reason it felt retroactive to many developers is that a freshly loaded credit balance drained far faster than expected once link-posts started billing at $0.20 each. A budget planned against the old flat rate could evaporate in weeks, which read like a surprise charge even though the mechanism was simply the new per-action rate applied going forward.

Check out similar blogs

More guides on the Twitter/X API, scraping, and pricing.

Cost per 1,000 tweets compared across eight Twitter API providers in 2026, with the hidden billing line items included
API PricingAPI Comparison

Cheapest Twitter API 2026: 8 Providers Ranked by Real Per-1,000-Tweet Cost

Every major Twitter API provider ranked by what 1,000 tweets actually cost in 2026, measured from live pricing pages across three volume tiers, with the billing traps comparison posts leave out.

twitterapis·
The 2026 Twitter/X API developer reference: an indexed catalog of endpoints, authentication, rate limits, error codes, and cursor pagination, with the per-call cost of each request
Twitter APIX API

The Twitter API Developer Reference (2026): Endpoints, Rate Limits, Error Codes and Pagination

A single indexed reference for the Twitter/X API in 2026: the endpoint catalog, how authentication and bearer tokens work, the rate limits behind every 429, what error codes 401, 403, and 429 mean, cursor pagination, response shapes, and the real per-call cost of each call.

TwitterAPIs·
How to choose a Twitter/X API in 2026: a buyer's-guide framework weighing pricing model, data coverage, rate limits, authentication, reliability, compliance, and migration cost across the official X API and third-party providers
Twitter APIX API

How to Choose a Twitter/X API in 2026: The Complete Buyer's Guide

A decision framework for choosing a Twitter/X API in 2026: the seven criteria that actually matter (pricing model, data coverage, rate limits, auth, reliability, compliance, migration cost), a use-case decision tree, and where each path wins.

TwitterAPIs·
Is the Twitter API free in 2026, the write-only free tier explained against the full X API pay-per-use cost ladder
Free TierAPI Pricing

Is the Twitter API Free in 2026? What the Free Tier Actually Gives You

The X API free tier is write only: 1,500 posts a month, zero read access. Here is the full 2026 cost ladder and where pay-per-call APIs fit for read-heavy work.

TwitterAPIs·
What rate limited means on X in 2026, covering the consumer account action limits and the developer API 429, with the current published numbers for both
Rate Limits429

What "Rate Limited" Actually Means on X (Every Limit, Measured)

"Sorry, you are rate limited" is one message covering two different systems: a consumer action ceiling and a developer API window. Here is what the term means, the current numbers for both, where it came from, and how long it actually lasts.

TwitterAPIs·
Diagram of the X Direct Messages API path: your own X session reaches TwitterAPIs, which reaches your X inbox
Direct MessagesTwitter API

The X Direct Messages API in 2026: Reading, Sending, and the Six Things It Will Not Do

A working guide to the X Direct Messages API: why a pooled key cannot read a DM, what a conversation id refers to, and the limits nobody documents.

TwitterAPIs·
Twitter (X) API authentication in 2026, covering OAuth 1.0a and OAuth 2.0 bearer tokens, the four credential types, and how to fix 401 Unauthorized and 403 errors in Python and Node.js
Twitter API AuthenticationOAuth 2.0

Twitter API Authentication in 2026: OAuth, Bearer Tokens, and Fixing 401

How Twitter (X) API authentication works in 2026: the four credential types, OAuth 1.0a versus OAuth 2.0, generating and using a bearer token, runnable Python and Node.js, and a fix for every 401 Unauthorized and 403 error, plus the one-header alternative.

TwitterAPIs·
A 2026 map of what you can build with the Twitter/X API: 24 real use cases across listening and sentiment, monitoring and alerts, audience and graph, research and data, and bots and automation, each with its endpoint and per-call cost
Twitter APIX API

What You Can Build With the Twitter/X API: 20+ Real Use Cases (2026)

A 2026 field guide to what you can actually build with the Twitter/X API: 24 real use cases across listening, monitoring, audience graph, research, and bots, each mapped to the endpoint that powers it and the real per-call cost.

TwitterAPIs·