invalid-request (400)
The post body is malformed, has missing fields, or combines incompatible options.
Fix: Validate the JSON and send only one compatible post mode, such as media or a poll.
X supports up to four photos, one video, or one GIF per post, but those media types cannot be mixed. The API does not require one fixed static-image resolution. PublishQ automatically resizes very high-resolution images to fit.
Updated July 2026
Recommended sizes
Use these sizes when you need a sensible default. The tables below cover the limits enforced by the API.
Landscape image
1600×900 (16:9)
A good timeline-friendly image size.
Landscape video
1280×720
The documented landscape video resolution.
Large images
Any resolution
PublishQ automatically resizes very high-resolution images to fit.
API limits
Check these values in your upload validator or before an agent submits a post.
Media limits for a single X post.
Copy and API constraints that commonly affect automated posts.
Common publishing errors
Find the returned code or the closest matching failure below, then fix the cause before retrying the post.
The post body is malformed, has missing fields, or combines incompatible options.
Fix: Validate the JSON and send only one compatible post mode, such as media or a poll.
The app or access token cannot use the requested posting operation.
Fix: Check the app access tier, OAuth scopes, and user-context authentication.
The project has exhausted its current X API usage allowance.
Fix: Wait for the usage window to reset or review the project’s API plan.
Too many requests were sent inside the endpoint’s rate window.
Fix: Read x-rate-limit-reset and retry after that time with backoff.
The post exceeds the account’s text allowance after X applies weighted character counting.
Fix: Shorten the X version. Remember that links count as 23 characters and some Unicode characters count as two.
X found an identical or near-identical post published recently by the same account.
Fix: Change the post meaningfully before trying again. Repeating the same request will keep failing.
The X access token has expired, was revoked, or no longer belongs to an authorized app session.
Fix: Reconnect the X account and approve posting access again.
Send PublishQ the post. We check it, prepare the media, and deliver it to X (Twitter). You can work in the dashboard or connect through the API, CLI, or MCP server.
Common questions about X (Twitter) media sizes and API publishing limits.
1600×900 works well for landscape images. X does not require one fixed static-image resolution, but photos must be JPEG, PNG, or WebP and no larger than 5 MB.
An X post can contain up to four photos, or one video, or one GIF. These media modes cannot be mixed.
Use the PublishQ API, CLI, or MCP server for X posts. PublishQ checks text, polls, media combinations, and reply settings before delivery.
API reference for Twitter API.
See exactly how your posts will look on Twitter, Instagram, LinkedIn, TikTok, and more before you publish. No signup required.
Preview how your post looks on each platform, customize the text per account if needed, then publish or schedule to all of them at once.
Write different text for each platform in a single post. Shorten for Twitter, go long on LinkedIn, add hashtags for Instagram — without creating separate posts.
Schedule posts, manage accounts, and upload media programmatically. Build your own integrations, automate workflows, or connect PublishQ to your existing tools.
Schedule tweets with text, images, GIFs, video, and polls. Set reply settings and customize text per account. Post without doomscrolling your timeline.