Posting to X programmatically, without the gray areas
X's API v2 lets an authorized app publish posts on your behalf through OAuth 2.0 — you approve the app on X's own site, and it receives a scoped, revocable token. No password sharing, no browser bots, nothing that risks your account.
The scopes that matter are tweet.write for publishing, users.read for showing which account is connected, and offline.access so a refresh token keeps scheduled posts working.
The rules your tool must enforce
SparkSocialHq's composer counts characters live against the 280 limit and Auto-Adapt trims longer captions at a word boundary, so an X post never bounces after you hit publish.
- ✓ 280 characters per post on standard accounts — links count for 23
- ✓ Up to 4 images per post (JPEG, PNG, GIF, WebP)
- ✓ Rate limits apply per user — bursts of posts may be delayed
One caption, X-sized automatically
The same caption that runs 2,000 characters on LinkedIn can't ship on X. Auto-Adapt produces the X-sized cut automatically — and if you want a hand-written short version instead, a per-network override takes precedence.
Connect X once on the Connections page, then every post you compose can include it, published instantly or scheduled to the minute.