Browse documentation

Tool

Create a draft or publish a post

Create one post for one connected account. Use list_my_accounts for channel_id and list_media for uploaded media IDs. A draft may reference media that is still uploading, but publishing requires all media to be ready. mode now queues publishing and usually returns pending; check results in Cuekoo Studio (there is no status Tool yet). TikTok defaults to inbox delivery; even for inbox, mode now requires the user's explicit content_preview_confirmed and express_consent_given. Never set consent fields on the user's behalf. Ask the user to confirm the privacy level and the consent statements first. Minimal options: TikTok inbox {"delivery":"inbox","content_preview_confirmed":true,"express_consent_given":true} only after the user confirms both; Instagram {"content_type":"post"}; YouTube {"title":"Video title","visibility":"private"}. Direct TikTok also requires an explicit privacy_level and both confirmations. Set idea_id to link the post to an idea (get_idea); when the post goes live the idea moves to its done group. Set idempotency_key to a new UUID for each new post and send the same value when retrying the same call: a retry with the same key and input returns the original post instead of publishing twice.

POSTtools.writeFree
POST/openapi/v1/tools/publish_post

Call it

curl -X POST https://api.cuekoo.com/openapi/v1/tools/publish_post \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"caption":"<string>","channel_id":"<id>","media_ids":[],"mode":"<string>"}'

The MCP tool is named cuekoo_publish_post. Arguments and results are identical to the REST call.

Arguments

Send a JSON object with these fields. Scope: tools.write.

NameTypeRequiredDescription
captionstringRequired
channel_idstringRequired
hashtagsstring[] | nullOptional
idea_idstringOptional
idempotency_keystringOptional
media_idsstring[] | nullRequired
modestringRequired
optionsanyOptionalThe Tool's result: the JSON object its own output schema describes.

Response

NameTypeRequired
channel_idstringRequired
deliverystringRequired
group_idstringRequired
post_idstringRequired
statestringRequired

A call returns the Tool's output object at HTTP 200. Failures use the error envelope.

Credits

This Tool is free. It does not reserve or spend credits.