Navigating platform developer fees requires looking past legacy tiers and marketing summaries. If you're building an application that integrates with X, understanding the true financial commitment means looking at exact per-request figures rather than broad estimates. X overhauled its billing structure by eliminating flat monthly subscription tiers for new developers and transitioning entirely to a consumption-based credit model.
This breakdown cuts through the confusion, outlining what reads, writes, and media handling actually cost under the current rules. You'll see how expenses scale for typical use cases, where hidden charges lurk, and how to model your developer budget accurately.
The Core Shift: From Monthly Tiers to Pay-Per-Use
The platform replaced its old system of fixed monthly plans with a credit-based consumption model. Developers purchase credits upfront through the X Developer Portal, and every API call deducts from that balance.
The legacy Basic tier ($200/month) and Pro tier ($5,000/month) have been fully retired for new signups, and existing subscribers have been systematically migrated to the pay-per-use structure. Enterprise remains the sole custom-negotiated option for high-volume enterprise pipelines.
Without a monthly safety net or free tier for standard accounts, every single read and write incurs a distinct, itemized charge from the first request.
Current Rate Card: Exact Per-Request Costs
Billing is split cleanly between data retrieval (reads) and action execution (writes). Knowing the price per resource helps prevent unexpected budget depletion.
Reading Data
- Post Reads: Reading public posts via
GET /2/tweetscosts $0.005 per resource. Requests are subject to same-day UTC deduplication, meaning fetching the same post multiple times within a 24-hour window only counts as a single charge. - User Profiles and Relationships: Fetching user profiles, follower lists, or following data via endpoints like
GET /2/users/:idcosts $0.010 per resource. - Owned Reads: Pulling your own authorized posts, mentions, or bookmarks costs a reduced rate of $0.001 per resource.
Writing Data and Publishing
- Standard Posts: Creating a text-only post via
POST /2/tweetscosts $0.015 per request. - Posts Containing Links: This is where budgets shift drastically. Publishing any post that includes a URL costs $0.20 per request—more than 13 times the price of a plain text post.
- Interactions and Deletions: Standard user interactions such as follows, likes, or retweets cost $0.015 per request, while deleting a post runs $0.010.
Real-World Cost Modeling for Different Workloads
Because pricing varies heavily based on whether your content includes links and how frequently your app polls for data, generalized estimates fall short. Look at how three common developer profiles translate into monthly expenses.
1. The Automated Publisher (Marketing Tool)
Imagine a small business tool that publishes 300 posts per month to manage brand presence, where every post contains a promotional link.
- 300 link-bearing posts at $0.20 each equal $60.00 per month.
- If those posts require minimal read checks to verify delivery, total monthly developer costs hover right around $65 to $70.
2. The Analytics Dashboard (Read-Heavy)
Consider an analytics service that tracks keyword mentions, fetching roughly 15,000 post reads per month alongside associated user profiles.
- 15,000 post reads at $0.005 cost $75.00.
- Pulling matching author profiles at $0.010 adds $150.00.
- Total operational cost sits near $225.00 per month for moderate monitoring volumes.
3. The High-Volume Agency Pipeline
An agency managing multiple client accounts posting 5,000 times a month with links encounters sharp scaling.
- 5,000 posts with URLs at $0.20 each amount to $1,000.00 per month in write fees alone, bypassing what legacy fixed tiers used to cost for high-frequency posters.
Common Mistakes That Spike Your API Bill
Developers transitioning from legacy tiers often make structural errors that drain their credit balances prematurely.
- Ignoring the Link Surcharge: Treating all write requests as equal is a fast way to exhaust funds. Budgeting for $0.015 per post while ignoring the $0.20 URL penalty will cause immediate budget overruns for marketing applications.
- Inefficient Polling Loops: Failing to cache read responses means querying identical post IDs repeatedly within a short window. While 24-hour UTC deduplication protects against some redundant lookups, poorly structured scripts that ignore local caching will trigger unnecessary API overhead.
- Over-Fetching User Metrics: Pulling full follower lists or deep historical archives without filtering parameters incurs steep per-resource charges ($0.010 per user profile) that compound quickly across large follower bases.
Frequently Asked Questions
Is there still a free tier available for the X API?
No standard free tier exists for new signups. All developer accounts operate on consumption billing from the first call. Exceptions are strictly limited to specialized public utility applications approved on an individual basis by the platform.
Why do posts with links cost so much more than plain text?
Publishing a post with a URL costs $0.20 compared to $0.015 for plain text. While the platform hasn't published an exhaustive policy rationale, this structure deliberately disincentivizes automated spam, affiliate link seeding, and mass promotional distribution via direct scripts.
Can I set spending limits to avoid surprise charges?
Yes. The X Developer Console allows developers to configure monthly spend caps and billing alerts. Once your credit balance or consumption threshold is reached, requests return rate-limit errors until the next billing cycle, protecting you from runaway cloud bills.
How do rate limits interact with pay-per-use billing?
Billing and rate limits operate independently. Even if you have ample credits in your account, standard endpoint limits (such as per-user or per-app request ceilings over 15-minute windows) still apply. Exceeding those limits returns an HTTP 429 status code, requiring your application to handle backoff headers correctly.