Zernio
APIFor you
Zernio
APIFor you
API Reference

Posts

List postsGETCreate postPOSTGet postGETUpdate post metadataPOSTUpdate postPUTDelete postDELETEUnpublish postPOSTBulk upload from CSVPOSTRetry failed postPOSTEdit published postPOSTPin postPOSTApprove or reject a postPOSTUnpin postPOST
Dashboard
OverviewPlatformsAPI ReferenceResources
Posts

Pin post

Pins a published Facebook Page post to the top of its Page. Only Facebook posts can be pinned; any other platform answers 400 platform_not_supported. Works for posts on Pages connected through Facebook Login.


POST
/v1/posts/{postId}/pin

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

application/json

application/json

import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.posts.pinPost({  path: {    postId: 'post_abc123',  },  body: {    platform: 'facebook',  },});console.log(data);
{  "success": true,  "pinned": true,  "platformPostId": "123456789012345_987654321098765",  "message": "Post pinned to the top of the Facebook Page"}
Was this page helpful?

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.

Approve or reject a post

Approves or rejects a post saved with `requiresApproval: true` (status `pending_approval`). `approve` schedules the post for its `scheduledFor` and fires the `post.scheduled` webhook. When that time has already passed, the post publishes within a couple of minutes. `reject` returns the post to `draft`. Returns 409 when the post is not `pending_approval`.

platform*string

Must be facebook. Any other value answers 400 platform_not_supported.

accountId?string

Which Facebook account's copy to change when the post was published to several Facebook accounts. Required in that case.