Create Post
create_postCreate a post for one or more social platforms with the option to publish now, schedule for a future time, or save as a draft to validate and publish later.
Instructions
Create one post for one or more platforms: publish now, schedule, or save a draft. Omit scheduledAt to publish immediately; a future scheduledAt sets status SCHEDULED; saveAsDraft stores it as DRAFT and defers validation to publish_draft. Publishing runs asynchronously per platform, so the response ({ postId, queuedPlatforms, isScheduled, scheduledAt }) is not the outcome; read list_post_results, where each platform succeeds or fails on its own. Call list_accounts first: each platform in platforms needs its connection-id array (linkedinConnectionIds, pageIds for Facebook, and so on), one account per platform. TikTok needs tiktokConfigs with privacyLevel; Pinterest needs pinterestConfigs with boardId. mediaUrls must come from upload_media, or the call fails with "Media file(s) not found in storage". Use bulk_schedule_posts for many posts on the same accounts, and update_post or publish_draft for an existing post.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Default post text shared across platforms | |
| pageIds | No | Facebook page account ids from list_accounts (the account id; its pageId value is also accepted). Facebook has no connection-id array | |
| timezone | No | IANA timezone stored with the post for display (e.g. "America/New_York"); it does not shift scheduledAt | UTC |
| mediaUrls | No | Media URLs to attach. Use publicUrl values from upload_media or get_upload_urls | |
| platforms | Yes | Target platforms (e.g. ["LINKEDIN", "TWITTER"]). Each one needs its matching connection-id array (pageIds for FACEBOOK) filled with ids from list_accounts | |
| contentType | Yes | Content type: TEXT, IMAGE, VIDEO, or CAROUSEL. Must match mediaUrls (CAROUSEL needs several) | |
| saveAsDraft | No | Save as DRAFT instead of publishing or scheduling; publish later with publish_draft | |
| scheduledAt | No | Absolute ISO 8601 instant to schedule (e.g. "2026-03-15T10:00:00Z"). Omit to post immediately; a past time also posts immediately | |
| thumbnailUrl | No | Custom thumbnail image URL for video posts | |
| platformTexts | No | Per-platform caption overrides | |
| tiktokConfigs | No | TikTok per-connection config. Each entry needs connectionId + privacyLevel at minimum | |
| youtubeConfigs | No | YouTube per-connection config with video title, tags, privacy, etc. | |
| facebookConfigs | No | Facebook per-page config with post type and video title. pageId must match an entry in pageIds | |
| instagramConfigs | No | Instagram per-connection config to set post type (FEED, REEL, STORY) | |
| pinterestConfigs | No | Pinterest per-connection config. Each entry needs connectionId + boardId; there is no API to list boards, so ask the user for the board id | |
| tiktokConnectionIds | No | TikTok account connection IDs to post from | |
| blueskyConnectionIds | No | Bluesky account connection IDs to post from | |
| threadsConnectionIds | No | Threads account connection IDs to post from | |
| thumbnailTimestampMs | No | Generate thumbnail from video at this timestamp (milliseconds) | |
| twitterConnectionIds | No | X (Twitter) account connection IDs to post from | |
| youtubeConnectionIds | No | YouTube channel connection IDs to post from | |
| linkedinConnectionIds | No | LinkedIn account connection IDs to post from | |
| instagramConnectionIds | No | Instagram account connection IDs to post from | |
| pinterestConnectionIds | No | Pinterest account connection IDs to post from |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | No | An object with postId, queuedPlatforms (platforms whose publishing job was queued; empty for scheduled posts and drafts), skippedPlatforms, isScheduled, and scheduledAt. Publishing is asynchronous: check list_post_results for outcomes. |