X API Pricing in 2026: What Posting Actually Costs

The X API is pay-per-use in 2026. Exact per-post prices, the legacy tiers, the end of the free tier, and what changes for a developer who only needs to post.

InvisibleAPI Team 8 min read
View as Markdown
X API Pricing in 2026: What Posting Actually Costs
I

InvisibleAPI Team

InvisibleAPI Team

As of September 13, 2026, the X API is pay-per-use. Creating a post costs $0.015, or $0.20 if the post contains a link, and you buy credits before you make the first call. There is no free tier for new developers, and the $200 Basic and $5,000 Pro plans are closed to new signups. If you still search for Twitter API pricing, this is the same product under its new name.

This guide covers the tiers as X publishes them today, the arithmetic for a month of posting, what happened to the free tier, and what changes when you only need to post from a product and route through a unified publishing API instead.

One API instead of the X integration. InvisibleAPI is one job-based API for Instagram and X. Connect the account, create a publishing job, poll it until it reaches published.

Get API key

X API pricing tiers in 2026

Tier Price Who can use it What it means for posting
Pay-per-use Credits, charged per request Everyone. The default for new developers since February 6, 2026 $0.015 per post, $0.20 per post that contains a URL
Free (legacy) $0 Closed to new developers on February 6, 2026 Listed 500 posts per month before it closed. Recently active free users moved to pay-per-use with a one-time $10 voucher
Basic (legacy) $200 per month Existing subscribers only A fixed monthly quota. New signups get pay-per-use instead
Pro (legacy) $5,000 per month Existing subscribers only Same: fixed quota, closed to new signups
Enterprise Custom contract Through X sales Custom rate limits

The pay-per-use rates come from X’s pricing page and X’s changelog, both fetched September 13, 2026. The legacy Basic and Pro figures are the $200 and $5,000 monthly plans X was charging when it announced the switch, as reported by GIGAZINE on February 9, 2026.

Table of the five X API tiers in 2026 with price and posting terms, only pay-per-use open to new developers.
Table of the five X API tiers in 2026 with price and posting terms, only pay-per-use open to new developers.

What one post costs on pay-per-use

X publishes a per-request price for every operation. These are the lines that matter when your app posts:

Operation Price (X pricing page, September 13, 2026)
Post creation $0.015 per request
Post that contains a URL $0.200 per request
Owned reads (your own account’s data) $0.001 per resource
Post reads (other accounts) $0.005 per resource, capped at 3 million post reads per monthly billing cycle

Resources are deduplicated within a 24-hour UTC window, so reading the same post twice in a day is charged once. The prices have already moved twice this year: X’s changelog lists post creation at $0.01 when pay-per-use launched on February 6, 2026, then $0.015 with the $0.20 URL price, announced on April 16, 2026 and effective April 20.

The arithmetic for a month of posting is short. Say you publish 100 posts and 30 of them carry a link: 70 x $0.015 is $1.05, 30 x $0.20 is $6.00, so the month costs $7.05. At 1,000 posts with the same 30 percent link share, 700 x $0.015 is $10.50 and 300 x $0.20 is $60.00, so $70.50. If your code reads each post back to confirm it landed, add $0.001 per read, which is $1.00 per 1,000 posts.

Two worked examples of monthly X API posting cost at 100 and 1,000 posts with 30 percent links, computed from the official prices.
Two worked examples of monthly X API posting cost at 100 and 1,000 posts with 30 percent links, computed from the official prices.

Budget from the $0.20 line. A post with a link costs 13 times a post without one. Products that share release notes, listings, or articles put a link in most posts, so the URL price is the one that drives the bill.

What happened to the X API free tier

The Free tier used to be the answer for a small bot or a side project. In its last published form it allowed 500 posts per month with a small read allowance, which is the tier people still mean when they search for the 500 posts per month free tier. X’s developer portal no longer lists it.

On February 6, 2026, X launched pay-per-use and closed the free tier to new developers. X’s changelog states that Public Utility apps continue to receive free scaled access, and that recently active legacy free users were moved to pay-per-use with a one-time $10 voucher.

What that means today: there is no zero-cost way to post through the X API unless X accepts your app as a for-good Public Utility app. A bot that posts 500 times a month now needs $7.50 in credits, or $100 if every post carries a URL.

Rate limits still apply on top of price

Credits pay for requests. Rate limits cap how fast you can send them, and they did not go away with the tiers. X’s rate-limit page lists POST /2/tweets at 100 requests per 15 minutes per user and 10,000 per 24 hours per app; Enterprise customers get custom limits. A burst of 200 posts from one account will not go through in a quarter of an hour however much credit you hold, so space and queue them.

The cost that is not on the rate card

The rate card prices requests. It does not price the integration you build around them.

For a team whose product is about X, that work is the product. For a team that needs a post button, it is overhead.

If you only need to post: what a unified publishing API changes

InvisibleAPI is a unified API for publishing to social platforms. Instagram and X are live today; TikTok, Facebook, LinkedIn, and YouTube are coming. You connect an X account from the dashboard through X’s own login and consent screens, InvisibleAPI keeps the tokens refreshed, and your code talks to one job-based API. Your invoice counts connected sources, not requests, so the per-post arithmetic above is not the number you budget against. The details are on prices by connected source.

Publishing to X follows X’s documented rules, listed in the connect X guide: text up to 280 characters, up to 4 images or a single video, and image-only carousels. Preflight validation checks those rules before anything reaches X, so a job that breaks the X limit fails with a specific error instead of a surprise at the provider. Each connected account can publish 100 posts per billing period, and the limits endpoint reports live usage so your code can check before a batch.

