Create a draft
createDraftCreate a draft
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"kind": "<kind>",
"body": "<body>"
},
"name": "createDraft"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The exact platform body: x_post or linkedin_post {text, media?: [{media_id, alt}]}; x_thread {posts: [{text, media?}, …]}. The full schema also includes LinkedIn documents, cards, TikTok and slideshows. The API validates the complete body. | |
| kind | Yes | ||
| meta | No | Desk notes, never posted or approved: notes and warnings (string arrays) for the reviewer, when (a timing note). | |
| title | No | A title for the desk. Never posted. | |
| options | No | Two or three text and media versions for the owner to pick when approving; null removes them. Shared fields stay in body. | |
| post_at | No | When it posts: RFC 3339 with a UTC offset, like 2026-10-26T09:00:00-07:00, or "next_slot" (new drafts) for the account's next open posting time. | |
| workspace | No | Leave out for the token's workspace (ws_…). | |
| agent_note | No | A short plain-text note from the agent to the owner: why this post, its sources, what you're unsure of. Shown as one paragraph (line breaks fold into spaces) above the preview in the approval sheet, the desk and the in-chat preview, and frozen into the approval snapshot with the draft, so the approval records the note the owner saw. Never posted or sent to any platform. Changing it doesn't void an approval. Blank or null removes it. | |
| connection_id | No | The selected account: an active connection's id from GET …/connections for the kind's platform. Video-platform drafts never infer it, even with one account. Draft-only saves may omit it; checks and posting approval require it. TikTok mode:approve review alone may keep null and creates no upload job. | |
| idempotency_key | No | A new UUID per request; resending the same key and request is a safe retry. |