Update a scheduled post
PUT /schedule/:idUpdates an existing scheduled post in the workspace attached to your API key. The request body and validation mirror create exactly.
Authentication
embed-api-key: <YOUR_EMBED_API_KEY> header required. See auth.
Path parameters
| Param | Required | Description |
|---|---|---|
id | yes | Scheduled post id |
Request body
Identical to POST /schedule. All the
same fields, types, and the same conditional
platform-settings rules apply.
Behavior
- Confirms the post exists in your workspace (
404if not). - Runs the same validation pipeline as create.
- Updates the post, then replaces its related rows: existing
postContentand account rows are deleted and re-inserted from the request. Per-account status becomesPENDINGunless the post is aDRAFT.
Example request
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 in data
(same shape as create).
{
"success": true,
"message": "Scheduled post updated",
"data": { /* updated scheduled-post object */ }
}Errors
Same set as create, 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 |
Last updated on