Publishing is asynchronous. You create a job, then poll it. The request below schedules one X post for a release announcement:

curl -X POST "https://api.invisibleapi.ai/api/v1/organizations/$ORGANIZATION/publishing/jobs" \
  -H "Authorization: Bearer $INVISIBLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "targets": ["acct_x_01"],
    "caption": "Release 2.4 is live. Changelog in the replies.",
    "clientRequestId": "release-2-4-x",
    "requestedPublishAt": "2026-09-15T14:00:00Z"
  }'

The job comes back in a scheduled state, with one delivery per target:

{
  "id": "job_01J8Q6R9",
  "status": "scheduled",
  "clientRequestId": "release-2-4-x",
  "requestedPublishAt": "2026-09-15T14:00:00Z",
  "deliveries": [
    { "target": "acct_x_01", "platform": "x", "status": "pending" }
  ]
}

Poll it until it settles. The job states are pending, scheduled, processing, preparing, submitted, polling, published, partial_failure, failed, action_required, and canceled:

const base = `https://api.invisibleapi.ai/api/v1/organizations/${process.env.ORGANIZATION}`;
const headers = { Authorization: `Bearer ${process.env.INVISIBLE_API_KEY}` };
const done = ["published", "partial_failure", "failed", "action_required", "canceled"];

export async function waitForJob(jobId: string) {
  for (let attempt = 0; attempt < 30; attempt++) {
    const res = await fetch(`${base}/publishing/jobs/${jobId}`, { headers });
    const job = await res.json();
    if (done.includes(job.status)) return job;
    await new Promise((resolve) => setTimeout(resolve, 5_000));
  }
  throw new Error(`Job ${jobId} still processing after 150 seconds`);
}

Because the create call carries clientRequestId, retrying it after a timeout never publishes twice. Because the job is scheduled with requestedPublishAt, you can cancel it before dispatch.

About the field names. The request shape is confirmed against the API reference: targets, mediaItems, caption, requestedPublishAt and clientRequestId, and the create call returning 202. The deliveries array in the job response is still unconfirmed. Check it in the API reference before you ship code that reads it.

The same job model covers Instagram, and the Instagram API pricing guide walks the cost side of that platform. If you want the scheduled version with an approval step, the X posts calendar template is the build recipe. For developers comparing multi-platform social APIs and pricing cliffs, see our Ayrshare alternatives comparison.

Which route fits

You need The fit
Reads, search, DMs, or follower data The X API directly. Only X sells those. Budget with the read prices and the 3 million post-read cap.
Posting to X, and Instagram, from a product, an agent, or an internal tool A unified publishing API: one job model, preflight validation, scheduling, idempotent creates.
A for-good public utility app Apply to X for free scaled access.
An existing legacy Basic or Pro plan Multiply your real monthly volume by the rate card first. 200 posts a month costs $3.00 to $40.00 on pay-per-use, well under $200.

Publish to X from your product without running the X integration yourself

X API pricing in 2026 is a credit balance, a link surcharge, and a rate limit, plus the integration you maintain around them. If posting is all you need, start with the job flow in the quick start, connect an X account, and let the platform rules fail preflight instead of production. Every account starts with a 7-day free trial.

Post to X and Instagram from one API.

Connect the accounts once, create a publishing job, and poll it until it is published. Preflight validation catches a broken post before it reaches the platform, and a clientRequestId makes retries safe.

Sources

Frequently asked questions

Is the X API free in 2026?
Not for new developers. Since February 6, 2026 the X API is pay-per-use: you buy credits and each request deducts a fraction of a cent. X keeps free scaled access only for for-good Public Utility apps.
How much does it cost to post one tweet through the X API?
$0.015 per post created, or $0.20 if the post contains a URL, per X's pricing page on September 13, 2026. Reading your own post back costs $0.001. Rate limits of 100 posts per 15 minutes per user still apply.
Does the X API free tier still allow 500 posts per month?
No. The Free tier that listed 500 posts per month closed to new developers on February 6, 2026, and recently active free users were moved to pay-per-use with a one-time $10 voucher. Posting 500 times a month now costs $7.50 in credits before any link surcharge.
How much is the X API Basic tier?
Legacy Basic was $200 per month and legacy Pro $5,000 per month. Both remain only for existing subscribers; new developers get pay-per-use. Multiply your real monthly volume by the rate card before you decide to migrate.
Can I publish to X with InvisibleAPI today?
Yes. X and Instagram are the live platforms. An X post can carry up to 280 characters and up to 4 images or a single video. You connect the account in the dashboard, create a publishing job, and poll it until its status reaches published.
Tags: #Publishing API

Ready to get started with InvisibleAPI?

Start building with InvisibleAPI today.

Related posts

View all posts
Ayrshare Alternatives: 5 Social Media APIs Compared

Ayrshare Alternatives: 5 Social Media APIs Compared

Compare the top Ayrshare alternatives for developers in 2026. A breakdown of pricing cliffs, multi-tenancy, MCP agent support, and headless posting reliability.

How to Automate Instagram Posts With Code

How to Automate Instagram Posts With Code

Instagram post automation is a queue, a dispatcher, and a failure policy. Here is the build, with the limits check, the idempotency key, and the four failures handled.

Instagram API Error Codes: Which Ones to Retry

Instagram API Error Codes: Which Ones to Retry

Meta documents what each Instagram publishing error means, not what to do about it. Here is every documented code sorted into four decisions: retry, fix, escalate to the user, or stop.