Post tweets, threads, images and video to X with one API call - no chunked media upload, no OAuth 2.0 token dance, no reply-chain bookkeeping. We handle the X plumbing so you ship in hours, not weeks.
✓ Bring your own X app ✓ 99.92% uptime ✓ Tweets, threads & media
Building an agent instead of an app? The same account works with our X MCP server.
curl https://api.outstand.so/v1/posts/ \
-H "Authorization: Bearer $OUTSTAND_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "We just shipped it 🚀",
"accounts": ["YOUR_X_ACCOUNT_ID"]
}'Text-only posts a tweet. Add up to 4 images or a video. Use containers[] to post a thread.
Posting to X means a developer account on a paid tier, an app with OAuth 2.0 PKCE, a separate chunked media-upload flow, and access tokens that expire every two hours. Threads are a manual chain of in_reply_to_tweet_id calls. Outstand turns all of it into a single request. If the paid tier is what is stopping you, we worked out what the X API actually costs per post in 2026.
Every content type and capability available on X via Outstand today.
Plus alt text on images and reply threading. Polls and direct messages are not exposed via the posting endpoint.
The same accounts array also fans out to Instagram, LinkedIn, TikTok and more - one request, many platforms.
curl https://api.outstand.so/v1/posts/ \
-H "Authorization: Bearer $OUTSTAND_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accounts": ["YOUR_X_ACCOUNT_ID"],
"containers": [
{ "content": "A thread on how we cut p99 latency 60% 🧵" },
{ "content": "1/ First we profiled the hot path…" },
{ "content": "2/ Then we cached the expensive join." }
]
}'curl https://api.outstand.so/v1/posts/ \
-H "Authorization: Bearer $OUTSTAND_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Launch day in photos 📸",
"accounts": ["YOUR_X_ACCOUNT_ID"],
"media": [
{ "url": "https://media.outstand.so/1.jpg", "filename": "1.jpg" },
{ "url": "https://media.outstand.so/2.jpg", "filename": "2.jpg" }
]
}'curl https://api.outstand.so/v1/posts/ \
-H "Authorization: Bearer $OUTSTAND_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Demo of the new flow 🎬",
"accounts": ["YOUR_X_ACCOUNT_ID"],
"media": [{ "url": "https://media.outstand.so/demo.mp4", "filename": "demo.mp4" }]
}'curl https://api.outstand.so/v1/posts/ \
-H "Authorization: Bearer $OUTSTAND_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "content": "Going live Friday ⏰", "accounts": ["YOUR_X_ACCOUNT_ID"], "scheduledAt": "2026-07-03T16:00:00Z" }'curl https://api.outstand.so/v1/posts/{id}/analytics \
-H "Authorization: Bearer $OUTSTAND_API_KEY"
# → impressions, likes, reposts, replies, quotes, bookmarks, profile_clicks# Read the comments on a published post
curl "https://api.outstand.so/v1/posts/{id}/replies?network=x" \
-H "Authorization: Bearer $OUTSTAND_API_KEY"
# Reply to a comment (or comment on your own post)
curl https://api.outstand.so/v1/posts/{id}/replies \
-H "Authorization: Bearer $OUTSTAND_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "content": "Appreciate it! 🙏", "account_username": "yourbrand" }'Register an X app once, then every tweet after that is one API call.
X is one of the four networks Outstand ships no managed app for, so you create an app in the X developer portal on the tier you need and add its client ID and secret to Outstand once. After that your user authorizes via OAuth 2.0 and we store and refresh the token.
Send text and media with accounts: ["YOUR_X_ACCOUNT_ID"]. Use containers[] for a thread, or add scheduledAt to schedule.
Chunked media upload, reply chaining, retries and rate-limit handling - returned as a unified response with the published post ID.
One integration that grows with everything you ship next.
One request publishes to X and 11 more networks. Same JSON shape everywhere - learn one API, ship them all.
X is BYOK-only on Outstand: we ship no managed X app, so you register your own in the X developer portal on whichever access tier you need, and bring its credentials here. The upside is that the app is yours - your brand on the OAuth screen and your own rate limits - and everything after the credentials is handled for you.
Intelligent rate limiting, automatic token refresh, webhook events and media processing.
$19/mo includes 3,000 posts, then from $0.007/post. No seats, no annual lock-in.
Same endpoints, same data shapes - pick what you ship.
Let your users queue and auto-publish X content from your app.
Give Claude or GPT a tool to post to X. MCP server included.
Pull X reach and engagement alongside every other platform.
Run X posting for clients under your own brand and app.
The questions developers ask before they build.
Yes - the X API v2 lets approved apps post tweets, upload media, read metrics and manage replies. Access is tiered and paid, and you will need your own X app on a paid tier to use X through Outstand. What Outstand removes is everything after that: media upload, token refresh, reply chaining, rate limits, and 11 more networks behind the same endpoints.
Yes. Send POST /v1/posts/ with accounts: ["YOUR_X_ACCOUNT_ID"] and your text. Add up to 4 images or a video in the media array and Outstand uploads and attaches them for you.
Yes. Send a containers[] array - the first container is the root tweet and each following container is posted as a reply, in order, to build the thread.
Yes. Add a scheduledAt ISO-8601 timestamp (up to 30 days ahead) and Outstand publishes the tweet automatically - no cron or queue on your side.
X applies per-app and per-user rate limits that vary by access tier, and returns 429s when exceeded. Outstand queues and throttles requests under the hood, so you never handle a 429 yourself.
Yes. Read the replies on a post with GET /v1/posts/{id}/replies?network=x and post a reply with POST /v1/posts/{id}/replies.
Yes. X supports deleting posts via the API, and Outstand exposes it through DELETE /v1/posts/{id}/remote.
Grab an API key, add your X app credentials once, and post your first tweet. 3,000 posts included, then $0.007/post - dropping to $0.005 at volume.
The same request works on every other platform we support.