Start scheduling posts
<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>
Hands the app's approved posts to the publisher, so each one goes out at its own scheduled time.
The work runs in the background. Poll Get scheduling job with the returned job_id to see how it went. Starting a second run for the same app while the first one is still starting is refused.
Calling it again for the same window normally returns the job already in flight instead of starting a second one, but treat that as best-effort rather than a guarantee. A retry sent in the moment before the job starts running can come back with a new job_id. Nothing is published twice when that happens, because both runs resolve the same automation for a given post.
It takes the posts whose scheduled_at falls in [scheduled_from, scheduled_until) and that aren't handed over yet, which means the posts you approved plus the ones an earlier run couldn't place. A post still in proposal isn't taken at all, so approve it first.
Placing a post can fail for reasons this endpoint can't check up front, and each one is counted in the job's result rather than failing the request:
- The workspace is on the free plan. Publishing scheduled posts needs a paid workspace plan, and those posts are counted in plan_limited.
- The app has no connected account for the post's platform with publishing permission, or it has more than one. Those posts move to needs_reconnect and are counted there, and a later run picks them up once you fix the connection.
- The post's platform can't be published to at all, or its scheduled time has already passed. Those posts move to failed, which is final.
Path parameters
ID of the app whose social calendar you want.
ID of the app whose social calendar you want.
Request body
Example request
{
"scheduled_from": "2026-09-01T00:00:00Z",
"scheduled_until": "2026-10-01T00:00:00Z"
}Response
The scheduling job that is now running, or the one already in flight for this range.
Example response
{
"job_id": "68a1c4f0d21b4e0a3c77e912",
"status": "pending"
}Changes
No recorded changes to this endpoint across all 14 revisions of this API.