Edit a Published Post
Update caption or metadata on a post that is already live. Fields you omit are left unchanged.
Platform support
| Platform | Edit | Notes |
|---|---|---|
| ✅ | message, pin, scheduled time. Only posts published through Upload-Post. | |
| ✅ | commentary (or text). | |
| X | ✅ | Premium, within 30 minutes, fewer than 5 edits. The post ID changes. |
| YouTube | ✅ | title, description, tags, privacy, category, publishAt. |
| Google Business | ✅ | localPosts.patch. |
| ❌ | No edit API for published media. | |
| TikTok | ❌ | |
| Threads | ❌ |
Credential channels that implement edit (Discord, Telegram, Mastodon, Hashnode, Whop, …) are also accepted.
Endpoint
POST /api/uploadposts/posts/edit
Alias: POST /api/uploadposts/posts/action with "action": "edit" (LinkedIn).
Headers
| Name | Value | Description |
|---|---|---|
| Authorization | Apikey your-api-key-here | Your API key for authentication |
| Content-Type | application/json | Request body format |
Body Parameters (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
platform | String | Yes | facebook, linkedin, x, youtube, google_business, plus credential channels that support edit. |
user | String | Yes | Profile username. |
post_id | String | Yes | Platform post ID (YouTube also accepts video_id). |
message / text / commentary | String | No | New caption. Facebook: message. X: text. LinkedIn: commentary. |
is_pinned | Boolean | No | Facebook: pin/unpin. |
scheduled_publish_time | String | No | Facebook. Unix timestamp in seconds. |
facebook_page_id | String | No | Facebook Page if not the profile default. |
linkedin_visibility | String | No | LinkedIn visibility on edit. |
linkedin_disable_reshare | Boolean | No | LinkedIn. |
title / description / tags / privacyStatus / categoryId / publishAt | — | No | YouTube. Aliases with youtube_* prefix are accepted. |
Example Request
curl -X POST https://api.upload-post.com/api/uploadposts/posts/edit \
-H 'Authorization: Apikey your-api-key-here' \
-H 'Content-Type: application/json' \
-d '{
"platform": "facebook",
"user": "my-profile",
"post_id": "1234567890",
"message": "Updated caption"
}'
X:
curl -X POST https://api.upload-post.com/api/uploadposts/posts/edit \
-H 'Authorization: Apikey your-api-key-here' \
-H 'Content-Type: application/json' \
-d '{
"platform": "x",
"user": "my-profile",
"post_id": "1234567890123456789",
"text": "Corrected tweet"
}'
Successful Response (200 OK)
Facebook:
{
"success": true,
"platform": "facebook",
"post_id": "1234567890",
"updated": ["message"]
}
X returns a new post_id. Use that id from now on; the previous id stays in edit_history_post_ids.
{
"success": true,
"platform": "x",
"post_id": "9876543210987654321",
"previous_post_id": "1234567890123456789",
"edit_history_post_ids": ["1234567890123456789", "9876543210987654321"],
"url": "https://x.com/handle/status/9876543210987654321",
"message": "X assigns a new post id to every edit. Use the returned post_id from now on; the previous id stays in edit_history_post_ids."
}
LinkedIn:
{
"success": true,
"message": "LinkedIn post updated.",
"post_id": "urn:li:share:123",
"url": "https://www.linkedin.com/feed/update/urn:li:share:123/"
}
Error Responses
- 400 Bad Request — missing fields, nothing to update, or an unsupported platform (e.g.
instagram,tiktok). - 403 Forbidden — the connected account is not authorized to edit the post.
- 404 Not Found — no post found for the given
post_id. - 500 Internal Server Error