Create Social Post
create_social_post[write] Create a DRAFT post (not live, never auto-published) on one social account (account_id or account_uuid); the result carries the post's id and uuid. platform = ig|fb|tw|tt|yt|li|th|tg.
caption fills the platform's text field (ig_post_caption, fb_post_message, tw_post_text, tt_post_title, yt_post_description, li_post_text, th_post_text).
fields = the rest of the /api//posts/create body with prefixed keys, e.g. ig: {ig_post_type: SINGLE|CAROUSEL|REELS, ig_post_items: [{type: IMAGE|VIDEO, url}]};
fb: {fb_post_type, fb_post_items, fb_post_link}; tw: {tw_post_type: TEXT|IMAGE|VIDEO|POLL, tw_post_items}; tt: {tt_post_type: VIDEO|PHOTO, tt_post_items, tt_post_privacy_level};
yt: {yt_post_title, yt_post_privacy_status, yt_post_made_for_kids, yt_post_video_url}; li: {li_post_type: TEXT|IMAGE|VIDEO|ARTICLE, li_post_items, li_post_article_url};
th (Threads, caption up to 500 chars): {th_post_type: TEXT|IMAGE|VIDEO|CAROUSEL, th_post_items: [{type: IMAGE|VIDEO, url, alt_text?}] (one for IMAGE/VIDEO, 2-20 for CAROUSEL), th_post_reply_control: everyone|accounts_you_follow|mentioned_only, th_post_topic_tag, th_post_link_attachment (TEXT only)};
tg (a Telegram user account posting to its own channels/groups): {tg_post_type: TEXT|PHOTO|VIDEO|ALBUM, tg_post_items, tg_post_target_ids: [tg_target_id, 1-10 ACTIVE targets that can_post]} - caption is the text (4096 for TEXT, 1024 under media).
Media items are public urls. Schedule fields are ignored here - use schedule_social_post after approval.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| caption | No | ||
| platform | Yes | ||
| account_id | No | ||
| account_uuid | No |