Twitter API Pricing 2026: X API vs TweetAPI
Compare X API resource pricing with TweetAPI subscriptions and prepaid units. See minimum payments, expiry, rate limits, and real workload calculations.
TweetAPI offers monthly subscriptions and prepaid PAYG units. You can use PAYG without a subscription, or keep a prepaid balance alongside a plan. Available free or subscription allowance is used first; eligible requests then draw from valid PAYG units. PAYG starts at $5 for 10,000 units. Most metered calls cost one unit, regardless of how many records they return. The official X API generally bills reads by resources returned, so the same number of HTTP requests can produce very different bills.
Compare three things separately: the value of the usage, the payment needed to fund it, and what happens to anything left over. A $2.50 workload can require a $5 purchase. A subscription can lower the cost of steady usage while leaving unused allowance at the end of its billing cycle.
Compare TweetAPI options, check what consumes units, or work through the examples.
Pricing sources reviewed: September 5, 2026. Calculations are modeled examples, not live API benchmarks. Provider rates and account entitlements can change; confirm the applicable offer before buying.
Disclosure: We operate TweetAPI. TweetAPI is a third-party service. Not affiliated with X Corp.
TweetAPI Subscriptions, Prepaid Units, and Hybrid Usage
The pricing page offers these ways to fund usage. RPM means HTTP requests per minute, not units per minute.
| Option | Minimum payment | Included units | Rate limit |
|---|---|---|---|
| Standalone PAYG | $5, one-time | 10,000 prepaid units | 60 RPM |
| Pro | $17/month | 100,000 per billing cycle | 60 RPM |
| Ultra | $57/month | 500,000 per billing cycle | 120 RPM |
| Mega | $197/month | 2,000,000 per billing cycle | 180 RPM |
| Subscription + PAYG | Plan price + a top-up from $5 | Plan allowance, then valid prepaid units | Higher active-plan limit is preserved |
The free trial provides 100 one-time requests without a credit card; it is not a recurring monthly allowance. The examples below exclude that trial so a first-time offer does not distort ongoing costs.
Standalone PAYG has no subscription requirement. In the hybrid option, available plan allowance is consumed first, then eligible requests automatically use sufficient valid wallet units. A top-up buys units; it does not raise your rate limit. For example, Pro plus PAYG remains at 60 RPM, while an active Ultra plan retains 120 RPM when drawing from PAYG.
PAYG packs and minimum cash payments
| Payment | Units purchased | Price per 1,000 units |
|---|---|---|
| $5 | 10,000 | $0.50 |
| $10 | 20,000 | $0.50 |
| $20 | 40,000 | $0.50 |
| $50 | 100,000 | $0.50 |
Every pack has the same unit rate; larger packs do not provide a volume discount. Multiple purchases can fund a larger job. For example, $50 + $10 buys 120,000 units. Purchases are manual prepaid top-ups, not permission to charge an unbounded overage bill.
At full utilization, Pro, Ultra, and Mega cost $0.17, $0.114, and $0.0985 per 1,000 included units respectively. Those figures assume you use the entire cycle's allowance. They are not prices per 1,000 returned tweets, and unused subscription allowance does not become PAYG credit.
What consumes TweetAPI units?
Units measure API usage, not the number of tweets returned:
- Most metered calls cost 1 unit.
/tw-v2/xchat/sendcosts 10 units./tw-v2/auth/logincosts 50 units.
Metered responses with HTTP 200–499 are billable except 400, 401, 403, and 429. This is not a “successful results only” policy: a billable empty result still consumes units. Pagination requests, each separately submitted retry, and repeated requests also consume units when their responses are billable.
A workload of 1,000 normal metered calls, ten XChat sends, and two login calls uses 1,000 + (10 × 10) + (2 × 50) = 1,200 units. The billing weight does not turn one HTTP call into ten or fifty calls for RPM budgeting.
Check the endpoint documentation, usage dashboard, and metering terms when estimating an operation. Result counts alone cannot tell you how much TweetAPI allowance it consumes.
Wallet expiry, top-ups, and cancellation
PAYG units expire 365 days after successful payment settlement. When a top-up is applied, the expiry for the whole still-valid wallet becomes the later of its existing expiry and the new settlement date plus 365 days. Already expired units are never restored.
Paying before the old deadline alone does not guarantee an extension if the top-up is applied after the wallet has expired. If you paid before expiry but application was delayed, contact support@tweetapi.com for review and correction or another appropriate remedy for confirmed processing errors. See the PAYG terms and expiry disclosure; do not assume a pending payment has already extended your wallet.
Canceling a subscription does not remove valid PAYG units. Subscription allowance belongs to its billing cycle; remaining valid PAYG units can fund later usage until their expiry. The wallet does not make an expired subscription's unused allowance roll over.
Worked TweetAPI Cost Examples
These examples assume normal one-unit metered calls, no trial allowance, no existing wallet, one subscription billing cycle, sufficient RPM, and no payment reversals or wallet deficit. Taxes and fees are excluded. “Consumption value” prices units used at the PAYG rate; “cash required” includes pack rounding and any subscription payment.
| Units used | PAYG consumption value | PAYG cash required | PAYG units left | Subscription or hybrid comparison |
|---|---|---|---|---|
| 5,000 | $2.50 | $5 | 5,000 | Pro costs $17 |
| 20,000 | $10 | $10 | 0 | Pro costs $17 |
| 100,000 | $50 | $50 | 0 | Pro costs $17 |
| 120,000 | $60 | $60 | 0 | Pro + 20,000 PAYG units costs $27 |
| 140,000 | $70 | $70 | 0 | Pro + 40,000 PAYG units costs $37 |
| 200,000 | $100 | $100 | 0 | Ultra costs $57 |
At 200,000 units, Pro plus 100,000 PAYG units would cost $67, so Ultra costs less in this example and provides a higher rate limit. At 120,000 units, the $27 hybrid option can suit a modest overrun without committing to Ultra. These are workload comparisons, not universal plan recommendations.
The 34,000-unit comparison is not a cash break-even
$17 ÷ $0.0005 = 34,000 units: Pro's subscription price equals the PAYG consumption value of 34,000 units. But a new wallet needs $20 of packs to cover that workload, buying 40,000 units and leaving 6,000 valid units. Pro costs $17 and leaves 66,000 units of cycle allowance, which expire with that cycle.
If you already have a valid wallet, the new cash required can be lower or zero. If you expect another small job later, the remaining prepaid units have a different usefulness from unused monthly allowance. Neither comparison establishes one exact cash break-even for every account.
Pro plus PAYG reaches Ultra's price at 180,000 units
With a fresh Pro cycle, the first 100,000 units use its allowance. Another 80,000 PAYG units cost $40, so 17 + 40 = $57 at 180,000 units. Ultra also costs $57, includes 500,000 units, and doubles the rate limit from 60 to 120 RPM.
This equality assumes a new purchase and normal unit weights. Pack rounding makes hybrid cash costs step upward in $5 increments; at 170,001 units, the required top-up already rounds to 80,000 units. An existing wallet, remaining cycle allowance, and when a plan change takes effect can change the amount due today.
The billing cycle matters
Suppose you use 5,000 units in one month and another 5,000 in the next. A single $5 top-up covers both jobs if the wallet remains valid. Two Pro cycles cost $34; unused subscription allowance does not transfer between them.
Now move the second job to day 366 after the original settlement, with no intervening top-up or expiry extension. The first pack's remaining 5,000 units have expired. Another $5 purchase is needed, so total cash rises to $10. Credit validity can matter more than a small difference in unit price.
Copyable TweetAPI Budget Calculator
Run this JavaScript locally with Node.js. It makes no network requests. Supply already-weighted billable units, not returned records or every attempted HTTP request. validWalletUnits must exclude expired units and assumes no deficit. Trial allowance is excluded: nonzero freeUnits is rejected. This estimates paid funding, not the entitlements of a free account.
function quoteCycle({
units,
plan = "PAYG",
freeUnits = 0,
validWalletUnits = 0,
peakRpm = 30,
}) {
const plans = {
PAYG: { price: 0, allowance: 0, rpm: 60 },
Pro: { price: 17, allowance: 100_000, rpm: 60 },
Ultra: { price: 57, allowance: 500_000, rpm: 120 },
Mega: { price: 197, allowance: 2_000_000, rpm: 180 },
};
if (
![units, validWalletUnits].every(
(value) => Number.isSafeInteger(value) && value >= 0
) ||
!Number.isFinite(peakRpm) || peakRpm <= 0 ||
freeUnits !== 0 || !Object.hasOwn(plans, plan)
) {
throw new Error("Use non-negative integer units, a listed plan, and positive RPM.");
}
const selected = plans[plan];
const walletUnitsUsed = Math.max(0, units - selected.allowance);
const unitsToBuy = Math.ceil(
Math.max(0, walletUnitsUsed - validWalletUnits) / 10_000
) * 10_000;
if (!Number.isSafeInteger(unitsToBuy)) throw new Error("Workload is too large.");
return {
plan,
paygConsumptionValue: walletUnitsUsed / 2_000,
cashRequired: selected.price + unitsToBuy * 0.0005,
unitsToBuy,
walletUnitsLeft: validWalletUnits + unitsToBuy - walletUnitsUsed,
cycleAllowanceLeft: Math.max(0, selected.allowance - units),
rateLimitRpm: selected.rpm,
fitsPeakRpm: peakRpm <= selected.rpm,
};
}
console.table(["PAYG", "Pro", "Ultra", "Mega"].map(
(plan) => quoteCycle({ units: 120_000, plan, peakRpm: 30 })
));
At 120,000 units, cash required is $60 for PAYG, $27 for Pro plus PAYG, $57 for Ultra, and $197 for Mega. The calculator compares a fresh full billing cycle, not a prorated upgrade quote. A false RPM result means the option fails the requested throughput even if it has enough units. It does not simulate latency, daily traffic distribution, refunds, or expiry: pass only a currently valid wallet balance and run each cycle separately.
Official X API Pricing in 2026
The official X pricing page describes prepaid, pay-per-use access with no required subscription. Selected rates are:
| Resource or action | Published price |
|---|---|
| Standard Post read | $0.005 per returned resource |
| User or follower/following read | $0.010 per returned resource |
| List, Space, or Community read | $0.005 per returned resource |
| Qualifying owned-account read | $0.001 per resource |
| Standard Post creation | $0.015 per request |
| Post creation containing a URL | $0.200 per request |
Confirm the exact endpoint and any expansions in the Developer Console. Daily resource deduplication generally avoids charging again for the same resource within one UTC day; X calls this a soft guarantee. Its pricing and usage documentation describe a 3 million Post-read cap per monthly billing cycle for self-serve access. Higher volume requires Enterprise.
Rate limits are endpoint-specific and separate from that billing cap. A prepaid balance does not remove them. X's console determines the available credit-purchase amounts; the examples here calculate usage value, not an unverified checkout minimum or remaining balance.
Equal HTTP counts can produce different bills
For 5,000 normal Post-read calls, each returning 20 billable Posts, X's standard usage value is 5,000 × 20 × $0.005 = $500 before deduplication. TweetAPI uses 5,000 units: $2.50 of PAYG consumption, funded by a $5 pack with 5,000 units left.
If each call returns only one Post, X's modeled usage value falls to $25 while the TweetAPI unit count stays the same. Repeated same-day resources, owned-account pricing, expansions, empty responses, and different endpoint coverage can change the comparison. These examples assume comparable usable data; they do not prove either provider delivers the same results.
Choose by Workload and Required Access
Consider prepaid TweetAPI units for occasional jobs that fit 60 RPM, subscriptions for steady cycle usage, and a valid wallet alongside a plan for variable demand. Check storage, retry volume, polling schedules, and collection windows as well as the unit budget. Use the five-provider alternatives comparison to evaluate non-expiring credits, higher advertised burst limits, and other subscription offers.
The official X API remains the appropriate starting point when you need official OAuth, its official archive or filtered stream, first-party fields, or direct Enterprise procurement. PAYG changes TweetAPI's payment options; it does not add those official capabilities. TweetAPI public reads use its own X-API-Key; account-authorized actions have additional requirements.
Twitter API Pricing FAQ
Can I use TweetAPI PAYG without a subscription?
Yes. Buy prepaid units from $5 for 10,000. Standalone PAYG is limited to 60 RPM. Available free allowance is consumed first; the free trial is 100 one-time requests.
What happens when I exhaust a TweetAPI quota?
Eligible requests automatically fall back to sufficient valid PAYG units. If neither available allowance nor sufficient valid wallet units can fund a request, it is rejected. This prepaid fallback does not create an unlimited automatic charge. Rate-limit errors are a separate constraint: adding units does not increase RPM.
Do empty responses and retries consume units?
Billable empty results do. So do billable pagination calls and each separately submitted retry or repeated request. Metered HTTP 200–499 responses are billable except 400, 401, 403, and 429; most calls cost one unit, with the weighted exceptions listed above. Do not estimate cost only from records successfully collected.
Do units expire, and does a top-up extend them?
PAYG validity is 365 days from successful settlement. Application of a top-up can extend the whole still-valid wallet to the later expiry; it never restores expired units. A payment still awaiting application is not proof of extension. See wallet expiry and the delayed-application remedy.
What happens to PAYG if I cancel my subscription?
Valid wallet units remain available until their expiry. Cancellation does not convert unused cycle allowance into wallet units or extend a wallet's expiry.
Should I top up or upgrade?
Compare remaining cycle allowance, weighted demand, valid wallet units, and required RPM. Pro plus PAYG can cover a small overrun; Ultra may cost less at a larger volume and provides 120 RPM. The 180,000-unit equality assumes a fresh cycle and no existing wallet. Use the dashboard's actual plan-change quote before acting.
How much do 100,000 Post reads cost on the official X API?
At $0.005 each, usage value is $500 before same-day deduplication or other billable resources. That is 100,000 returned Posts, not necessarily 100,000 HTTP requests.
Is a pricing comparison enough to choose an API?
No. Verify endpoint coverage, credentials, response fields, pagination, terms, and required throughput. Published limits and modeled prices are not evidence of uptime, completeness, or equal results.
Put Your Workload Through the Numbers
List the exact endpoints, expected pages, billable retries, and peak RPM. Count TweetAPI units using the endpoint weights; count X resources using the applicable resource prices and deduplication rules. Then compare cash required, remaining balance, and when that balance expires.
Start with the API documentation, the Python and TypeScript SDK guide, and current pricing. Create an account to try 100 one-time requests without a credit card before funding a larger workload.