PlanVortex
  • Product
  • Pricing
  • API
  • Login
  • Get started
ProductSee the whole productUse casesComparisonResourcesMulti-network schedulingAI assistantAnalyticsAccount connectionIntegrations & API
PricingAPILoginGet started
Language
Home/Resources/How much does it cost to post on X with the API in 2026
Engineering

How much does it cost to post on X with the API in 2026

7 min read·Published on Aug 12, 2026
Also inEspañol

Posting to X through the API costs 0.015 $. If that same post contains a URL, it costs 0.200 $: thirteen times more. There is no free tier and no flat fee with posts included — the X API is pure pay-as-you-go on prepaid credits. That gap between 15 and 200 credits is what actually decides the cost of publishing to X from your product.

How much does it cost to post on X with the API in 2026?

It costs 0.015 $ per post, or 0.200 $ if the text contains a link. These are the official X prices, verified on 14 July 2026 against docs.x.com/x-api/getting-started/pricing:

Operation on X Cost Credits
Create a post 0.015 $ 15
Create a post containing a URL 0.200 $ 200
Delete a post 0.015 $ 15
Read one of your own resources (tweet stats, a timeline item) 0.001 $ 1
Read the user (users/me) 0.010 $ —

The billing unit is the prepaid credit, and the conversion is direct: 1 credit = 0.001 $. You top up in the Developer Console and every call draws it down immediately.

What matters in this table is not any single row, but the ratio between the first two.

Why does a post with a link cost thirteen times more?

Because X bills it as a different operation. It is not a surcharge on traffic or on the domain you point at: it is enough for the text to contain something X recognises as a URL for the write to jump from 15 to 200 credits.

The practical consequence is that the link, not the post, is the unit of cost. With 1,400 credits you can publish seven posts with a link, or ninety-three without one. That second figure is arithmetic on the prices above (1,400 ÷ 15 = 93) rather than a number X publishes, but it is exactly the calculation to run before deciding how a week of posts is laid out.

In practice, anyone posting to X at any volume lands on the same policy: one post with a link per week, for the content they genuinely want read, and everything else standing on its own.

How do you detect that a post contains a link?

With the same detection X performs when it autolinks, which is broader than it looks. Searching for http is not enough. There are three ways a text ends up paying 200 credits:

  • a URL with a scheme: https://planvortex.com/something
  • a host starting with www.: www.planvortex.com
  • a bare domain with a real TLD: planvortex.com/pricing, x.com

The third case is the troublesome one. The temptation is to solve it with \.[a-z]{2,} and move on, but then any text with a period and no space after it — Hello.World, a typo — reads as a link and you bill your customer 200 credits instead of 15. That is why the detection in PlanVortex requires a TLD from an explicit list:

const TWITTER_LINK_TLDS = [
  "com", "net", "org", "info", "biz", "io", "co", "ai", "app", "dev",
  "es", "eu", "uk", "de", "fr", "it", // ...
];

It is an ugly list and it has to be maintained, but a false positive here is not a formatting bug: it is a charge thirteen times larger than it should be. And the error runs both ways — a false negative leaves the customer out of balance halfway through a scheduled week, because the post was budgeted at 15 credits and X charged 200.

What does measuring cost, not just posting?

One credit per tweet read. That looks negligible next to the 200 of a post with a link, right up until you remember that publishing is paid once and measuring is paid every time.

X does not hand out the analytics of your own tweet: every stats refresh is a billable read at 0.001 $. An account posting roughly one tweet a day and refreshing its metrics regularly spends around 310 credits a month purely on measuring, which is 12 % of the monthly allowance on our Basic plan (2,500 X credits).

That spend grows on its own, with nobody pressing anything, so it needs ceilings. The three we apply:

  1. A slower cadence for X than for the other networks. The job that refreshes stats does not treat X like Instagram, because on X every pass costs money.
  2. A cap of 50 reads per organization per pass. This is the circuit breaker for the rare case: an organization with many X accounts and many recent tweets burning through the allowance overnight.
  3. 20 % of the allowance the automatic refresh cannot touch. Below that remainder the job stops reading stats, and the credits left are reserved for what the user actually asks for.

