Back to Blog
xtwitterapiautomationscheduling

How to Post to X (Twitter) With the API in 2026: Setup, Tiers and the Cost Trap

M
Mel Owen
4 min read

Posting to X from your own code is technically the easiest of the major platforms. There is no multi-week App Review, no business verification. The catch with X is money. The API is now a paid product with tiers, and the free tier is deliberately thin. Here is the honest setup and what it actually costs.

What you need first

  • An X developer account at developer.x.com.
  • A Project and an App inside it.
  • OAuth 2.0 credentials with the right scopes.
  • A payment method, because meaningful volume is behind paid tiers.

The setup, step by step

1. Create a Project and App

In the developer portal, create a Project, then an App under it. Grab your client ID and secret, and set your OAuth 2.0 redirect URI.

2. Configure OAuth 2.0 scopes

For posting on behalf of a user you use OAuth 2.0 with PKCE and request:

tweet.write
tweet.read
users.read
offline.access   # so you get a refresh token

offline.access matters: without it you have no refresh token and the user has to reauthorize constantly.

3. Post

Publishing is a single clean call:

POST /2/tweets            # body: { "text": "..." }

Threads are just chained posts, each replying to the previous one via in_reply_to_tweet_id. Media is a separate upload step first, then referenced by media id.

Ready to save hours on social media?

Schedule posts across all platforms from one dashboard.

Try Free

The real obstacle: tiers and cost

X does not gate you with review. It gates you with price and quota. As of 2026 the structure looks roughly like this, and it changes often, so always check current pricing:

| Tier | Rough cost | Rough posting cap | Who it fits | |---|---|---|---| | Free | 0 | Very low, around 1,500 posts per month, write-oriented | Hobby scripts, one account | | Basic | Low hundreds per month | Higher, still capped | Small tools | | Pro | Thousands per month | Large | Serious products | | Enterprise | Call sales | Custom | Platforms |

The free tier is intentionally too small to run a product on, and the jump to real volume is expensive. If you plan to post for multiple accounts or at any real cadence, you are paying every month, forever, per project.

Rate limits stack on top. Each tier has its own per-window rate limits, and hitting them means queuing, backoff, and retry logic you have to build and babysit.

The X API will not make you wait weeks for approval. It will just charge you every month and cap your volume, and the free tier is a demo, not a foundation.

Timeline and effort

| Step | Time | Blocking risk | |---|---|---| | Developer account + Project + App | Under a day | Low | | OAuth 2.0 with PKCE + refresh tokens | 1 day | Medium | | Media upload flow | Half a day | Medium | | Rate-limit handling and retries | Ongoing | Medium | | Paying for a tier that fits your volume | Monthly, forever | Cost, not time |

The honest math

X is the one platform where the DIY code is genuinely quick. The problem is that a real posting cadence pushes you onto a paid tier, and you carry that monthly cost plus the rate-limit engineering yourself, per app, indefinitely. For one hobby account the free tier might do. For anything resembling a business, you are subscribing to the API on top of building and maintaining the integration.

TimeToPost already runs the X integration at scale. You connect your account and schedule threads and posts without a developer project, without picking a tier, and without writing retry logic against rate limits.

FAQ

Is the X API free? There is a free tier, but it is capped very low and is write-oriented. It is not enough to run a product. Real volume requires a paid tier.

Do I need App Review like on Meta? No. X does not have a multi-week review or business verification requirement. Its gate is pricing and quota, not approval.

How do I post threads? Post the first tweet, then post each reply with in_reply_to_tweet_id pointing at the previous one.

Why do I keep getting rate-limited? Each tier has per-window limits. You need queuing and backoff logic, and the lower your tier, the tighter the limits.

If paying monthly for API access and building your own rate-limit plumbing is not appealing, TimeToPost handles X for you out of the box.

Related posts

Put these strategies into action

TimeToPost helps you schedule content, track performance, and grow your audience โ€” all in one place.