Skip to content
DocsReference

X (Twitter)

ℹ️
Posting is available on all plans. Analytics are unavailable on X/Twitter's free API tier — upgrade your X Developer account to a Basic or Pro plan to unlock per-post insights.

LetsPost posts to X via the X API v2, using OAuth 2.0 with PKCE. The free API tier has meaningful restrictions — read the gotchas section before expecting full parity with what you can do manually.

Authentication

Connect via X OAuth 2.0 (PKCE). LetsPost requests:

  • tweet.read — read your tweets and timeline
  • tweet.write — post and delete tweets on your behalf

X access tokens expire after 2 hours and are refreshed automatically with a refresh token. If you see "X reconnect required" in LetsPost, the refresh token has been revoked — this happens when you change your X password or revoke app access in X settings.

Supported formats

FormatSupportedNotes
Text tweetUp to 280 characters. URLs count as 23 characters regardless of actual length.
Image tweetUp to 4 images per tweet. JPEG, PNG, WebP, or GIF (static). Max 5 MB per image.
Video tweet1 video per tweet. MP4 or MOV, max 512 MB, max 2 min 20 s.
Animated GIF1 GIF per tweet (cannot mix with images or video). Max 15 MB.
ThreadNot supported yet. Thread creation requires multiple API calls in sequence — planned for a future release.

Limits & quotas

LimitValue
Tweet text280 characters
Images4 per tweet
Video1 per tweet
Video file size512 MB
Video duration2 min 20 s
Image file size5 MB

Gotchas

  • Free API tier: no long-form postsX's free API tier does not support long-form posts (X Articles). The 280-character limit applies. Upgrading to a paid X developer plan gives access to longer post formats, but that is configured on X's side, not in LetsPost.
  • Rate limits hit fastThe free X API tier allows a limited number of tweet writes per 15-minute window. If you're publishing in bulk, LetsPost will queue posts and space them out automatically to avoid hitting the limit.
  • URLs always count as 23 charactersX wraps all URLs in their t.co shortener, so every URL counts as exactly 23 characters toward your 280-character limit, regardless of the original URL length. The LetsPost composer shows the correct character count.
  • Images and video can't be mixedA single tweet can have up to 4 images, or 1 video, or 1 GIF — but not combinations of these. The composer will prevent you from adding both images and a video to the same tweet.
Was this page helpful?

Something unclear? Email us — we read every message.