Skip to main content
PATCH
Edit a scheduled post before publishing starts
First, get the post. Check that data.editable is true, and copy data.revision. Then send that number as expected_revision with at least one field to change. Fields you leave out stay the same. You can change the text, media, first comments, publish time and time zone, auto-reply setting, platform options, and destinations. One edit changes the whole post group. The scheduled time must still be in the future, and no platform in the group may have started publishing.

Change the text

Replace 1 with the revision from the GET response. A successful edit returns the updated post and its new revision.

Change the profile or platforms

Send destinations with both the target profile’s public profile_id and the complete final platform list. Every platform in the group uses that one profile. A platform left out of the list is removed from the scheduled post.
Use List Connection Profiles to find profile IDs and the platforms connected to each profile. If you send profile_id in the URL query, it identifies the post’s current profile. Put the new profile in destinations.profile_id. If you change only the platforms, send the current profile ID in destinations.profile_id. When you move to another profile, Mallary clears saved account choices from the old profile, such as a LinkedIn author or Pinterest board. Send new platform_options if you need those choices. When sent, media, comments_under_post, and platform_options replace their saved values. Send an empty array to clear media or first comments, or an empty object to clear platform options. If the API returns 409, get the post again before making another edit. The post may have changed or started publishing.

Authorizations

Authorization
string
header
required

Use Authorization: Bearer {api_key}

Path Parameters

id
integer
required

Query Parameters

profile_id
string

Optional current profile of the post. The target profile belongs in destinations.profile_id. Random public connection profile ID returned by GET /api/v1/profiles.

Pattern: ^[A-Za-z0-9]{6,32}$
Example:

"AbC123xYz90"

Body

application/json
expected_revision
integer
required

Revision returned by GET /api/v1/posts/{id}. A stale value returns HTTP 409.

Required range: x >= 1
message
string
Minimum string length: 1
media
object[]

Replaces all saved media. Send an empty array to remove media.

comments_under_post
(string | object)[]

Replaces all saved comments. Send an empty array to remove comments.

Maximum array length: 3
scheduled_at
string

New future publish time. Send an absolute time or a local time with scheduled_timezone.

scheduled_timezone
string | null

IANA timezone. Send null to clear it when scheduled_at is absolute.

auto_reply_enabled
boolean
platform_options
object | null

Complete replacement map of per-platform options. Send an empty object or null to clear all overrides.

destinations
object

Response

Scheduled post updated

status
enum<string>
Available options:
ok
data
object
Last modified on September 29, 2026