Publish a post
Publish text or submit a media post to your connected social accounts.
curl -X POST "https://example.com/api/v1/posts" \ -H "Content-Type: application/json" \ -d '{ "accountIds": [ "11111111-1111-4111-8111-111111111111" ], "posts": [ "Hello from the Posteady API!" ] }'{ "results": [ { "accountId": "11111111-1111-4111-8111-111111111111", "provider": "threads", "username": "your_brand", "success": true, "postIds": [ "18000000000000001" ] } ], "summary": { "succeeded": 1, "failed": 0 }}Publish text to Threads, X or LinkedIn, or submit a media publishing job to TikTok, Instagram, YouTube or Facebook. Choose a request example for your target platform. All account IDs must belong to the API key's workspace.
Choose a publishing mode
- Text: use
accountIdsandposts. Multiple posts form a thread on Threads or X; LinkedIn accepts a single post. - TikTok: use
postsandvideotogether, with one account and one caption. - Instagram, YouTube and Facebook: use the matching platform object with exactly one account. Omit
postsand all other publishing-mode objects. - Media: upload and confirm files before using their
mediaId. Choose images or videos appropriate to the selected format.
Links in X posts
For X, Posteady automatically removes links from the first post (posts[0]), including http://, https://, www., and bare domains such as foo.com or foo.io/path with any path, query string, or fragment. Links in replies (posts[1] onward) remain, and other platforms in the same request receive the original text. To share a link on X, include it in a reply; links are not moved there automatically. X character limits are checked after removal. An empty or whitespace-only first X post after removal rejects the entire request with VALIDATION_ERROR (HTTP 422), before any account publishes. See the X guide for input and published-text examples.
Check the result
Text publishing returns per-account results. Check each success value, including when HTTP 200 is returned. An accepted asynchronous job returns HTTP 202 and results[0].jobId. Here success: true means accepted; use GET /api/v1/publish-jobs/{id} to confirm publication.
Retry a media request
Reuse the same UUID requestId and unchanged input to retrieve the existing job. A different payload with the same ID returns REQUEST_CONFLICT. Facebook returns HTTP 202 while a job is active and HTTP 200 for terminal replays, including failed, canceled and unknown results with success: false. Other media providers return HTTP 502 for unsuccessful terminal replays. Text requests do not provide this idempotency guarantee.
Authorization
apiKey In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Publish text to Threads, X, or LinkedIn; include video for one public TikTok video; include instagram for one Instagram media post; include youtube for one YouTube video; or include facebook for one Facebook Page post. TikTok uses posts and video together. Instagram, YouTube, and Facebook are self-contained modes and cannot be combined with other write modes.
Publish text to Threads, X, or LinkedIn; include video for one public TikTok video; include instagram for one Instagram media post; include youtube for one YouTube video; or include facebook for one Facebook Page post. TikTok uses posts and video together. Instagram, YouTube, and Facebook are self-contained modes and cannot be combined with other write modes.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json