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.
/openapi/v1/tools/publish_postCall 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.
| Name | Type | Required | Description |
|---|---|---|---|
caption | string | Required | |
channel_id | string | Required | |
hashtags | string[] | null | Optional | |
idea_id | string | Optional | |
idempotency_key | string | Optional | |
media_ids | string[] | null | Required | |
mode | string | Required | |
options | any | Optional | The Tool's result: the JSON object its own output schema describes. |
Response
| Name | Type | Required |
|---|---|---|
channel_id | string | Required |
delivery | string | Required |
group_id | string | Required |
post_id | string | Required |
state | string | Required |
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.