Layers

POST /v1/scheduled-posts/:scheduledPostId/reschedule

Change the scheduled time of a queued post.

View as Markdown
POST/v1/scheduled-posts/:scheduledPostId/reschedule
Phase 1stable
Auth
Bearer
Scope
publish:write

Move a queued post to a different time. Only posts in status: queued are reschedulable - once a post is publishing or terminal, reschedule returns 409 CONFLICT.

Captions and targets are immutable after scheduling. To change those, cancel and re-schedule from the container.

Path
  • scheduledPostId
    stringrequired
    Id returned by schedule or publish.
Body
  • scheduledFor
    string (ISO 8601, UTC Z)required
    New publish time. **Must be in the future** — a ~30s clock-skew tolerance applies, but anything further in the past returns `422 VALIDATION` with `details.issues[0].path = "scheduledFor"`. To publish a queued post immediately, [cancel](/docs/api/reference/publishing/cancel-post) it and re-issue via [`POST /v1/content/:id/publish`](/docs/api/reference/publishing/publish-content) instead — the `/reschedule` endpoint is for moving the time of a pre-publish row, not for converting it to publish-now.

Time zones. scheduledFor is interpreted as a literal UTC instant, regardless of the project's timezone field. The project's timezone controls cron-driven managed-distribution slot generation; it does NOT shift partner-supplied scheduledFor values. To reschedule to "9am next Monday in the user's local timezone," convert in your application code first (e.g. new Date("2026-05-25T09:00:00-04:00").toISOString()"2026-05-25T13:00:00Z"). Response timestamps (scheduledFor, updatedAt) are likewise always UTC with the Z suffix.

Example request

curl -X POST https://api.layers.com/v1/scheduled-posts/sp_4c8e7d2f-9a1b-4c3d-8e7f-2a1b3c4d5e60/reschedule \
  -H "Authorization: Bearer lp_..." \
  -H "Content-Type: application/json" \
  -d '{ "scheduledFor": "2026-04-19T18:00:00Z" }'
const post = await layers.publishing.reschedule({
  id: "sp_4c8e7d2f-9a1b-4c3d-8e7f-2a1b3c4d5e60",
  scheduledFor: "2026-04-19T18:00:00Z",
});
post = layers.publishing.reschedule(
    id="sp_4c8e7d2f-9a1b-4c3d-8e7f-2a1b3c4d5e60",
    scheduled_for="2026-04-19T18:00:00Z",
)

Response

200Rescheduled
{
  "id": "sp_4c8e7d2f-9a1b-4c3d-8e7f-2a1b3c4d5e60",
  "status": "queued",
  "scheduledFor": "2026-04-19T18:00:00Z",
  "updatedAt": "2026-04-18T19:21:08Z"
}

Errors

StatusCodeWhen
422VALIDATIONscheduledFor is malformed or in the past (~30s clock-skew tolerance applies). details.issues[0].path is "scheduledFor".
401UNAUTHENTICATEDMissing or invalid key.
403FORBIDDEN_SCOPEKey lacks publish:write.
404NOT_FOUNDPost not in your organization.
409CONFLICTPost is publishing or terminal - not reschedulable.

See also

On this page