Configured tool · write
publish_video
Submit finished short-form video for immediate or UTC-scheduled execution.
Human and agent roles
Configured boundary
Configured workspace
Approval depends on trust and eligible plan authorization. This call cannot approve itself, expand trust, or change platform policy.
This reference describes a connection made with @postdom/mcp@0.3.0 and a workspace-scoped agent key created in Accounts.
Callable schema
Input fields
Field names match the configured tool schema. Runtime-only constraints are labeled separately from schema validation.
account_idsRequiredstring[]Exact connected destination identifiers returned by list_accounts.
video_urlOptionalURLFinished media already available at an accepted URL.
media_handleOptionalpd_media_…Postdom-owned media verified through get_media.
captionRequiredstringCaption passed to each destination adapter.
intentRequiredstringThe calling agent's reason for this execution.
agent_identityOptionalstringCaller identity when the configured client does not supply one.
publish_atOptionaldatetimeExact execution time. Omit it for an unscheduled request.
plan_idOptionalUUIDApproved plan proposed as the authorization boundary.
idempotency_keyOptionalstringCaller-supplied replay key. The adapter generates a UUID when omitted.
Synthetic values
Example call
Identifiers and values are examples. They do not represent a connected workspace or accepted media source.
publish_video({
account_ids: ["acct_example_ig", "acct_example_yt"],
video_url: "https://media.example.invalid/launch.mp4",
caption: "Three moves that changed our launch",
intent: "Execute the approved launch schedule",
publish_at: "2026-09-03T09:00:00Z",
plan_id: "11111111-1111-4111-8111-111111111111"
})Configured behavior
Adapter defaults
The configured adapter adds platform settings after validation. These values are behavior, not callable publish_video inputs.
Private review
Uses SELF_ONLY, disables comments, duet, and stitch, confirms consent, and marks the video as AI-made.
Reel disclosure
Uses reel content and marks it AI-generated. The adapter supplies no Instagram visibility field.
Private review
Uses private visibility, not made for kids, and synthetic-media disclosure. The first caption line becomes the title, capped at 100 characters.
No settings sent
The adapter sends no LinkedIn settings at all. The Posts API requires a visibility value, so LinkedIn sets one on the account's behalf; Postdom neither chooses nor reads it. There is no AI-disclosure field on this destination, so none is sent.
Reel format only
Publishes as a Reel. That format is the only value the adapter sends and it is fixed, so there is nothing to choose. Facebook Reels expose no AI-disclosure field on the publishing path, so none is sent - unlike Instagram, where the same Reel format carries one.
No settings sent
The adapter sends no X settings at all. X exposes no visibility field on the publishing path and no AI-disclosure field, so nothing is chosen on the account's behalf and nothing is disclosed.
No settings sent
Publishes to Spotlight, which needs a Public Profile on the account - a regular account cannot publish. The adapter sends no Snapchat settings; the endpoint does expose a save-to-profile option Postdom does not send, so this is a destination where Postdom chooses none of the options rather than one with no options.
No settings sent
The adapter sends no Threads settings. Meta's posting endpoint exposes no visibility field and no AI-disclosure field, so nothing is chosen on the account's behalf and no disclosure accompanies the post. A Threads profile is public or private and the post inherits that from the account, so the audience control exists one level up rather than not at all.
No settings sent
The adapter sends no Bluesky settings, and here that means there is nothing to send: an app.bsky.feed.post carries no visibility field, so every post is public. Reply gating lives in separate threadgate and postgate records rather than in the post, and Postdom writes neither. Connecting uses an app password rather than an authorisation redirect.
Observed API record
Return shape
Returns the initial post response. Its fields vary with draft, approval, scheduled, or publishing state.
id · statusidentity · post state- Created post identifier and exact current state.
scheduled_fordatetime | null- Resolved schedule. Null does not imply an exact execution time.
plan_idUUID | null | optional- Present on scheduled, publishing, and approval responses. Draft responses omit it.
plan_authorizationobject | null | optional- Present on scheduled, publishing, and approval responses. Draft responses omit it.
version · request_hashreview metadata- Returned on human-review and draft paths.
approval_schemestring | optional- Present on approval responses and identifies the immutable-request approval scheme.
messagestring- Human handoff detail on draft or approval paths.
Stop conditions
Agent handoff
draftHand to a human
A human can publish now or schedule the draft.
requires_approvalWait for review
No provider request has been made at this state.
scheduled · publishingRead the post
Use get_publish to follow the post and destination states.
not_appliedPreserve the reason
Return the exact authorization reason without widening the request.