Skip to main content
POST
Always a draft. Schedule or publish with PUT /posts/{id}.
custom_content / custom_media are siblings of meta. Omit or send null to inherit the root. "" / [] is an explicit empty override. Required-to-publish meta (Pinterest board_id, TikTok privacy_level, Discord channel_id) is only enforced on scheduled / publishing. Full keys: Per-platform meta.
Media url values must be a public_url from presign. External URLs return 422.

Request

REST requires at least one platforms[] entry (min:1). MCP create-post-tool may omit platforms (every connected account is created disabled until you enable rows).
array
required
At least one entry (min:1).
string
Shared caption. Max 10 000. Defaults to empty. For Pinterest this is the pin description.
array
Shared media. Each item needs url (the presign public_url). Optional meta.alt_text (max 2000).
string
ISO 8601 in the future. Stored on the draft; status stays draft. Omit for scheduled_at: null.

Response

201 with the created post. Shape matches GET /posts/{id}.