Skip to Content
GuidesCommon posting tasks

Common posting tasks

Quick recipes organized by what you want to accomplish, not by platform. Each task links to platform-specific guides for caveats.


Post a single image

Works on: Instagram, Twitter/X, LinkedIn, Facebook, Threads, Bluesky, Mastodon

create_post( content: "Check this out 📸", accountIds: ["acc_your_account_id"], contentType: "IMAGE", mediaUrls: ["https://cdn.example.com/photo.jpg"] )

JSON tool-call equivalent:

{ "tool": "create_post", "arguments": { "content": "Check this out 📸", "accountIds": ["acc_your_account_id"], "contentType": "IMAGE", "mediaUrls": ["https://cdn.example.com/photo.jpg"] } }

Tell your agent: “Post this image to my [platform] account: [https://…]. Caption: [text].”

Platform notes: Instagram requires contentType: "IMAGE". YouTube does not support standalone image posts.


Post a carousel

Works on: Instagram (2–10 items), LinkedIn (up to 20), Threads, Facebook

create_post( content: "Swipe through →", accountIds: ["acc_your_account_id"], contentType: "CAROUSEL", mediaUrls: [ "https://cdn.example.com/slide-1.jpg", "https://cdn.example.com/slide-2.jpg", "https://cdn.example.com/slide-3.jpg" ] )

JSON tool-call equivalent:

{ "tool": "create_post", "arguments": { "content": "Swipe through →", "accountIds": ["acc_your_account_id"], "contentType": "CAROUSEL", "mediaUrls": [ "https://cdn.example.com/slide-1.jpg", "https://cdn.example.com/slide-2.jpg", "https://cdn.example.com/slide-3.jpg" ] } }

Tell your agent: “Post a carousel to my [platform] account with these images: [url1, url2, url3]. Caption: [text].”

Platform notes: CAROUSEL contentType is required on Instagram. LinkedIn does not use CAROUSEL as a contentType — pass IMAGE with multiple URLs instead.


Post a Reel or short-form video

Works on: Instagram (REEL), YouTube (VIDEO ≤60s 9:16 = Shorts), TikTok (when live)

create_post( content: "Our latest drop 🔥", accountIds: ["acc_instagram_abc123"], contentType: "REEL", mediaUrls: ["https://cdn.example.com/reel.mp4"] )

JSON tool-call equivalent:

{ "tool": "create_post", "arguments": { "content": "Our latest drop 🔥", "accountIds": ["acc_instagram_abc123"], "contentType": "REEL", "mediaUrls": ["https://cdn.example.com/reel.mp4"] } }

Tell your agent: “Post this video as a Reel to Instagram account [acc_id]: [https://…video.mp4 ]. Caption: [text].”

Platform notes: Instagram Reels require contentType: "REEL". YouTube Shorts are detected automatically when the video is ≤60 seconds in 9:16 format — use contentType: "VIDEO".


Schedule a post

Works on: all platforms

create_post( content: "Launch day 🚀", accountIds: ["acc_your_account_id"], contentType: "IMAGE", mediaUrls: ["https://cdn.example.com/launch.jpg"], scheduledFor: "2026-06-01T15:00:00Z" )

JSON tool-call equivalent:

{ "tool": "create_post", "arguments": { "content": "Launch day 🚀", "accountIds": ["acc_your_account_id"], "contentType": "IMAGE", "mediaUrls": ["https://cdn.example.com/launch.jpg"], "scheduledFor": "2026-06-01T15:00:00Z" } }

Tell your agent: “Schedule a post to [platform] account [acc_id] for [date/time ISO 8601]. Content: [text]. Media: [url].”

scheduledFor must be an ISO 8601 datetime in UTC. Omit scheduledFor to post immediately.


Save as draft

create_post( content: "Draft — needs review before publishing.", accountIds: ["acc_your_account_id"], contentType: "IMAGE", mediaUrls: ["https://cdn.example.com/photo.jpg"], saveAsDraft: true )

Tell your agent: “Save this as a draft on [platform] account [acc_id]. Don’t publish yet. Caption: [text]. Media: [url].”


Add a first comment

Works on: Instagram, LinkedIn, Facebook, YouTube, Twitter/X

create_post( content: "New product just dropped.", accountIds: ["acc_your_account_id"], contentType: "IMAGE", mediaUrls: ["https://cdn.example.com/product.jpg"], firstComment: "Shop the link in bio 👆 #newdrop", firstCommentDelay: 30 )

Tell your agent: “Post to [platform] [acc_id]. Caption: [text]. Add a first comment 30 seconds after publishing: [comment text].”

firstCommentDelay is in seconds (0–3600). Set to 0 to post the comment immediately after publishing.

Platform notes: Bluesky, Threads, and Mastodon do not support first comments — the parameter is accepted but ignored for those platforms.


Validate before posting

validate_content( content: "Your caption here", platforms: ["INSTAGRAM", "TWITTER"] )

JSON tool-call equivalent:

{ "tool": "validate_content", "arguments": { "content": "Your caption here", "platforms": ["INSTAGRAM", "TWITTER"] } }

Tell your agent: “Before creating the post, validate this caption against Instagram and Twitter: [caption text].”

Returns per-platform errors (blocks posting) and warnings (advisory). Always fix errors before calling create_post.


Retry a failed post

retry_post(postId: "post_abc123")

JSON tool-call equivalent:

{ "tool": "retry_post", "arguments": { "postId": "post_abc123" } }

Tell your agent: “Check post [post_id] — if it failed, retry it.”

Works on posts with status failed (all platforms failed) or partial (some platforms failed). Successfully-published platforms are never re-posted. If a platform has exhausted 3 retries, see the Recovery playbook.


Post the same content to multiple platforms

create_post( content: "Shared base caption for all platforms.", accountIds: [ "acc_twitter_abc123", "acc_linkedin_abc123", "acc_instagram_abc123" ], contentType: "IMAGE", mediaUrls: ["https://cdn.example.com/photo.jpg"], platformOverrides: { "TWITTER": { "content": "Short version for Twitter! 🐦 #launch" }, "LINKEDIN": { "content": "Detailed professional version for LinkedIn with full context and a call to action for our professional network." } } )

Tell your agent: “Post to my Twitter, LinkedIn, and Instagram accounts simultaneously. Base caption: [text]. For Twitter, shorten to: [short text]. For LinkedIn, use: [professional text].”

Platform notes: Each platform gets its own publish attempt. Failures on one platform do not prevent others from publishing. Check get_post to see per-platform results.

See the full Multi-platform example for a complete walkthrough.

Last updated on