Supported content
Connect accounts in the Unsora app, then list them via
Get accounts. Note: YouTube accepts
video posts only; text-only posts work on Facebook, LinkedIn, Bluesky, and
Threads.
Media requirements
Make sure media matches each platform’s rules before creating the post. Media that violates them fails at publish time: the post ends upFAILED
(or PARTIALLY_PUBLISHED) with the platform’s error on the affected
account — fix the media and create a new post, or use
Retry post for accounts that failed for other
reasons.
Images should be JPEG — Instagram’s API only accepts JPEG, and TikTok
photo posts accept JPEG/WebP. PNG images posted to TikTok are converted to
JPEG automatically at publish time. Videos should be MP4/MOV (H.264 + AAC)
at a publicly reachable URL.
Before you post
- Active paid plan + API key or Clerk JWT.
- Get accounts → copy each account
id. - Pick
videoorslideshow. For Instagram reels, optionalcover_url.
Request body
string
required
Post caption. Legacy alias:
mainCaption.array
required
[{ "id": "<account-uuid>" }] — up to 10 accounts. Each account object also
accepts optional title (YouTube video title / Pinterest pin title) and
customCaption (overrides caption for that account only).object | null
object
Optional publish options for Instagram, TikTok, YouTube, and Pinterest. You can also send
instagram, tiktok, youtube, or pinterest at the top level of the body (same shape as below). Other keys under settings return 400.string
ISO 8601 with timezone, ≥ 2 minutes ahead. Omit for draft.
string
Idempotency key (max 128 chars) or use
Idempotency-Key header.Instagram reel cover
Onlycover_url — a public image URL:
settings.tiktok.video_cover_timestamp_ms.
Platform settings (optional)
Supported providers: Instagram, TikTok, YouTube, Pinterest — viasettings.<provider> (or the same keys at the top level of the body). Nothing is required; omit settings if you do not need them. YouTube video titles and Pinterest pin titles go on the account object (accounts[].title), not in settings.
Response
Examples
Post lifecycle
DRAFT → SCHEDULED → PUBLISHING → one of:
For
FAILED or PARTIALLY_PUBLISHED posts, call
Retry post — it re-attempts only the failed
accounts and never double-posts. Per-account results (including
publishedUrl and error) are on each post’s postAccounts.

