---
title: Update a Scheduled Post - Edit Scheduled Content
description: Update an existing scheduled post or draft with the PostNitro Embed API. Change captions, schedule time, selected accounts, and platform settings.
canonical: https://postnitro.ai/docs/embed/api/schedule/update-scheduled-post
---

# Update a scheduled post

```
PUT /schedule/:id
```

Updates an existing scheduled post in the workspace attached to your API key.
The request body and validation mirror [create](https://postnitro.ai/docs/embed/api/schedule/create-scheduled-post) exactly.

## Authentication

`embed-api-key: <YOUR_EMBED_API_KEY>` header required. See [auth](https://postnitro.ai/docs/embed/api/schedule#authentication).

## Path parameters

| Param | Required | Description |
| --- | --- | --- |
| `id` | yes | Scheduled post id |

## Request body

Identical to [`POST /schedule`](https://postnitro.ai/docs/embed/api/schedule/create-scheduled-post#request-body). All the
same fields, types, and the same conditional
[platform-settings rules](https://postnitro.ai/docs/embed/api/schedule/platform-settings) apply.

## Behavior

1. Confirms the post exists in your workspace (`404` if not).
2. Runs the same validation pipeline as create.
3. Updates the post, then **replaces** its related rows: existing `postContent`
   and account rows are deleted and re-inserted from the request. Per-account
   status becomes `PENDING` unless the post is a `DRAFT`.

## Example request

```bash
curl -X PUT "https://embed-api.postnitro.ai/schedule/post_123" \
  -H "embed-api-key: $EMBED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "SCHEDULED",
    "scheduledAt": "2026-07-02T09:00:00Z",
    "designId": "design_456",
    "postContent": { "common": "Updated caption #relaunch" },
    "selectedAccounts": ["acct_789"],
    "linkedinPostSettings": { "postType": "carousel", "postTitle": null }
  }'
```

## Response `200`

Returns the updated [scheduled-post object](https://postnitro.ai/docs/embed/api/schedule/scheduled-post-object) in `data`
(same shape as [create](https://postnitro.ai/docs/embed/api/schedule/create-scheduled-post#response-200)).

```jsonc
{
  "success": true,
  "message": "Scheduled post updated",
  "data": { /* updated scheduled-post object */ }
}
```

## Errors

Same set as [create](https://postnitro.ai/docs/embed/api/schedule/create-scheduled-post#errors), plus:

| Status | Body | When |
| --- | --- | --- |
| `422` | `{ "status": false, "message": "Post id is required" }` | `id` missing |
| `404` | `{ "success": false, "message": "Post details not found.", "error": ... }` | No matching post in your workspace |
| upstream | `{ "success": false, "message": "Failed to update <status> post", "error": ... }` | DB update failed |
