Skip to main content
POST
Create a post (draft, scheduled, or published)

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
profileId
string
required

Profile that owns the post

title
string

Title of the post. Required by YouTube (100 characters max) and ignored by platforms that have no title.

Maximum string length: 100
content
string

Text / caption of the post. REQUIRED, except when asStory is set and every target is an Instagram or Facebook account: a story has no caption.

accountIds
string[]

Target account ids — the short form. Use platforms instead to tailor the content per platform. Exactly one of the two is required.

platforms
object[]

Targets with per-platform overrides. Exactly one of platforms and accountIds is required.

mediaItems
object[]

Media of the post. This is the canonical shape: it carries the type, alt text and thumbnail, which mediaUrls cannot.

mediaUrls
string[]
deprecated

Legacy shorthand: a list of URLs, converted to mediaItems (type inferred from the extension). Ignored when mediaItems is provided.

scheduledFor
string

Scheduled date (ISO 8601). Without an offset ("2027-01-01T12:00:00") the time is read in timezone; with an offset or a Z it is an absolute instant. The post moves to scheduled and is published automatically at that time.

Example:

"2027-01-01T12:00:00"

timezone
string

IANA timezone scheduledFor is expressed in (e.g. "Europe/Paris"). Ignored when the date already carries an offset.

Example:

"Europe/Paris"

publishNow
boolean
default:false

Publish immediately

asDraft
boolean
default:false

TikTok only: send the video to the creator's inbox as a draft (Content Posting API, video.upload scope) instead of publishing it directly. The creator finishes the post in the TikTok app.

trialReel
boolean
default:false

Instagram only: publish the video as a trial reel — shown to NON-followers only, never to your own followers, until you choose to release it from the Instagram app. Requires a video and an account with at least 1,000 followers. Ignored by the other platforms.

asStory
boolean
default:false

Instagram and Facebook Pages: publish to the STORY instead of the feed. A story lasts 24 hours, carries no caption (content is ignored, and may be omitted when every target is an Instagram or Facebook account) and takes exactly one media — on Instagram a JPEG image (8 MB max) or an MP4/MOV video of 3 to 60 seconds (100 MB max), on a Facebook Page an image (10 MB max) or an MP4 video of 3 to 90 seconds. Cannot be combined with trialReel. Ignored by the other platforms, which have no story API: TikTok does not expose one, LinkedIn and YouTube retired theirs.

trialGraduation
enum<string>
default:MANUAL

Instagram only, with trialReel: how the trial ends. MANUAL — you decide in the Instagram app whether to release the reel to your followers. SS_PERFORMANCE — Instagram releases it on its own if the trial performs well.

Available options:
MANUAL,
SS_PERFORMANCE
shareToFeed
boolean
default:true

Instagram only, reels: also show the reel in the account feed, not just in the Reels tab.

allowComment
boolean
default:true

TikTok only: let other users comment on the video. Forced off when the creator's own TikTok settings already disable comments.

allowDuet
boolean
default:true

TikTok only: let other users Duet the video. Forced off when the creator's own TikTok settings already disable duets.

allowStitch
boolean
default:true

TikTok only: let other users Stitch the video. Forced off when the creator's own TikTok settings already disable stitches.

privacy
enum<string>
default:public

Visibility of the published video. YouTube maps it directly (unlisted = reachable by link but not listed). TikTok has no unlisted, so both unlisted and private publish as SELF_ONLY — visible to the account owner only. The other platforms ignore it.

Available options:
public,
unlisted,
private
tiktokPrivacyLevel
enum<string>

TikTok only: the exact privacy level the creator picked, among those returned by GET /accounts/{id}/publish-options. Takes precedence over privacy, which only knows three values where TikTok has four. Rejected if the creator is not allowed to use it.

Available options:
PUBLIC_TO_EVERYONE,
MUTUAL_FOLLOW_FRIENDS,
FOLLOWER_OF_CREATOR,
SELF_ONLY
promotionalContent
boolean
default:false

TikTok only: the video promotes the creator's own brand, product or business. TikTok labels it « Promotional content ».

paidPartnership
boolean
default:false

TikTok only: the video promotes a third party as a paid partnership. TikTok labels it « Paid partnership », which wins over « Promotional content » when both are declared. Cannot be combined with a private (SELF_ONLY) visibility.

Response

201 - undefined