Blog
How to

How to connect X to post mate (2026 guide)

YSYurii Shevchyk·Founder, Post Mate
5 min readMay 27, 2026
X Corp · OAuth 2.0 with PKCE · sign in with X
X with PKCE done for you.

X uses OAuth 2.0 with PKCE — a more secure variant than the old OAuth 1.0a flow some tools still use. post mate handles the PKCE challenge transparently. Once connected, X becomes a regular row in /app/connections and you schedule posts, threads, images, GIFs and video from the same editor as every other platform.

Connect X in 5 steps

  1. Open /app/connections and click "Connect X"

    post mate redirects you to x.com's OAuth screen. The flow uses PKCE, so the code challenge is generated client-side — you don't see it, but it stops anyone intercepting the redirect from reusing the code.

  2. Approve the scopes

    X requests tweet.read, tweet.write, users.read and offline.access. The last one is what gives post mate a refresh token — without it, you'd have to re-authorise every two hours.

  3. Land on /app/connections

    Your X handle appears as a connected row. Tokens are refreshed automatically; if you change your X password, the connection will ask you to reconnect.

  4. Compose a post or thread

    In /app/compose, pick the X account, write text, attach up to 4 images, or attach a video. To compose a thread, click "Add reply" — each segment is a separate post wired up at publish time. If you have X Premium, the character counter switches to 25k automatically.

  5. Schedule and watch the timeline

    At the scheduled time, post mate calls POST /2/tweets, capturing the post ID. If you scheduled a thread, the second post is sent immediately after with in_reply_to_tweet_id set to the first ID, and so on. Errors from X surface on the post detail page.

Once you're back inside post mate the account shows up on /app/connections with a green connection dot. From there it's available as a target in every composer.

What you can post to X from post mate

  • Text post — 280 chars free; 25k for Premium.
  • Image post — Up to 4 images per post.
  • GIF — One GIF per post; no images mixed in.
  • Video — MP4, up to 512 MB free / longer on Premium.
  • Threads (reply chains)
  • Quote post — Add a quote URL field in /app/compose.
  • ×Polls — Not exposed on the v2 Manage Posts endpoint.

X API capabilities — the honest list

What works

  • Text up to 280 / 25k (Premium)
  • Images, GIFs, video
  • Reply chains (threads)
  • Quote posts
  • In_reply_to / quote_tweet_id targeting

What the API doesn't expose

  • Polls (no v2 endpoint)
  • Editing a post after publish (only available to Premium in-app)
  • Spaces creation
  • Pinning posts
  • Reading DMs on the standard scope

FAQs

Does this work with X Premium / paid API access?

Yes. post mate runs against the standard v2 Manage Posts endpoint. Both free and Premium accounts can connect. Premium just lets you write longer posts.

Why did my post fail with "duplicate content"?

X blocks identical posts within a short window per account. If you scheduled the same text twice by mistake, only one goes through. Edit one to make it unique.

Can I schedule a thread of many posts?

Yes. Add as many replies as you want in /app/compose. post mate fires them sequentially, waiting for each ID before sending the next.

Does post mate store my X password?

No. OAuth 2.0 with PKCE means X holds the credentials. post mate stores tokens only, revocable from x.com/settings/connected_apps.

What if I revoke the app on x.com?

Your row in /app/connections flips to "disconnected" at the next API call. Reconnect to resume the queue — nothing is deleted.

Ready to schedule your first post?

Sign up for post mate, connect X from /app/connections, and start cross-posting from a single composer. 14-day free trial, cancel anytime — no credit card to start the trial when you sign up with Google.

Ready to post once, everywhere? Start a free 14-day trial — no card.

Got a question for the author?
Reply to this post on Bluesky — Yurii usually answers within a day.