list_accounts
accounts:read
string
An agency client id (see
list_clients). When set, returns that client’s connected accounts instead of the team’s own.list_clients
clients:read
id, name, and status. Pass a client id as the clientId argument to publish_post, list_accounts, or list_scheduled_posts to act on that client’s behalf instead of the team’s own accounts. No arguments.
get_platform_capabilities
capabilities:read
string
A single platform (for example
instagram, youtube, linkedin). Omit to get every platform.generate_caption
generate:write
string
required
What the post is about (1-2000 characters).
string
Target platform, so the draft fits its norms and limits.
string
A tone hint (for example
casual, professional).string
Output language.
get_today_idea
ideas:read
topic, angle, format, hashtags, whyItFits, and an optional anchor - the one concrete detail to hang the post on), or null when none is in window. Paid plans see today’s idea; free plans see the idea for the current week.
add_media
media:write
publish_post and update_post require. Media must be Sydium-hosted - an external URL passed straight to publish_post is rejected - so call this first.
Pass either file (a file attached to the conversation) or url (a direct link to the image or video itself, not a web page containing it). Returns the media URL plus its measured size, dimensions and duration, and acceptedBy / rejectedBy - which platforms will take this file.
Supported: jpeg, png, gif, webp, mp4, mov, webm, up to 50MB. HEIC and AVIF (the iPhone photo defaults) are not supported - convert to JPEG first.
The media is removed once its post publishes, so a URL cannot be reused for a second post. Call add_media again.
string
A direct, publicly reachable link to an image or video file. Redirects are followed and each destination is re-validated.
object
A file the user attached to the conversation, supplied by the host as
{ download_url, file_id, mime_type?, file_name? }. Only hosts that support file parameters populate this - see the note below.string
The post type this media is for (
reel, story, carousel, short…). Story and carousel limits are stricter than the platform default, so without it acceptedBy is optimistic. Check rejectedBy before scheduling.File attachments are ChatGPT-only today. ChatGPT reads the tool’s file parameter declaration and passes attachments through, which is what makes drag-and-drop work - on the web client; ChatGPT mobile currently sends incomplete file references. Claude connectors have no equivalent mechanism, so there
url is the only path. If a user wants to post a file from their device and attaching it is not available, ask them for a public link.publish_post
posts:write
id, a rollup status, and per-target results.
string
The post text.
string[]
Up to 35 Sydium-hosted media URLs, as returned by
add_media. Arbitrary external URLs are rejected.string (ISO 8601)
A future timestamp with offset (for example
2026-07-01T09:00:00Z). Omit to publish immediately.object[]
required
1-10 targets, each
{ platform, postType?, options? }. postType and options are platform-specific (for example a YouTube short).string
An agency client id (see
list_clients). When set, the post publishes using that client’s connected accounts. Connectivity is checked against the client, not the team.get_post_status
posts:read
string
required
The operation
id returned by publish_post.update_post
posts:write
caption, media, and/or scheduleAt. Only targets that are still scheduled are updated - a target already publishing or published is left untouched, and the edit never races an in-flight publish. Omitted fields are left unchanged; media: [] clears media. You cannot change which platforms the operation posts to - cancel and re-create for that. Returns the operation’s state after the edit, or a 409 if no target is still scheduled.
string
required
The operation
id returned by publish_post.string
Replacement post text.
string[]
Up to 35 Sydium-hosted media URLs from
add_media (same rules as publish_post). Pass [] to remove all media.string (ISO 8601)
A new future timestamp with offset. The scheduled publish is moved to this time.
string
An agency client id (see
list_clients). When set, scopes the edit to that client’s post.list_scheduled_posts
posts:read
caption is the post’s display text as shown in the app: the video title for YouTube, the caption for caption-first platforms. Published and failed posts are not included.
string (ISO 8601)
Window start. Omit for everything upcoming.
string (ISO 8601)
Window end. Pass
from and to together to bound a range, for example the current week.string
An agency client id (see
list_clients). When set, lists only that client’s scheduled posts.cancel_post
posts:write
string
required
The operation
id to cancel.get_analytics
analytics:read
string (YYYY-MM-DD)
Start date. Defaults to 30 days ago.
string (YYYY-MM-DD)
End date. Defaults to today.

