How to Automate X (Twitter) Posts

Automate posting to X — the API tiers and what each costs, scheduling, threads, rate limits, and the rules that get automated accounts suspended.

How to Automate X (Twitter) Posts
Quick answer

Automating X posts requires API access with user-context credentials — an app-only Bearer Token cannot post. As of 2026 the default is pay-per-use at $0.015 per post created, or $0.20 if the post contains a link. X has no native scheduling in the API, so a scheduler holds the post and calls at the right time. Automated accounts must be labelled as bots.

What do you need to automate X posts?

Three things, and the second is where most integrations fail:

  1. A developer account at developer.x.com, with a Project and an App inside it.
  2. User-context credentials. An App issues an API Key/Secret, a Bearer Token, and Access Token/Secret. The Bearer Token authenticates but cannot create posts — publishing acts on behalf of a user, so it needs the Access Token pair.
  3. A paid tier or pay-per-use billing. The free tier no longer covers ongoing automated posting.

The X API pricing breakdown covers the tiers and what each actually costs; the short version is that pay-per-use bills $0.015 per post, rising to $0.20 when the post contains a link.

Does the X API support scheduling?

No. There is no scheduled_publish_time on the post endpoint — the call publishes immediately. Every “scheduled tweet” is a system storing the content and issuing the call at the chosen moment.

That means anything automating X on a schedule has to own: credential storage, token refresh, a durable timer that survives restarts, retry on transient failure, and per-post status so a silent failure doesn’t go unnoticed.

What can be automated on X?

FormatsStandard posts, polls
Character limit280 free, 25,000 on paid tiers; polls are always 280
MediaOptional on posts, not allowed on polls
ThreadsSupported — posts chain by replying to the previous post’s ID
Comments / DMsNot available through the publishing API

What gets automated X accounts suspended?

This is the part that costs people their accounts, and it isn’t really technical:

  • Bots must be labelled. An automated account has to identify itself as automated in its profile. There is no grace period.
  • AI-generated replies need prior written approval from X — a separate process, not something the developer portal grants automatically.
  • Your stated use case is binding. The description submitted during onboarding is contractual. Materially changing what your app does requires notifying X first.
  • Duplicate content is a violation. Posting identical text repeatedly, or across multiple accounts, is the fastest route to a suspension.

Automating X posts through Postproxy

Postproxy holds the credentials and the timer, and publishes to X alongside ten other platforms from one request:

Terminal window
curl -X POST "https://api.postproxy.dev/api/posts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"post": {
"body": "Shipped: scheduled posting across 11 platforms.",
"scheduled_at": "2026-08-05T09:00:00-07:00"
},
"profiles": ["twitter"]
}'

Threads chain by referencing the previous post, and the response reports per-platform status — so if X fails while LinkedIn succeeds, you find out from the response rather than from someone noticing days later.

Where to go next

Ready to get started?

Start with our free plan and scale as your needs grow. No credit card required.