Zernio
Zernio
API Reference

Posts

List postsGETCreate postPOSTGet postGETUpdate post metadataPOSTUpdate postPUTDelete postDELETEUnpublish postPOSTBulk upload from CSVPOSTRetry failed postPOSTEdit published postPOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Posts

Edit published post

Edit the text of an already-published post. Supported on X, Discord, Facebook, Reddit, LinkedIn, Telegram, Pinterest, Google Business Profile, YouTube, and Slack. When a post was published to several accounts on the same platform, pass accountId to pick which account's copy to edit (without it the request returns 409). Each platform enforces its own rules:

X

  • Connected X account must have an active X Premium subscription
  • Must be within 1 hour of original publish time
  • Maximum 5 edits per tweet (enforced by X)
  • Threads cannot be edited, only single tweets
  • X assigns a NEW post ID on edit, returned as id

Discord

  • No time limit and no premium requirement
  • The message ID is unchanged after the edit

Facebook

  • Graph only permits editing a post that the same app created, so this works on posts published through Zernio and is rejected for posts created in Meta Business Suite / Composer or by another tool
  • Media cannot be swapped, only the message text
  • Reactions, comments, and shares are preserved. The post ID is unchanged

Reddit

  • Self-posts only. A link post has no editable body and is rejected before the write
  • Body only. Reddit exposes no API to edit a post title, ever
  • The post ID is unchanged

LinkedIn

  • Text only, no time limit. Media, polls, articles, and reshare targets cannot be changed
  • Works for member and organization posts published through this API. The post keeps its ID and LinkedIn shows an "edited" marker
  • Text is limited to 3,000 characters; mentions and hashtags are preserved

Telegram

  • No time limit; messages published through Zernio are editable indefinitely
  • Text posts: edits the message text (up to 4096 characters)
  • Media posts: edits the caption only (up to 1024 characters). The media itself cannot be swapped
  • For albums, the caption shown on the album (its first message) is edited
  • The message ID is unchanged

Pinterest

  • Description only, maximum 800 characters. Media, link, and board cannot be changed, and a pin title derived from the old content's first line at publish stays as-is
  • Pinterest's pin-update endpoint is currently in closed beta; until the app is allowlisted by Pinterest, edits are rejected with a "beta feature not yet enabled" error
  • The pin ID is unchanged

Google Business Profile

  • Post body (summary) text only. Call-to-action, event/offer fields, and media are untouched
  • No time limit and no edit limit. The post ID is unchanged
  • The post must still exist on Google: a post deleted from the Business Profile dashboard, or an event/offer post past its end date, returns a 404

YouTube

  • content replaces the video description only. The title is unchanged, even if it was originally derived from the content's first line at publish time
  • Title, tags, thumbnail, and privacy edits belong to POST /v1/posts/{postId}/update-metadata
  • No time window and no edit cap. The video ID is unchanged

Slack

  • Text only, up to 4,000 characters. Media cannot be swapped, and media posts whose share message reference never resolved cannot be edited
  • No time limit unless workspace admins restrict message editing
  • The message ID is unchanged

Media edits are not supported on any platform. The post record in Zernio is updated with the new content and an edit-history entry.


POST
/v1/posts/{postId}/edit

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Path Parameters

postId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.posts.editPost({  path: {    postId: 'post_abc123',  },  body: {    platform: 'twitter',    content: 'Hello, world!',  },});console.log(data);
{  "success": true,  "id": "1234567890123456790",  "url": "https://twitter.com/i/web/status/1234567890123456790",  "message": "twitter post edited successfully"}
Was this page helpful?

Retry failed post

Immediately retries publishing a failed post. Returns the updated post with its new status.

List schedules

Returns queue schedules for a profile. Use all=true for all queues, or queueId for a specific one. Defaults to the default queue.

platform*string

The platform to edit the post on.

Value in

  • "twitter"
  • "discord"
  • "facebook"
  • "reddit"
  • "linkedin"
  • "telegram"
  • "pinterest"
  • "googlebusiness"
  • "youtube"
  • "slack"
content*string

The new post text content

accountId?string

Which account's copy of the post to edit when the post was published to several accounts on the same platform. Required in that case.