Schedule a draft post
Takes a draft and queues it up to publish at the time you pass in. Postbreeze handles the rest — when the time comes around, it fans the post out to every account on the post and tries to publish each one.
This also works as a quick way to revive a post that previously failed or was cancelled — call it again with a new time and Postbreeze will give it another go.
Only workspace owners, admins, and editors can schedule posts.
Authorizations
Your Postbreeze API key
Path Parameters
Prefixed cuid of the post to schedule.
"post_01HZX5T2K9Q3RB6N6JZP3RYV0M"
Body
ISO-8601 publish time. Must be in the future.
"2026-06-10T14:00:00.000Z"
Response
The scheduled post.
Prefixed cuid identifier.
Workspace this post belongs to.
User id of the author.
Aggregate publish state. Derived from per-target statuses (PARTIALLY_PUBLISHED when some succeed and some fail).
DRAFT, NEEDS_APPROVAL, SCHEDULED, PUBLISHING, PARTIALLY_PUBLISHED, PUBLISHED, FAILED, CANCELED Default caption applied to every target unless overridden via targets[].captionOverride.
ISO-8601 publish time. Doubles as the calendar pin for drafts (set via draftScheduledAt).
IANA timezone the post was composed in. Cosmetic — used by the UI.
Temporal workflow id driving this post's publish, when scheduled. Null on drafts and after cancellation.
Workflow id staged during the schedule transaction. Visible while a Temporal start is in flight; cleared on commit.
User id of the approver. Set when an NEEDS_APPROVAL post is approved.
When the post was approved, if applicable.
True when the post was authored by an API-key or OAuth request. Cookie-session dashboard posts are false.
True when the request used the flat platforms[] body shape. False for the nested targets[] shape and dashboard posts.
Soft-delete timestamp. Listings and GET /posts/:id exclude rows where this is non-null.
When the post was created.
When the post was last modified.
One fan-out target per connected account this post publishes to.
Library media attached to the post, ordered by order. Per-target overrides on targets[].mediaIds win over this list.