The reasoning behind all three is the same: publishing always beats measuring. Running out of balance to post because a background job spent the allowance looking at numbers is a far worse failure than a dashboard that is a day stale.

What does this mean if you publish from your own product?

That the cost of X does not fit into a flat fee per connected account. Two customers with one X account each can differ by an order of magnitude: one posts twice a month without links (30 credits) and the other posts daily with a link (about 6,000). Charging them the same means either subsidising the second or overcharging the first.

Three things worth settling before you open the integration to customers:

  • Budget per customer, not global. With a single shared balance, the heaviest poster silently starves everyone else.
  • Cost calculated before sending, not after. The user has to see that this particular post will cost 200 credits while they are writing it, not discover it on the invoice. We use exactly the same link detection in the dashboard and on the server so the number shown and the number billed cannot drift apart.
  • What happens at zero. Running out of budget is not an integration failure and should not be flagged as an error: it is a predictable state that has to be explained to the user.

How PlanVortex bills it

We pass the cost through as it is, with a monthly credit allowance included in the plan: 1.20 EUR per 1,000 credits a month, with a minimum of 5,000 and in steps of 1,000. Credits are contracted at the client level and shared out across its organizations.

Said plainly rather than favourably: this is not cheaper than the alternative, it is the same X rate with the conversion done. The advantage is not the unit price but that the cost follows usage — a connected account that does not post generates no spend — and that the user read performed when connecting or refreshing an account (0.010 $) is not billed to the customer, because X deduplicates it in 24-hour windows and passing it on is not worth it.

X prices change. The ones on this page were verified on 14 July 2026 and this article is reviewed quarterly; if you find a discrepancy with the official X documentation, that one wins.

Frequently asked questions
Does the X API have a free tier in 2026?

No. The X API is pure pay-as-you-go: there is no free tier and no monthly fee with posts included. You top up credits up front in the Developer Console and every operation draws down that balance the moment it runs. When the balance hits zero, writes stop working. Prices verified on 14 July 2026 against the official X documentation.

How much does a post with a link cost compared to one without?

0.200 $ versus 0.015 $: thirteen times more expensive for including a URL in the text. It is the same call to the same API with the same body; the only difference is that X detects a link and applies a different rate. In credits, that is 200 versus 15. It is the single line item that weighs most on the monthly bill of anyone publishing to X through the API.

Does reading the stats of your own tweet cost money?

Yes. Reading one of your own resources costs 0.001 $, that is 1 credit per tweet read. It sounds negligible, but it is a recurring cost: you pay every time you refresh the analytics, not once per publication. An account posting roughly one tweet a day and refreshing its metrics regularly can spend around 310 credits a month purely on measuring.

How much does it cost to delete a tweet posted by mistake?

15 credits, 0.015 $. X bills a delete as another write, at the same price as creating a post without a link. There is no grace window and no refund of what the post cost: if the original tweet contained a link, publishing and then deleting it burns 215 credits.

How do X credits translate into money?

In the X Developer Console one credit equals 0.001 $ of cost. In PlanVortex that allowance is bought as monthly credits at 1.20 EUR per 1,000, with a minimum of 5,000 credits and in steps of 1,000. Credits are contracted at the client level and shared out across the organizations underneath it.

FJ
Francisco José Fernández-Medina López

Software developer and entrepreneur. He builds PlanVortex, the API other software companies use to integrate publishing to Facebook, Instagram, X, LinkedIn, TikTok and WhatsApp inside their own product. A parent and a video game enthusiast.

LinkedIn profile
All resources
PlanVortex
Developed by TaliaSoftWorks S.A.
Phone: 640 29 96 58
About PlanVortexLegalPrivacy
FacebookTwitterInstagram