create_post
Create a post in Posthive. BY DEFAULT posts are saved as DRAFTS and require manual approval in the Posthive review queue before anything is published. Nothing is published automatically unless schedule_directly is explicitly set to true with a future scheduled_time. Use list_accounts to get valid account IDs before calling this tool. Each platform has its own character limit for both the post text and the first_comment — the request is rejected with a 400 if either exceeds it for any selected account: Bluesky 300, Threads/Mastodon/Pinterest 500, Instagram/TikTok 2200, Discord 2000, LinkedIn 3000, Telegram/Tumblr 4096, YouTube 5000, Nostr/Lemmy 10000, Twitter/X 25000, Facebook 63206. Check the content and first_comment length against the shortest limit among the selected platforms before calling, and warn the user if a caption (especially a long hashtag block) would be rejected.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The post text content. | |
| dry_run | No | Full pipeline test without real API calls. | |
| media_type | No | Instagram media type. 'post' = feed image/carousel, 'reel' = video reel, 'story' = story. Only relevant for Instagram accounts. | |
| media_urls | No | Array of already-uploaded media URLs (images or video). Upload via POST /api/v1/upload first to get URLs. | |
| account_ids | Yes | Array of account IDs. Use list_accounts to get IDs. | |
| per_account | No | Per-account content overrides. Keys are account IDs. | |
| youtube_type | No | YouTube video type. 'short' = YouTube Short (vertical, ≤60s), 'video' = standard upload. Only relevant for YouTube accounts. | |
| first_comment | No | Optional first comment to fire after the post goes live. | |
| repeat_ends_at | No | ISO 8601 datetime after which no more repeat occurrences are created. Omit for indefinite repeating. | |
| scheduled_time | No | ISO 8601 datetime for publish time. Required when schedule_directly is true. | |
| repeat_interval | No | Repeat this post automatically after each successful publish. Spawns the next occurrence at the same time. | |
| schedule_directly | No | When true, post is scheduled directly and publishes at scheduled_time without manual approval. Requires scheduled_time. Defaults to false (saves as draft). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| _note | No | ||
| draft | No | ||
| status | No | ||
| targets | No | ||
| scheduledFor | No |