Modify an existing post—whether scheduled or already published—across your social networks. This endpoint handles network-specific constraints and supports advanced features like recycling and recurring schedules.
Authentication: Bearer API token
Scope: posts
Headers:
Authorization: Bearer-API YOUR_API_KEY
Publer-Workspace-Id: YOUR_WORKSPACE_ID
Updates an existing post by ID. The behavior differs depending on whether the post is scheduled or already published.
PUT /api/v1/posts/:id
Parameter
Type
Required
Description
type
string
No
The type of post (e.g., 'text', 'photo', 'video', 'link', etc.)
text
string
No
The main content text of the post
url
string
No
URL for link posts
title
string
No
Title for the post (used in some networks)
excerpt
string
No
Excerpt for the post (used in some networks)
question
string
No
Question for poll posts
duration
integer
No
Duration for poll posts
Parameter
Type
Required
Description
featured_media
object
No
Featured media information with path to the media file
media
array
No
Media files attached to the post
Each media object can include:
id
(string): Media ID
path
(string): Path to the media file
title
(string): Title of the media
caption
(string): Caption for the media
in_library
(boolean): Whether to save the media in the library
default_thumbnail
(string): Default thumbnail for videos
thumbnails
(object): Thumbnail information with real
and small
sizes
user_tags
(array): User tags in the media with position coordinates
collaborator_tags
(array): Collaborator tags in the media with position coordinates
product_tags
(array): Product tags in the media with position coordinates
Parameter
Type
Required
Description
link
object
No
Link information
The link object can include:
url
(string): URL of the link
call_to_action
(string): Call to action text
phone_number
(string): Phone number for call to action
provider_display
(string): Provider display information
original_description
(string): Original description from the link
original_title
(string): Original title from the link
description
(string): Custom description for the link
title
(string): Custom title for the link
default_image
(string): Default image for the link
images
(array): Images for the link
original_images
(array): Original images from the link
Parameter
Type
Required
Description
details
object
No
Additional details for the post
The details object can include:
type
(string): Type of post details (e.g., 'story')
feed
(boolean): Whether to share to feed (for Instagram reels)
reminder
(boolean): Whether the post is a reminder
title
(string): Title for event posts
start
(string): Start time for event posts
end
(string): End time for event posts
coupon
(string): Coupon code for offer posts
terms
(string): Terms for offer posts
audio
(string): Audio information
privacy
(string): Privacy setting
comment
(boolean): Whether to allow comments
duet
(boolean): Whether to allow duets (TikTok)
stitch
(boolean): Whether to allow stitches (TikTok)
promotional
(boolean): Whether the post is promotional
paid
(boolean): Whether the post is paid
language
(string): Language of the post
auto_add_music
(boolean): Whether to automatically add music
text_format_preset_id
(string): Text format preset ID
boost
(boolean): Whether to boost the post
Parameter
Type
Required
Description
recycling
object
No
Recycling settings
The recycling object can include:
solo
(boolean): Whether to recycle as solo
gap
(integer): Gap between recycling
gap_freq
(string): Frequency of the gap (e.g., 'days', 'weeks')
label
(string): Label for recycling
start_date
(string): Start date for recycling
expire_date
(string): Expiration date for recycling
expire_count
(integer): Number of times to recycle before expiring
Parameter
Type
Required
Description
recurring
object
No
Recurring settings
The recurring object can include:
start_date
(string): Start date for recurring posts
end_date
(string): End date for recurring posts
repeat
(string): Repeat frequency (e.g., 'daily', 'weekly')
repeat_rate
(integer): Rate of repetition
days_of_week
(array): Days of the week for weekly recurring posts
Parameter
Type
Required
Description
content
array
No
Content blocks for rich text posts
location
object
No
Location information with id and name
labels
array
No
Labels for the post with name and color
options
array
No
Options for poll posts
categories
array
No
Categories for the post
sublinks
array
No
Sub-links for the post (same structure as link)
When the post is published, you can only update network-specific params.
Network
Updatable Fields
• Text content
• Labels
YouTube
• Title (limited to 100 characters)
• Text/description (limited to 5000 characters)
• Labels
Google Business
• Text content (called "summary" in Google's API, limited to 1500 characters)
• Labels
• Text content (both description and message fields)
• Title (only for video posts, in the name field)
• Text format preset ID
• Labels
WordPress
• Title
• Content (HTML converted)
• Excerpt
• URL (slug)
• Featured media
• Categories
• Tags
• Labels
Telegram
• For status updates and links: Text content
• For other post types: Caption
• Labels
Mastodon
• Text content
• Title
• Language
• Poll attributes (options, duration)
• Labels
Networks Not Supporting Published Post Updates
For the following networks, only labels can be updated in Publer's database after a post is published:
Twitter/X (polls cannot be edited after publishing)
Threads
Bluesky
For scheduled posts, all fields can be updated regardless of the target social network.
If the post is a recurring post, the update will be applied to all future child posts in the recurring series. Already published child posts will not be affected.
When updating a post that requires approval, a notification will be sent to the appropriate workspace members.
Changes to published posts will be reflected both in Publer's database and on the social media platform (for supported networks).
List Posts API - Retrieve and filter posts
Accounts API - Manage social media accounts
Media API - Upload and manage media for posts
Updates an existing post. The behavior differs depending on whether the post is already published or not.
ID of the post to update
ID of the workspace containing the post
PUT /api/v1/posts/{id} HTTP/1.1
Host: app.publer.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 1329
{
"post": {
"type": "text",
"text": "text",
"url": "text",
"title": "text",
"excerpt": "text",
"question": "text",
"duration": 1,
"featured_media": {
"path": "text"
},
"media": [
{
"id": "text",
"path": "text",
"title": "text",
"caption": "text",
"in_library": true,
"default_thumbnail": "text",
"thumbnails": {
"real": "text",
"small": "text"
}
}
],
"link": {
"url": "text",
"call_to_action": "text",
"phone_number": "text",
"provider_display": "text",
"original_description": "text",
"original_title": "text",
"description": "text",
"title": "text",
"default_image": "text",
"images": [],
"original_images": []
},
"details": {
"type": "text",
"feed": true,
"reminder": true,
"title": "text",
"start": "text",
"end": "text",
"coupon": "text",
"terms": "text",
"audio": "text",
"privacy": "text",
"comment": true,
"duet": true,
"stitch": true,
"promotional": true,
"paid": true,
"language": "text",
"auto_add_music": true,
"text_format_preset_id": "text",
"sponsor": {
"id": "text",
"name": "text",
"verified": true,
"boost": true
}
},
"recycling": {
"solo": true,
"gap": 1,
"gap_freq": "text",
"label": "text",
"start_date": "text",
"expire_date": "text",
"expire_count": 1
},
"recurring": {
"start_date": "text",
"end_date": "text",
"repeat": "text",
"repeat_rate": 1,
"days_of_week": []
},
"content": [
{
"type": "text",
"data": {}
}
],
"location": {
"id": "text",
"name": "text"
},
"labels": [
{
"name": "text",
"color": "text"
}
],
"options": [],
"tags": [],
"categories": [],
"sublinks": [
{
"url": "text"
}
]
}
}
{
"id": "68176f0e8bee9dc9b0ce3427",
"text": "Check out our new product launch!",
"state": "scheduled",
"type": "photo",
"account_id": "63c675b54e299e9cf2b667ea",
"account": {
"id": "63c675b54e299e9cf2b667ea",
"type": "facebook_page",
"name": "My Business Page",
"picture": "https://graph.facebook.com/123456789/picture"
},
"user": {
"id": "5b1ec026db27977424e8599e",
"name": "ervintorra",
"picture": "https://publer-dev.s3.amazonaws.com/uploads/photos/thumb_mini_magick20250123-28707-otuw0w.png"
},
"scheduled_at": "2025-05-15T14:30:00.000+02:00",
"created_at": "2025-04-28T10:15:23.000+02:00",
"updated_at": "2025-04-29T11:30:45.000+02:00",
"post_link": "https://facebook.com/post/123456789",
"media": [
{
"id": "66fba4234e299e531f5dc100",
"type": "image",
"url": "https://publer-media.s3.amazonaws.com/uploads/images/product-launch.jpg",
"alt_text": "Product launch announcement image"
}
],
"link": {
"url": "https://example.com/product-launch",
"title": "New Product Launch",
"description": "Check out our latest product innovation",
"image_url": "https://example.com/images/product.jpg"
},
"labels": [
{
"id": "607c2f9a5e2c3d0789abcdef",
"name": "Product Launch",
"color": "#FF5733"
}
],
"auto": false,
"recycling": {
"solo": true,
"gap": 2,
"gap_freq": "Week",
"start_date": "2025-06-01",
"expire_count": 3
},
"recurring": {
"frequency": "Week",
"repeat_every": 1,
"weekdays": [
"Monday"
],
"start_date": "2025-06-02T09:00:00.000Z"
}
}