Skip to main content

X (Twitter)

X is the most tier-sensitive platform: your account tier (free vs. premium) determines your text and video limits. post.buzz detects your tier at connect time and validates posts accordingly.

Capabilities​

Publish✅ posts, threads
Insights✅ likes, replies, retweets, quotes, impressions, bookmarks
Fetch comments✅
Reply to comments✅
Like comments✅ like + unlike
Like posts✅ like + unlike
Send DM✅
Resolve DM sender✅
Delete post✅
Comment automation✅ (reply + DM)

Media limits​

ConstraintValue
Files0–4 (images and/or videos)
Video max size512 MB
Video aspect ratio1:3 to 3:1
Video min length0.5 s
Video duration (Free/Basic)max 140 s (2:20)
Video duration (Premium/Premium+)max 600 s (10 min)
Image max size5 MB each
Max images4

Videos upload through X's native chunked media endpoint (api.x.com/2/media/upload INIT/APPEND/FINALIZE) — large files are uploaded in segments and polled until transcoding finishes.

Text limits​

TierText limit
Free / Basic280 characters
Premium / Premium+25,000 characters

Your tier is read from the account at OAuth connect and drives the resolveLimit logic for both text and video duration.

How data arrives​

X offers no webhook for mentions or insights — everything is polled. Mentions are fetched from GET /users/{id}/mentions on a schedule and land in the inbox tagged as mentions; insights are polled per post. See Webhooks for how other platforms differ.

Connect notes​

  • Tier (free / premium) is detected and stored on the account row at connect time and drives your per-tier limits.
  • Reconnecting refreshes the tier.
  • The offline.access scope is required so access tokens (which live 2 hours) can be refreshed automatically.
  • See Connect a channel.