X bills per resource returned, not per HTTP call. A search that returns 100 posts costs 100 post reads at $0.005 each. This page maps each v2 endpoint family to its published credit rate so trend pipelines can be costed before the first Developer Console top-up.
X switched new developers to pay-per-use credits in February 2026. The surprise for most pipelines is multiplication: one API call can bill dozens or hundreds of resources. A recent-search job that pages through 500 tweets is not one $0.005 charge. It is 500 charges.
For the broader tier comparison and legacy Basic math, see the X API pricing comparison. For live trending topics without X credentials, see the X trending topics API.
X deducts credits per resource fetched on reads and per request on writes. Rates below come from the official X Developer documentation and the April 2026 pricing update. Verify current figures in the Developer Console before budgeting production spend.
| Resource type | Unit cost | Charged per |
|---|---|---|
| Posts: Read | $0.005 | post returned |
| Users: Read | $0.010 | user profile returned |
| Following / Followers: Read | $0.010 | relationship resource |
| Trends: Read | $0.010 | trends resource fetched |
| DM Events: Read | $0.010 | DM event returned |
| Owned Reads (own posts, bookmarks, followers) | $0.001 | owned resource |
| Lists: Read | $0.005 | list resource |
| Spaces: Read | $0.005 | space resource |
| Communities: Read | $0.005 | community resource |
| Media: Read | $0.005 | media attachment |
| Analytics: Read | $0.005 | analytics resource |
| Content: Create (no URL) | $0.015 | write request |
| Content: Create (with URL) | $0.200 | write request |
| DM Interaction: Create | $0.015 | send request |
Writes and reads draw from the same credit balance. URL posts carry a 13x markup over plain text posts since the April 2026 rate change.
Search endpoints dominate spend for trend-monitoring prototypes. Each tweet object in the response array counts as one post read.
| Endpoint | Typical use | Cost example |
|---|---|---|
GET /2/tweets/search/recent | Keyword monitoring, 7-day window | 100 results = $0.50 |
GET /2/users/:id/tweets | User timeline sampling | 50 tweets = $0.25 |
GET /2/tweets | Lookup by ID batch | 20 IDs = $0.10 |
GET /2/users/by/username/:username | Resolve handle to ID | 1 user = $0.010 |
A cron job that searches five keywords every hour and returns 50 posts each run burns 5 × 24 × 50 = 6,000 post reads per day. At $0.005 each, that is $30.00 per day, or roughly $900 per month, before pagination, errors, or deduplication overhead.
Filtered stream endpoints remain on legacy Pro and Enterprise tiers for existing subscribers. New pay-per-use accounts do not get streaming access at self-serve rates.
The official trends path is GET /2/trends/by/woeid/:id. One call returns the trending topic names for a location. At $0.010 per trends read, polling 10 WOEIDs every 30 minutes costs 10 × 48 × $0.010 = $4.80 per day.
Teams that skip the trends endpoint and instead search recent posts for volume spikes pay the post-read rate. Sampling 200 posts per keyword across 10 keywords once per hour costs 10 × 24 × 200 × $0.005 = $240 per day. The trends endpoint exists because post-read inference is orders of magnitude more expensive for the same signal.
WOEID coverage is location-based. Global or category-level trending lists are not exposed the same way across all third-party feeds.
Owned-account reads at $0.001 apply only to the authenticated user's own posts, followers, bookmarks, and likes. Third-party monitoring still bills at standard post-read and user-read rates.
Publishing workflows add write charges on top of reads:
| Action | Cost |
|---|---|
| Post text or media (no link) | $0.015 |
| Post containing a URL | $0.200 |
| Send DM | $0.015 |
A bot that posts 100 link-free updates per day spends $1.50 daily on writes alone. The same bot that includes URLs in every post spends $20.00 daily.
Pay-per-use accounts face a 2,000,000 post-read ceiling per month. At the full cap, post reads alone cost $10,000 before any user lookups, trends calls, or writes. Crossing the cap requires Enterprise negotiation.
The Developer Console supports prepaid credit purchases, optional auto-recharge, and per-cycle spending limits. X also advertises up to 20% back in xAI API credits on qualifying spend, which matters only if the team already uses Grok programmatically.
Three workload shapes favor skipping per-post X API reads:
Trends MCP covers the first two via get_top_trends with type X (Twitter). One request returns ranked [rank, topic] pairs as JSON. The free tier allows 100 requests per month with no X developer account. For scheduled polling patterns and quota math, see monitoring X trending topics on a schedule.
The official X API still wins when the product needs tweet text, engagement metrics, user profiles, or write access. Endpoint-level pricing makes that boundary visible early: if the monthly post-read line item exceeds the value of tweet-level data, the workload may be a trend-feed problem instead.
FAQ