Create draft post
create_postCreate a draft post targeting one or more connected accounts. Body is validated against each target platform's limits immediately. Optional media: public image URLs with alt text, downloaded and checked right away; the schedule preview reports one still downloading or refused. Optional quote_url: the link to one post, sent as the platform's own quote, or on X as the link at the end of the text, which stays visible above X's quote card and counts toward the post's length; it is refused where a target is on another platform, cannot quote, or cannot carry a quote beside the media. A retry with the same idempotency_key returns the post already created; reusing the key with different arguments is rejected. series_key files the post as the next installment of that series. This saves a draft: scheduling is a separate step.
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": {
"body": "<body>",
"target_account_ids": "<target_account_ids>",
"idempotency_key": "<idempotency_key>"
},
"name": "create_post"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | the post text | |
| media | No | images to attach, by public URL | |
| quote_url | No | link to one post to carry as the platform's own quote, on that post's platform; list_platforms says which platforms can | |
| series_key | No | file this post as the next installment of a series (from list_series) | |
| idempotency_key | Yes | unique key for this exact creation request; generate once and pass unchanged on every retry | |
| target_account_ids | Yes | connected account ids to publish to (from list_accounts) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| post | Yes | ||
| reused | No | ||
| series | No |