Platform Fields
Every tiktokSettings field you can send with a TikTok post.
All fields go in tiktokSettings at the top level of the request. Names are shown in snake_case; camelCase is accepted too.
Zernio merges that object into each TikTok entry's platformSpecificData.tiktokSettings. A key set there wins over the root-level one.
Use the per-entry object when 2 TikTok accounts in the same request need different settings, for example one publishing directly and one with draft: true.
| Field | Type | Default | Description |
|---|---|---|---|
privacy_level | string | Required. One of the creator's values from creator info: PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY. Accounts connected through TikTok's Business app publish videos as public only: non-public values on video direct posts are rejected unless draft: true (photo posts keep every level). See connection lanes. | |
allow_comment | boolean | Required. Enable or disable comments on the post. | |
allow_duet | boolean | Required for videos. Enable or disable duets. | |
allow_stitch | boolean | Required for videos. Enable or disable stitches. | |
content_preview_confirmed | boolean | Required, must be true. Legal requirement from TikTok. | |
express_consent_given | boolean | Required, must be true. Legal requirement from TikTok. | |
video_cover_timestamp_ms | number | 1000 | Cover frame position in milliseconds. Ignored when video_cover_image_url is set. |
video_cover_image_url | string (URL) | Custom cover image (JPG, PNG or WebP, at most 20 MB). Overrides video_cover_timestamp_ms. | |
media_type | "video" | "photo" | (from media) | Set to "photo" for photo carousels. |
photo_cover_index | number | 0 | Which image is the cover (0-based). |
description | string | Long-form caption for photo carousels, up to 4,000 characters. | |
auto_add_music | boolean | Let TikTok add recommended music. Photo carousels only. With the brand-organic or branded-content toggle on, TikTok allows Commercial Music Library tracks only, so this attaches nothing there; use musicSoundInfo instead. | |
musicSoundInfo | object | Commercial Music Library track to attach (TikTok for Business app connections only). Pick musicSoundId from GET /v1/accounts/{accountId}/tiktok/commercial-music. Ignored on drafts. | |
musicSoundInfo.musicSoundId | string | Prefer tracks[].clip.id from GET /v1/accounts/{accountId}/tiktok/commercial-music (fall back to tracks[].id only when no clip is present). Both publish, but the full-track id has shown viewers a sound page saying the song is not available in their country (observed from Germany). TikTok rejects the commercial music id at publish time. | |
musicSoundInfo.musicSoundVolume | number | 50 | Track volume (0 to 100). Video posts only. |
musicSoundInfo.musicSoundStart | number | 0 | Start point in milliseconds. Video posts only. |
musicSoundInfo.musicSoundEnd | number | End point in milliseconds (defaults to video length). Must be greater than musicSoundStart. Video posts only. | |
videoOriginalSoundVolume | number | 0 | Volume of the video's own sound when a commercial track is attached (0 to 100). Requires musicSoundInfo. Video posts only. Omitted, TikTok's API default of 0 mutes the video's own audio (a voice-over, for example) under the track; the TikTok app uses 50. |
video_made_with_ai | boolean | AI-generated content disclosure. Accounts connected through TikTok's Business app carry the disclosure on video posts only: direct photo posts reject true; use draft: true and set the disclosure in the TikTok app. | |
locationId | string | Location tag id from GET /v1/accounts/{accountId}/tiktok/locations. Requires locationName. Business app connections and video posts only. Ignored on drafts. | |
locationName | string | Location tag display name returned next to the id. Required with locationId. | |
isAdsOnly | boolean | Publish as an "Only show in ads" post (Spark Ads). Business app connections and video posts only. Ignored on drafts. | |
draft | boolean | false | Send to the Creator Inbox instead of publishing. See Draft delivery. |
commercialContentType | "none" | "brand_organic" | "brand_content" | Commercial content disclosure. See Commercial content. | |
isBrandOrganicPost | boolean | Implied by commercialContentType: "brand_organic"; set it only to disclose both types at once. | |
brandPartnerPromote | boolean | Implied by commercialContentType: "brand_content"; set it only to disclose both types at once. |
Was this page helpful?