scheduled_at field to POST /v1/posts. SocialAPI holds the post and publishes it at the scheduled time. Multi-platform fan-out works the same way as immediate publishing: one post object, multiple targets, one scheduled time applied to all of them.
How scheduling works
Setscheduled_at to an ISO 8601 timestamp in the future. SocialAPI validates the request immediately and queues it for delivery at the specified time.
"publish_now": true. Passing neither scheduled_at nor publish_now saves the post as a draft (even when targets are provided), it is not published.
Managing scheduled posts
List scheduled posts
Filter by status to see all upcoming posts:Edit or reschedule a post
UsePATCH /v1/posts/:pid to update the text, media, or schedule time of a post in draft, scheduled, or failed status. Editing a failed post lets you correct content issues before calling POST /v1/posts/:pid/retry. Update the scheduled time with:
Publish a draft or scheduled post now
To publish a post that is currently indraft or scheduled status, call the publish endpoint. This sends it to all targets immediately and synchronously (the response reflects the final delivery result):
PATCH only edits a post’s content, it does not trigger publishing. Consumes 1 post credit.
Cancel a scheduled post
Delete it before it publishes:scheduled, draft, or failed status can be deleted. Once a post enters publishing, it cannot be stopped.
Status lifecycle
Every post moves through this state machine:draft reaches publishing either by being created with publish_now: true, or later via POST /v1/posts/{pid}/publish.
Deleting a post permanently removes it (the post returns
404 on subsequent fetch). For scheduled posts, any pending platform deliveries are marked cancelled before the post row is removed.
Platform scheduling support
When you setscheduled_at, SocialAPI holds the post in its own queue and publishes it when the scheduled time arrives. This works the same way for every platform: the post is sent to the platform only at the scheduled moment, and the platform’s own scheduler is never used. Every platform below accepts scheduled_at.
YouTube: scheduled_at vs publish_at
YouTube has its own native scheduling, which is a separate feature from scheduled_at. The two behave differently:
scheduled_at(this page): SocialAPI holds the post and uploads it to YouTube at the scheduled time. YouTube is not told about the schedule.platform_data.youtube.publish_at: SocialAPI uploads the video to YouTube right away, and YouTube itself makes it public at the given time.
scheduled_at to have SocialAPI do the waiting; use publish_at to hand scheduling to YouTube. See YouTube posts for details.
To discover scheduling support programmatically instead of hardcoding this table, call GET /v1/posts/validate. Each platform includes a scheduling object with a supported boolean. It is true for every publishing platform today, but querying it means your integration never relies on a hardcoded list that can silently go stale.
Related
- Posts overview for the full publishing capability matrix
- Platform support for per-platform feature coverage
- API Reference for the complete
POST /v1/postsschema