How to estimate your X API bill
X bills the X API per item returned, so your bill follows the data you read, not the requests you send. This guide shows how to count it before you buy credits.
By PrimaryAPIReviewed
What X charges for
X sells self-serve access as prepaid Pay-Per-Use credits. Reads are charged per resource returned and writes and actions per request, at the rates in the price table on our home page.
You commit to no subscription or minimum. Enterprise plans, for volume beyond the monthly cap, are priced separately.
How a bill adds up
Five things decide what a month of reads costs.
- Every item in a response counts: a search that returns 100 posts is 100 post reads.
- The same item read again within one UTC day is charged once, and the window resets at midnight UTC.
- From 2026-11-22, users, posts, media, polls and places pulled in through expansions are charged as well.
- Only successful responses that return data are billed.
- Post reads stop at 3 million per monthly billing cycle unless you move to Enterprise.
Estimating common jobs
Count the items each job returns in a month, then multiply each count by its line in the price table.
- Keyword monitoring: every matching post you read is a Posts: Read item, so a term that matches 40,000 posts a month is at least 40,000 post reads.
- Account tracking: reading only the new posts of 200 accounts that each post 10 times a day comes to about 60,000 post reads a month. Re-reading older posts on a later day adds to that.
- Profile lookups: each user returned is a User: Read item, whether you ask by ID or by username.
- Follower lists: each follower is a Following/Followers: Read item, so one full pull of an account with 50,000 followers is 50,000 items.
- Trends: charged per request rather than per trend, so checking one location every hour is about 720 requests a month.
- Authors and media: from 2026-11-22, add one item for each user, media object, poll or place that expansions bring in.
Keeping the bill down
The way X counts usage suggests a few habits.
- Request only the expansions you use, since expanded objects are billed from 2026-11-22.
- Batch re-checks of the same posts into one UTC day, because repeats inside that window are charged once.
- Set a spending limit per billing cycle in the Developer Console; requests stop when it is reached.
- Set the auto-recharge amount high enough to cover five minutes of peak use, since it tops up at most once every five minutes.
When a price per call fits better
Per-item billing suits small, targeted reads. Jobs that return long lists (follower pulls, busy searches, timelines) are where per-item and per-call pricing differ most, so compare them on those jobs first.
PrimaryAPI prices each call, and each list call returns a page with a cursor for the next. Its X APIs read public data only, so posting and DMs stay with X’s API.