Posts
Create Post
Create a new social media post with content, media, and scheduling options
POST
Create Post
Creates a new post that can be scheduled or published immediately across multiple social media platforms. The post can include text content, media attachments, and platform-specific settings.Request
The ID of the workspace where the post will be created
Optional array of label IDs to apply to this post
Array of content objects (threads). Each object can contain text and media. At least one content item with text or media is required.
Type of scheduling. Must be one of:
publish_now, schedule, draft
Optional scheduling object used when
schedule_type is schedule. Provide {"date": "YYYY-MM-DD", "time": "HH:MM", "timezone": "..."} to schedule for a specific date/time, or omit/leave empty to auto-schedule to the next available time slotWhether the post should be repeated
Number of times to repeat the post. Required if repeatable is true.
Time gap between repeats. Required if repeatable is true.
The unit for the repeatable gap. Must be one of:
minutes, hours, days, weeks, months. Required if repeatable is true.Optional. Only when
repeatable is true: account IDs (in this workspace_id) to limit repeat scheduling to those accounts. Omit or empty for default behavior. To turn off repeat scheduling, send repeatable: false on update post.Auto plug, comment moderation, and contact collection each have a dedicated
PATCH endpoint. Repeat scheduling uses repeatable / repeatable_accounts on create and update.Array of account objects to publish to
Response
Unique identifier for the created post
Array of content objects with text, media, and optional
cover_image. Platform cover requirements: TikTok — video_cover_timestamp_ms only; YouTube, Instagram, Facebook — thumbnail only.Status of the post (draft, scheduled, published, failed)
Array of posted timestamps in workspace timezone
Scheduled date and time in workspace timezone
Whether the post is set to repeat
Number of times the post will repeat
Gap between repeats
Unit for the repeat gap (hours, days, weeks, months)
Number of remaining posts in the repeat sequence
Information about the post’s workspace
Array of labels attached to the post
Array of platform-specific post information
Auto plug configuration when enabled, or
null when off. Update via Update post auto plug.Creation timestamp in workspace timezone
Last update timestamp in workspace timezone
Code Examples
Platform-Specific Settings
Each social media platform supports different settings that allow you to customize how your post appears and behaves. These settings are specified in thesettings object for each account in the accounts array.
Twitter/X Settings
- for_super_followers_only: Restrict post visibility to super followers
- reply_settings: Control who can reply (‘everyone’, ‘following’, ‘mentioned_users’)
- quote_tweet_id: Quote an existing tweet
- reply: Reply to a specific tweet
- community_id: Post to a specific community
- share_with_followers: Share community post with followers too
- text: Override the main text content for Twitter
- poll: Create a poll with options and duration
Instagram Settings
- post_type: Choose between ‘REELS’, ‘STORIES’, or ‘POST’
- caption: Custom caption with hashtags and mentions
Facebook Settings
- title: Custom title for the post
- link: Attach a URL to the post
LinkedIn Settings
- visibility: Control post visibility (‘PUBLIC’, ‘CONNECTIONS’, ‘LOGGED_IN’)
- link: Attach a URL to the post
- title: Custom title for the post
YouTube Settings
- video_type: Choose between ‘video’ or ‘short’
- title: Video title
- description: Video description
- privacyStatus: Set privacy (‘public’, ‘private’, ‘unlisted’)
- tags: Array of tags for better discoverability
- embeddable: Allow video embedding
- selfDeclaredMadeForKids: Mark as content for children
- notifySubscribers: Send notifications to subscribers
- category_id: YouTube category
TikTok Settings
- privacy_level: Set video privacy (PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY)
- title: Video title
- description: Video description
- disable_comment: Turn off comments
- disable_duet: Disable duet feature
- disable_stitch: Disable stitch feature
- brand_content_toggle: Mark as brand content
- brand_organic_toggle: Mark as organic brand content
- is_aigc: Indicate AI-generated content
- auto_add_music: Automatically add music
- post_mode: Enum: DIRECT_POST (post directly) | MEDIA_UPLOAD (upload for user to finish in TikTok)
Pinterest Settings
- board_id: Specify which board to pin to
- link: Attach a URL to the pin
- title: Pin title
- description: Pin description
- note: Additional pin notes
- published: Publish immediately or save as draft
Threads Settings
- title: Custom title for the post
- link_attachment: Attach a URL to the post
Telegram Settings
- title: Custom title for the message
- disable_notification: Send silently
- protect_content: Protect from forwarding
Bluesky Settings
- title: Custom title for the post
- website_card: Add a website card with URI, title, and description
Media Guidelines
Different social platforms have different requirements for media. PostSyncer will automatically process your media to meet platform requirements, but keep these limitations in mind:Video cover images
Setcontent[0].cover_image when creating or updating a video post. Only the first content thread’s cover is applied when publishing.
Platform requirements for cover images
| Platform | Cover method | API field |
|---|---|---|
| TikTok | Frame selection from video only | video_cover_timestamp_ms |
| YouTube | Custom thumbnail upload only | thumbnail |
| Instagram (Reels) | Custom thumbnail upload only | thumbnail |
| Facebook (Reels / video) | Custom thumbnail upload only | thumbnail |
Do not send
thumbnail for TikTok — use video_cover_timestamp_ms to pick a frame from the video. Do not send video_cover_timestamp_ms for YouTube, Instagram, or Facebook — upload a cover image and pass its library id (or a public image URL) in thumbnail.content[0].
| Platform | Max Images | Max Videos | Required Media | Max File Size |
|---|---|---|---|---|
| Twitter/X | 4 | 1 | No | 5MB (img), 512MB (video) |
| 10 | 1 | No | 10MB (img), 4GB (video) | |
| 10 | 1 | Yes | 8MB (img), 100MB (video) | |
| TikTok | 35 | 1 | Yes | 20MB (img), 4GB (video) |
| YouTube | 0 | 1 | Yes | N/A, 10GB (video) |
| 5 | 1 | Yes | 20MB (img), 200MB (video) | |
| Threads | 10 | 10 | No | 8MB (img), 1GB (video) |
| Telegram | 10 | 10 | No | 5MB (img), 20MB (video) |
| 9 | 1 | No | 5MB (img), 512MB (video) | |
| Bluesky | 4 | 1 | No | 1MB (img), 100MB (video) |
Error Codes
Validation errors, invalid parameters, or invalid media URLs
Missing or invalid API token
Token does not have ‘posts’ permission
Workspace, label, or account not found
Validation errors in request data