X's pay-per-use API has no required monthly subscription. You buy credits in X's Developer Console, and usage is paid from them. A plain post costs a cent and a half; a post with a link costs 20 cents.
Every price here comes from X's own pricing page and its delete-post reference, checked on October 25, 2026. X says its prices can change and that the Developer Console always shows the current ones, so check there before you budget.
What each action costs
| What you do | X bills it as | Price |
|---|---|---|
| Post without a link | Post: Create | $0.015 a post |
| Post with a link | Post: Create (with URL) | $0.200 a post |
| Add alt text to an image | Media Metadata | $0.005 a request |
| Upload an image or video | Not in X's table | Not listed |
| Read a post, such as checking it went out | Posts: Read | $0.005 a post |
| Look up an account, such as an @mention | User: Read | $0.010 an account |
| Delete a post | Content: Manage | $0.005 a request |
- A link costs more than 13 plain posts. X's table doesn't say what counts as a URL, so plan as if any link in the text does.
- A thread is one post per part. A five-part thread of plain text costs $0.075. Put a link in one part and that part costs $0.200, so the thread costs $0.260.
- Media uploads have no listed price. X's table has no row for uploading images or video, so the totals below leave it out.
- Reads normally count once a day. X deduplicates a post or an account within each UTC day, resetting at midnight. It calls this a soft guarantee: an outage or another edge case can cause another charge.
- Owned Reads cost $0.001 a resource on eligible endpoints. Your authenticated account must own the developer app,
and the endpoint must be on X's list, such as
GET /2/users/{id}/tweets. A read of an individual post by ID isn't on that list; don't assume every read of your own post gets the discount. - X also lists Post: Create (summoned) at $0.010 without saying on that page which posts it covers. The totals below don't use it.
What a month of posting costs
A 30-day month, one account, each post its own request:
| Posts a day | Text only | Every post has a link | With alt text and one read-back |
|---|---|---|---|
| 1 (30 a month) | $0.45 | $6.00 | $0.75 |
| 3 (90 a month) | $1.35 | $18.00 | $2.25 |
| 10 (300 a month) | $4.50 | $60.00 | $7.50 |
The last column is a post without a link, alt text on one image, and one read of the post afterwards: $0.025 a post. These are usage estimates from the listed rates, excluding any media-upload charge and any other calls your app makes. They don't assume free credits or an Owned Reads discount.
Links set the bill. Three posts a day with a link in one of them costs $6.90 a month, and $6.00 of that is the links.
Keeping the bill in check
- Set a spending limit in the Developer Console. Once it's reached, X blocks every request, posts included, until the next billing cycle.
- Watch the balance. Credits are taken as you go. A balance can dip slightly below zero, and then X blocks requests until you add credits.
- Promotional credits aren't a lower rate. X offers eligible accounts a one-time $20 after their first purchase with a qualifying saved card, and a match of their first successful auto-recharge up to $50. These offers have card and account conditions; promotional credits expire after three months (X's free credits page). Neither offer is used in the totals.
Posting through Flaghand
You don't buy X credits to post through Flaghand: Flaghand prepays X's API. If those credits ever run out, your approved posts are held, not lost, and you retry them from the desk once they're topped up (X credits and spend). After each X post, Flaghand reads it back and compares it with what you approved (how that works).