From 307d583a664de2f030ad660942725204135fcd7a Mon Sep 17 00:00:00 2001 From: Gilad Resisi Date: Sun, 30 Aug 2026 11:23:47 +0700 Subject: [PATCH 1/2] docs(public-api): document thumbnailTimestamp on the media object --- public-api/openapi.json | 4 ++++ public-api/posts/create.mdx | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/public-api/openapi.json b/public-api/openapi.json index 21629023..511303c4 100644 --- a/public-api/openapi.json +++ b/public-api/openapi.json @@ -2574,6 +2574,10 @@ }, "path": { "type": "string" + }, + "thumbnailTimestamp": { + "type": "number", + "description": "Milliseconds into the video to use as the cover/thumbnail frame. Supported by Instagram, Instagram Standalone, TikTok Business, and TikTok (Direct Post only, not the UPLOAD/inbox flow); other providers ignore it. For TikTok, in our testing the cover was applied only to public posts (privacy_level PUBLIC_TO_EVERYONE)." } } }, diff --git a/public-api/posts/create.mdx b/public-api/posts/create.mdx index 2cabf1e4..8f78ba57 100644 --- a/public-api/posts/create.mdx +++ b/public-api/posts/create.mdx @@ -29,6 +29,20 @@ Before re-submitting, strip the server-managed fields from the fetched object, r Then set a fresh `type` (`now`, `schedule`, or `draft`) and `date`, and `POST` the cleaned object. +## Video cover frame (`thumbnailTimestamp`) + +Each media object in a post's `image` array accepts an optional `thumbnailTimestamp` field: the number of milliseconds into the video to use as the cover/thumbnail frame. + +```json +{ + "image": [{ "id": "vid-123", "path": "https://uploads.postiz.com/video.mp4", "thumbnailTimestamp": 3000 }] +} +``` + +Supported providers: Instagram, Instagram Standalone, TikTok Business, and TikTok (Direct Post only — the `UPLOAD`/inbox flow does not support cover selection). Other providers ignore the field. + +For TikTok, in our testing the cover was applied only to public posts (`privacy_level: "PUBLIC_TO_EVERYONE"`); posts published with a restricted privacy level kept the first frame as the cover. + ## Provider-Specific Settings When creating posts, each social media platform requires different settings. The `settings` object must include a `__type` field that identifies the platform. From 095665a7c8ac5e0a60ad62a5b2f6d08c96a11a7e Mon Sep 17 00:00:00 2001 From: Enno Gelhaus Date: Wed, 7 Oct 2026 06:15:23 +0200 Subject: [PATCH 2/2] feat: cleanup em-dashes --- public-api/posts/create.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public-api/posts/create.mdx b/public-api/posts/create.mdx index 8f78ba57..ae7e825f 100644 --- a/public-api/posts/create.mdx +++ b/public-api/posts/create.mdx @@ -39,7 +39,7 @@ Each media object in a post's `image` array accepts an optional `thumbnailTimest } ``` -Supported providers: Instagram, Instagram Standalone, TikTok Business, and TikTok (Direct Post only — the `UPLOAD`/inbox flow does not support cover selection). Other providers ignore the field. +Supported providers: Instagram, Instagram Standalone, TikTok Business, and TikTok (Direct Post only: the `UPLOAD`/inbox flow does not support cover selection). Other providers ignore the field. For TikTok, in our testing the cover was applied only to public posts (`privacy_level: "PUBLIC_TO_EVERYONE"`); posts published with a restricted privacy level kept the first frame as the cover.