Publish now
Post a video, image, or text update to a connected channel immediately.
User intents
"Post this video to my YouTube channel now." "Publish https://cdn.example.com/promo.mp4 (opens in a new tab) to my Facebook page as public."
Required information
- The target channel (resolve to a
connectionId). - The content
type(video,image,link,text,reel,short,story,carousel). - A media source: a public
mediaUrl, a base64fileContent, or anuploadSessionId(see Large-file upload). - Platform
payloadfields (title, description, privacy, …).
Preconditions
- At least one active connection. If none, run Connect a channel first.
- The connection token is valid — see Check connection health.
Tool sequence
Discover capabilities
get_platform_capabilities — confirm supported type, payload fields, limits, and allowed values for the platform.
Find the channel
list_connections — resolve the channel name to a connectionId.
Create the assignment
create_assignment — pass connectionId, type, payload, and one media source. Omit scheduledAt to publish immediately.
Confirm
get_assignment — poll until status reaches published (pending → uploading → uploaded → processing → published).
REST alternative
POST /api/v1/assignments — see the Assignments reference.
Recovery paths
- 402
insufficient_credits/user_spending_limit_exceeded— stop; the user must top up or raise the limit. See the error catalog (opens in a new tab). - Token expired (connection
tokenStatus: expired) — re-authorize withget_oauth_connect_url. - Assignment ends in
failed— see Retry a failed assignment. - Payload rejected — re-run
get_platform_capabilitiesand rebuild thepayload.
Example prompt → result
"Post https://cdn.example.com/promo.mp4 (opens in a new tab) to my 'Tech Reviews' YouTube channel. Title 'Launch day', make it public."
Result: a new assignment that transitions to published with a platformUrl to the live video.
YouTube defaults to private. Always set "privacy": "public" explicitly. (YouTube/Facebook only.)
Common mistakes
- Omitting privacy on YouTube → the video publishes but stays hidden.
- Supplying more than one media source — pass exactly one of
mediaUrl,fileContent,uploadSessionId. - Guessing payload fields instead of calling
get_platform_capabilitiesfirst.