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

Update post metadata

Updates metadata of a published video on the specified platform without re-uploading. Currently only supported for YouTube. At least one updatable field is required.

Two modes:

  1. Post-based (video published through Zernio): pass the Zernio postId in the URL and platform in the body.
  2. Direct video ID (video uploaded outside Zernio, e.g. directly to YouTube): use _ as the postId, and pass videoId + accountId + platform in the body. The accountId is the Zernio account ID for the connected YouTube channel.

POST
/v1/posts/{postId}/update-metadata

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

Zernio post ID, or "_" when using direct video ID mode

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.updatePostMetadata({  path: {    postId: 'post_abc123',  },  body: {    platform: 'youtube',  },});console.log(data);
{  "success": true,  "message": "YouTube video metadata updated successfully",  "updatedFields": [    "title",    "description",    "tags"  ]}
Was this page helpful?

Get post

Fetch a single post by ID. For published posts, this returns platformPostUrl for each platform.

Update post

Update an existing post. Draft, scheduled, failed, partial, and cancelled posts can be edited. Published posts can only have their recycling config updated. To promote a draft to scheduled, send `isDraft: false` together with `scheduledFor` (or `publishNow: true`, or `queuedFromProfile`). If `isDraft` is omitted the post keeps its current draft status, so sending only `scheduledFor` to a draft returns 200 but the post remains a draft. Non-draft updates run the same per-platform validation as post creation (media requirements, platform-specific field rules, etc.) against the resulting platforms, returning 400 on failure.

platform*"youtube"

The platform to update metadata on

Value in

  • "youtube"
videoId?string

YouTube video ID (required for direct mode, ignored for post-based mode)

accountId?string

Zernio account ID. Required for direct mode. In post-based mode, picks which account's copy to update when the post was published to several accounts on this platform (required in that case).

title?string

New video title (max 100 characters for YouTube)

Lengthlength <= 100
description?string

New video description

tags?array<>

Array of keyword tags (max 500 characters combined for YouTube)

categoryId?string

YouTube video category ID

privacyStatus?string

Video privacy setting

Value in

  • "public"
  • "private"
  • "unlisted"
thumbnailUrl?string

Public URL of a custom thumbnail image (JPEG, PNG, or GIF, max 50 MB, recommended 1280x720). Works on any video you own, including existing videos not published through Zernio. The channel must be verified (phone verification) to set custom thumbnails.

Formaturi
madeForKids?boolean

COPPA compliance flag. Set true for child-directed content (restricts comments, notifications, ad targeting).

containsSyntheticMedia?boolean

AI-generated content disclosure. Set true if the video contains synthetic content that could be mistaken for real. YouTube may add a label.

playlistId?string

YouTube playlist ID to add the video to (e.g. 'PLxxxxxxxxxxxxx'). Use GET /v1/accounts/{id}/youtube-playlists to list available playlists. Only playlists owned by the channel are supported.