Schedule or publish a post
create_postCreates ONE post on the given accounts of ONE social group: scheduled for later (scheduled_at), published at once (publish_now: true), or saved as a draft that goes nowhere yet (save_as_draft: true). Exactly one of the three. A post is public and goes to real accounts, so only schedule or publish when the user has given the content, the accounts and the time; when unsure, save a draft and tell the user. Every account gets caption, unless captions_by_account gives it a text of its own (a short one for X, a longer one for LinkedIn). Call get_platform_rules first when you are not sure a caption or the media fits a platform. Safe to repeat: the same caption, accounts, time and media a second time returns the post already made instead of posting twice (set allow_duplicate to really send it again).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cover | No | Custom cover for the video on Instagram, Facebook, LinkedIn and Pinterest accounts in this post. Other platforms have no cover option. | |
| tiktok | No | TikTok settings. Without this a TikTok post goes out PRIVATE with comments off, so send it for every TikTok post. | |
| caption | Yes | The post text. Every account gets it unless captions_by_account names that account. | |
| youtube | No | YouTube title, description and thumbnail. No < or > in the title, description or caption of a YouTube post. | |
| timezone | No | IANA timezone name, e.g. Australia/Sydney. Always send it with scheduled_at; never convert to UTC yourself. | |
| account_ids | Yes | Account ids from list_accounts. All of them must be in the same social group: one post goes to one group. | |
| publish_now | No | true = publish immediately. A post with no time is never published unless this is true, so a forgotten time cannot publish by accident. | |
| scheduled_at | No | When to publish, as local wall-clock time in `timezone`, e.g. 2026-10-20T18:00:00. Must be in the future. Leave out only with publish_now. | |
| first_comment | No | Posted under the post right after it publishes, by the same account, on Facebook, Instagram, Threads, X, Bluesky and Mastodon. Other platforms ignore it. get_post shows whether it was posted. | |
| save_as_draft | No | true = only save it. Nothing is published or scheduled and no time is given; the platform rules are checked later, when publish_draft sends it. Not together with scheduled_at or publish_now. | |
| media_file_ids | No | Media ids in display order: from import_image (an image by link), or ids of media already in the Sociro library. This server cannot take a file. Leave out for a text post. | |
| allow_duplicate | No | true = create this post even if the identical one was already created. Only when the user asks to post the same thing again. | |
| social_group_id | No | The social group the post is for, from list_accounts. Usually not needed: Sociro works it out from the accounts. Send it when an account belongs to more than one group, or when Sociro asks for it. | |
| captions_by_account | No | A different text for some accounts: { "<account id>": "text" }. Each key must be one of account_ids. Each text is checked against its own platform's limits. |