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.
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:
- A developer account at
developer.x.com, with a Project and an App inside it. - 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.
- 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?
| Formats | Standard posts, polls |
| Character limit | 280 free, 25,000 on paid tiers; polls are always 280 |
| Media | Optional on posts, not allowed on polls |
| Threads | Supported — posts chain by replying to the previous post’s ID |
| Comments / DMs | Not 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:
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
- X (Twitter) API pricing in 2026 — tiers, per-post costs, and how to get an API key
- X (Twitter) API posting integration guide — the endpoint-level walkthrough
- Auto-post blog content to X, LinkedIn and Threads — RSS-triggered publishing
- Scheduling social posts with cron and an API — if you’d rather run the timer yourself
Postproxy
One API for every social platform
Publish to Instagram, X, LinkedIn, TikTok, YouTube and more with a single request. Free plan, no credit card required.