Tool
content_publications_schedule
Queue an approved post for publication to one channel at a given time.
Queue an approved post for publication to one channel at a given time. On a reminder channel this does not call the network: at the scheduled time a person is notified to publish by hand, and confirms afterwards with content_publications_confirm.
Behavior
- HTTP
POST /content/publications
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| text | string | — | Per-channel variant of the text, in markdown. Omit to use the post text. It is rendered to plain network text before it is stored — call content_publications_validate first if you want to see the result. |
| postId | string | • | The post to publish. It must already be approved — an unapproved text never publishes. |
| channelId | string | • | The channel to publish to. Get its character limit from content_channels_get first. |
| scheduledAt | string | • | ISO-8601 time to publish. In the past means "as soon as the next tick runs". |
| idempotencyKey | string | — | Your own key for this publishing intent, unique within the product. Resending the same key returns the SAME publication instead of creating a second one — a duplicate in a client feed is the worst defect this product can ship. Omit it and one is derived from post, channel and time. |
Response
| Field | Type | Always | Description |
|---|---|---|---|
| id | string | • | Publication id. |
| text | string | • | The exact text that will be published to this channel — markdown already flattened to plain network text at schedule time. Not the markdown source; that stays on the post. |
| state | string | • | pending (queued) -> publishing (the reminder was sent; a person is publishing by hand) -> published (confirmed) | failed | cancelled. |
| postId | string | • | The post being published. |
| costUsd | number | • | What publishing this costs in USD, computed when it was scheduled. On X a post carrying a link costs 13x a plain one. Null means the cost is not known — an auto channel refuses to dispatch it. |
| attempts | integer | • | How many dispatch attempts have been made. |
| channelId | string | • | The channel it is published to. |
| costBasis | string | • | Which rate produced costUsd: "plain", "link" or "free". |
| createdAt | string | • | ISO-8601 creation time. |
| lastError | string | • | The most recent failure, if any. |
| updatedAt | string | • | ISO-8601 time of the last change. |
| externalId | string | • | The network's id for the published post, once known. |
| externalUrl | string | • | URL of the published post, once known. |
| publishedAt | string | • | ISO-8601 time it was confirmed published. |
| scheduledAt | string | • | ISO-8601 time the publication is due. |
| reminderCount | integer | • | How many reminders have been sent for this publication. |
| idempotencyKey | string | • | The key that makes a retry the same publication. |
| reminderSentAt | string | • | ISO-8601 time the most recent reminder went out, or null if none has. |
Try it
Queue an approved post for publication to one channel at a given time.