Create Posts (Batch)
create_postsCreates up to 50 posts in one call, each saved as a draft (status=draft) with a proposed slot; nothing is scheduled or published until confirm_post approves it. Handler gives every post a slot that honors per-platform daily caps and spacing and does not collide with the other posts in the batch. Returns the draft ids with their assigned slots and a summary (total, per-platform breakdown, calendar span). Posts in a batch take no scheduled_date, idempotency_key or company_page_id. Platforms: X, LinkedIn and Threads; a post with platform bluesky or mastodon fails the whole batch with an error, because publishing to them isn't available yet. Each post's content publishes as a single post; parts separated by a line containing only --- make that post a thread (X and Threads). Every response carries status_before, status_after and approval_required.
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": {
"posts": "<posts>"
},
"name": "create_posts"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| posts | Yes | Array of posts to schedule (max 50). | |
| dry_run | No | When true, the call validates and returns the proposed schedule without writing drafts. | |
| campaign_mode | No | When true, Handler relaxes spacing rules for this batch. Daily caps stay enforced. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| posts | Yes | ||
| notice | No | ||
| dry_run | Yes | ||
| success | Yes | ||
| summary | Yes | ||
| timezone | No | ||
| server_now | No | ||
| status_after | No | ||
| status_before | No | ||
| approval_reset | No | ||
| timezone_source | No | ||
| approval_required | No |