X (Twitter)

X (Twitter) scheduling that counts characters the way X does

X counts characters its own way: every link is 23, most emoji count double. Postwoo counts the same way before you schedule, uploads your images with alt text, publishes through the official X API v2 with OAuth 2.0, and reports the public metrics X gives for each post.

What agencies use it for

  • Text posts with links, counted as X counts them
  • Up to four images per post, with alt text
  • Impressions, likes, reposts, replies, quotes and bookmarks per post
  • Followers tracked from the moment you connect
Capability matrix

Exactly what X (Twitter) allows

Live from the integration itself. Statuses move from pending verification to supported only after an end-to-end check with approved credentials.

OAuth connectionOAuth 2.0 with PKCE (confidential client, basic auth on the token endpoint): tweet.read tweet.write users.read offline.access media.write. Access tokens last 2 hours; the refresh token rotates on every refresh.pending
Account discoveryGET /2/users/me — one X account per connection.pending
Location discoveryX accounts have no sub-locations.not possible
Publish text postsPOST /2/tweets {text}. 280 characters (URLs count as 23); longer for accounts X reports as Premium.pending
Publish a single imagePOST /2/media/upload (multipart, media_category=tweet_image) → POST /2/tweets media.media_ids.pending
Publish multiple imagesUp to 4 images per post, each uploaded first.pending
Publish videoChunked upload (POST /2/media/upload/initialize → append → finalize, then status polling) is possible; not built yet.planned
Attach a linkX has no separate link field: the URL is added to the text and X renders the card itself.pending
Call-to-action buttonCall-to-action buttons exist only in X ads, not organic posts.not possible
Native platform schedulingThe X API has no scheduled publish time; Postwoo schedules and publishes at the right time.not possible
Delete postsDELETE /2/tweets/{id}.pending
Edit published postsPosts cannot be edited through the X API.not possible
Direct media uploadDirect upload of image bytes to X (POST /2/media/upload).pending
Account-level analyticsGET /2/users/me public_metrics: followers and post count as lifetime totals. X's API has no daily account analytics.pending
Post-level analyticsGET /2/tweets/{id}?tweet.fields=public_metrics: impressions, likes, replies, reposts, quotes, bookmarks (lifetime).pending
Read reviewsX has no reviews.not possible
Reply to reviewsX has no reviews.not possible
Delete review repliesX has no reviews.not possible
Real-time webhooksX's account activity webhooks need an Enterprise plan; not used.not possible
Token & permission healthGET /2/users/me probe + granted-scope check.pending
Read business profileBusiness profile management (hours, Q&A, profile photos) is only implemented for Google Business Profile in Postwoo.not possible
Update opening hoursBusiness profile management (hours, Q&A, profile photos) is only implemented for Google Business Profile in Postwoo.not possible
Read questions & answersBusiness profile management (hours, Q&A, profile photos) is only implemented for Google Business Profile in Postwoo.not possible
Answer questionsBusiness profile management (hours, Q&A, profile photos) is only implemented for Google Business Profile in Postwoo.not possible
Upload profile photosBusiness profile management (hours, Q&A, profile photos) is only implemented for Google Business Profile in Postwoo.not possible
Hashtag lookupHashtag lookup uses Instagram's official hashtag search; Postwoo does not implement it for this platform.not possible
Post a first commentAutomatic first comments are only implemented for Instagram in Postwoo.not possible
Read commentsReplies to the account's posts (search conversation_id) depend on the X API plan; not built yet.planned
Reply to commentsPOST /2/tweets with reply.in_reply_to_tweet_id is possible; not built yet.planned
Hide commentsHiding replies (PUT /2/tweets/{id}/hidden) is not built.not possible
Read direct messagesDirect messages are not used by Postwoo.not possible
Reply to direct messagesDirect messages are not used by Postwoo.not possible
Image alt textPOST /2/media/metadata alt_text (≤1,000 characters) after each image upload.pending
Custom video coverPostwoo does not send a custom video cover here (no official cover field implemented); the platform picks its own thumbnail.not possible
Limits

Platform limits we enforce before you schedule

The composer checks these for every target so a post is never queued only to fail later.

Text length280 characters
Images per post4
Videos per post0
Image typesjpeg, png, webp, gif
  • Text: 280 characters, as X counts them: every link counts as 23, most emoji and CJK characters count as 2. Accounts X reports as Premium may post up to 25,000.
  • Up to 4 images (JPEG, PNG, WebP or GIF, each ≤5 MB). Video is not built yet.
  • A link is added to the text; X shows the preview card itself.
  • How many posts an app may write per month depends on its X API plan (Developer Portal).

Free tool: check a caption against X (Twitter)'s limits

Access

What the platform requires

  • An X developer account and a Project with an App (developer.x.com). In User authentication settings choose OAuth 2.0, type "Web App, Automated App or Bot" (confidential client), permissions "Read and write", callback URL …/oauth/x/callback and your website URL.
  • Use the OAuth 2.0 Client ID and Client Secret (X_CLIENT_ID / X_CLIENT_SECRET, or Admin → X), not the API key/secret.
  • Scopes: tweet.read, tweet.write, users.read, offline.access (refresh tokens) and media.write (image upload).
  • The number of posts and reads an app may make depends on its X API plan or pay-per-use credits; when they run out X answers 429/402 and Postwoo shows X's message.
  • Access tokens expire after 2 hours; Postwoo refreshes them with the rotating refresh token.

Postwoo handles the app side. You connect with an account that has the right role on the platform.

FAQ

Questions, answered honestly

Does Postwoo post videos to X?

Not yet. Video upload is planned; today Postwoo publishes text, links and images.

Why do X limits depend on a plan?

X decides how many posts an app may write each month through its API plans. When the allowance runs out X refuses the post and Postwoo shows X's message instead of pretending it went out.

Can I post longer than 280 characters?

Only if X reports the account as Premium. Otherwise Postwoo keeps you within 280, counted the way X counts.

Other integrations

Google Business ProfileFacebook PagesInstagramLinkedInYouTubeTikTokThreadsPinterestBluesky

Ready to woo your clients?

Start free, connect a Google Business Profile, and see real reviews and metrics in the feed within minutes.