# POST /v1/scheduled-posts/:scheduledPostId/reschedule (/docs/api/reference/publishing/reschedule-post)



<Endpoint method="POST" path="/v1/scheduled-posts/:scheduledPostId/reschedule" auth="Bearer" scope="publish:write" phase="1" />

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](/docs/api/reference/publishing/cancel-post) and re-schedule from the container.

<Parameters
  title="Path"
  rows="[
  { name: 'scheduledPostId', type: 'string', required: true, description: 'Id returned by schedule or publish.' },
]"
/>

<Parameters
  title="Body"
  rows="[
  { name: 'scheduledFor', type: 'string (ISO-8601)', required: true, description: 'New publish time. Must be ≥ 30 seconds in the future.' },
]"
/>

## Example request [#example-request]

<Tabs items="['curl', 'TypeScript', 'Python']">
  <Tab value="curl">
    ```bash
    curl -X POST https://api.layers.com/v1/scheduled-posts/sp_01HXZN4K5M6P7QRS8TUV9WXYZA/reschedule \
      -H "Authorization: Bearer lp_live_01HX9Y6K7EJ4T2_4QZpN..." \
      -H "Content-Type: application/json" \
      -d '{ "scheduledFor": "2026-04-19T18:00:00Z" }'
    ```
  </Tab>

  <Tab value="TypeScript">
    ```ts
    const post = await layers.publishing.reschedule({
      id: "sp_01HXZN4K5M6P7QRS8TUV9WXYZA",
      scheduledFor: "2026-04-19T18:00:00Z",
    });
    ```
  </Tab>

  <Tab value="Python">
    ```python
    post = layers.publishing.reschedule(
        id="sp_01HXZN4K5M6P7QRS8TUV9WXYZA",
        scheduled_for="2026-04-19T18:00:00Z",
    )
    ```
  </Tab>
</Tabs>

## Response [#response]

<Response status="200" description="Rescheduled">
  ```json
  {
    "id": "sp_01HXZN4K5M6P7QRS8TUV9WXYZA",
    "status": "queued",
    "scheduledFor": "2026-04-19T18:00:00Z",
    "updatedAt": "2026-04-18T19:21:08Z"
  }
  ```
</Response>

## Errors [#errors]

| Status | Code              | When                                                  |
| ------ | ----------------- | ----------------------------------------------------- |
| 422    | `VALIDATION`      | `scheduledFor` in the past or \< 30 seconds from now. |
| 401    | `UNAUTHENTICATED` | Missing or invalid key.                               |
| 403    | `FORBIDDEN_SCOPE` | Key lacks `publish:write`.                            |
| 404    | `NOT_FOUND`       | Post not in your organization.                        |
| 409    | `CONFLICT`        | Post is `publishing` or terminal — not reschedulable. |

## See also [#see-also]

* [`DELETE /v1/scheduled-posts/:id`](/docs/api/reference/publishing/cancel-post) — cancel instead
* [`POST /v1/content/:id/schedule`](/docs/api/reference/publishing/schedule-content) — re-schedule from the container if you need to change captions or targets
