Schedule post
Schedule a post for future publishing to one or more social accounts via socialAccountIds. Provide EXACTLY ONE of scheduledAt or useNextSlot=true (supplying both, or neither, is rejected 400 before any credits are reserved). With scheduledAt, the instant must be at least 60 seconds in the future and within the scheduling horizon (otherwise 400). With useNextSlot=true, the server resolves the next unfilled scheduling slot for the target account(s) inside the insert transaction and returns the resolved scheduledAt; if no slot is free within the 90-day horizon it is rejected 409. timezone is an optional IANA name. The call handles each account separately and returns HTTP 200 with one result per account: each entry in data[] is either a scheduledPost or an error (including insufficient credits on costed providers, which reserve credits per account), plus an outcome summary (status, totalCount, successCount, failureCount). Always read the per-account results in the body rather than trusting the status code alone. Send an Idempotency-Key header so timed-out retries replay the original result instead of double-scheduling; use postNow to publish immediately.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Team (workspace) id (UUID). Discover ids via the list teams endpoint or the agent context.
Post id (UUID), as returned by the create post and list posts endpoints.
Body
UUIDs of the connected social accounts the post fans out to; at least one is required, duplicates are rejected, and each account gets its own per-account result.
1a Universally Unique Identifier
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$["0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d"]ISO 8601 timestamp to publish at; must be at least 60 seconds in the future and within 90 days. Provide EXACTLY ONE of scheduledAt or useNextSlot=true (supplying both, or neither, is rejected with 400).
"2026-06-15T09:00:00Z"
When true, the server resolves the next unfilled scheduling slot for the target account(s) inside the insert transaction and uses it as scheduledAt. Provide EXACTLY ONE of scheduledAt or useNextSlot=true (supplying both, or neither, is rejected with 400).
true
IANA timezone name the schedule was chosen in, used for calendar display and (with useNextSlot) slot resolution; scheduledAt itself is absolute.
"Europe/London"
Provider-specific publish settings. Each field applies to one provider (named in its description) and is ignored by accounts on other providers, so a single object can carry settings for every account the post targets. Unknown keys are rejected.
{ "replySettings": "following" }Per-account overrides of the shared platform settings, keyed by social account UUID; values merge over platformSettings for that account.
Comment to post on the published post immediately after it goes live.
Comment to post once the published post reaches likeThreshold likes within windowHours (1 to 720 hours).
Repost the published post offsetDays (1 to 30) after publish, either as a plain retweet or a quote (text required for quote mode).
Republish the post every N days (1 to 365) until recurrenceEndsAt.
1 <= x <= 3657
ISO 8601 timestamp after which the recurrence stops; null means no end date.
"2026-09-01T00:00:00Z"