Edit and delete posts · Robopost Docs

Edit and delete posts

On this page

Change a post with PATCH, remove it with DELETE. Both answer with the post as it is afterwards, so you can check the result in the same call.

You need: the post's id, and ideally its revision from your last read (the ETag header).

Change or reschedule a post

Send only the fields that change:

curl -X PATCH https://public-api.robopost.app/v1/scheduled_posts/8c1f2a40-… \
  -H "Authorization: Bearer $ROBOPOST_API_KEY" \
  -H "Content-Type: application/json" \
  -H 'If-Match: "4"' \
  -d '{"text": "New caption", "schedule_at": "2026-11-21T09:00:00Z"}'

You can change text, schedule_at, first_comment, made_with_ai, the media (image_object_ids, video_object_id, gif_object_id), any network's settings object (it replaces that network's settings), and the recurrence fields. Unknown fields are refused with 422, so a typo never passes silently. The channel can't change: delete the post and create it on the other channel.

Don't overwrite someone else's change

With If-Match: "<revision>", the change is applied only if nobody changed the post since you read it. Otherwise you get 412 REVISION_MISMATCH with current_revision: read the post again, decide, retry. Without If-Match a change made at the same moment still never gets silently overwritten: you get 409.

Unschedule (cancel) a post

{ "status": "draft" }

The post becomes a draft: it won't publish, and stays in the team's drafts. Schedule it again later with {"status": "scheduled"} (and a new schedule_at if you like). A draft created for several channels at once can't be scheduled this way: create the posts with POST /v1/scheduled_posts instead.

Retry a failed post

{ "status": "scheduled", "schedule_at": "2026-11-21T09:00:00Z" }

This clears the previous error and schedules the same post again, including failed posts the dashboard already hides. Fix the cause first: failure.action says what to do. A post that failed with X_DELIVERY_UNCERTAIN or timed out while publishing is refused with 409 RETRY_COULD_DUPLICATE, because the network may already show it; check the channel and create a new post only if it isn't there.

When a post can't be changed

Code Why
POST_IS_PUBLISHING It's being published right now
POST_ALREADY_PUBLISHED It's live; editing here wouldn't change it on the network
MEDIA_NOT_READY Its media is still being prepared
POST_DELETED It was removed
POST_IN_COLLECTION Collection posts are published by their collection

Delete a post

curl -X DELETE https://public-api.robopost.app/v1/scheduled_posts/8c1f2a40-… \
  -H "Authorization: Bearer $ROBOPOST_API_KEY"

The post is removed from Robopost: it won't publish and disappears from the dashboard. It stays readable through the API with is_deleted: true, deletion_reason: "deleted_via_api", deleted_by and deleted_at. Deleting it again is harmless and returns the same record. A post that is publishing right now can't be deleted (409 POST_IS_PUBLISHING); wait until it's published or failed.

Delete a published post on the network too

Removing a post from Robopost doesn't remove it from the network. To do both, add delete_on_platform=true:

curl -X DELETE "https://public-api.robopost.app/v1/scheduled_posts/8c1f2a40-…?delete_on_platform=true" \
  -H "Authorization: Bearer $ROBOPOST_API_KEY"

The network deletion runs in the background. Read the post again to see platform_deletion:

platform_deletion.status Meaning
requested Sent to the network, waiting for its answer
deleted The network deleted it (completed_at says when)
failed The network refused or the channel is disconnected (detail says which)
not_supported The network doesn't let apps delete posts (Instagram, TikTok, Facebook Groups, WordPress.com)
not_published There was nothing on the network to delete

Next

Idempotency