TikTok Video & Multi-Photo Posts
Publish or schedule TikTok videos and multi-photo (carousel) posts using the Publer API. This feature supports all TikTok-specific options, including privacy, comments, branded content, and more.
Overview
Publer enables you to directly post or schedule TikTok videos and multi-photo posts (carousels) from your app or workflow.
Video posts: Upload and schedule single video posts. Supports cover selection, privacy, comment/duet/stitch toggles, and branded content disclosures.
Multi-photo posts (carousels): Upload and schedule up to 35 photos, each with an optional caption, as a single post. Supports music auto-add, privacy, and engagement options.
How It Works
To schedule or publish a TikTok post, use the Immediate Publishing or Manual Scheduling API endpoint with a networks.tiktok
object describing your post.
Key Rules
No recurring or recycled videos: TikTok does not allow duplicate content.
Watermarks: Not supported due to TikTok API limits.
Privacy and engagement: Options are synced from TikTok and may vary by account type, check your account details from Accounts.
Thumbnails (Videos): You can select a cover frame when posting automatically.
Video Post Example
{
"bulk": {
"state": "scheduled",
"posts": [
{
"accounts": [
{
"id": "tiktok_account_123",
"scheduled_at": "2025-08-26T12:00:00Z"
}
],
"networks": {
"tiktok": {
"type": "video",
"text": "Check out our new product launch! #launch #tiktok",
"media": [
{
"id": "media_video_001",
"path": "https://storage.com/launch-video.mp4",
"default_thumbnail": 2,
"thumbnails": [
{
"real": "https://storage.com/thumb1.jpg",
"small": "https://storage.com/thumb1_small.jpg"
},
{
"real": "https://storage.com/thumb2.jpg",
"small": "https://storage.com/thumb2_small.jpg"
},
{
"real": "https://storage.com/thumb3.jpg",
"small": "https://storage.com/thumb3_small.jpg"
}
]
}
],
"details": {
"privacy": "PUBLIC_TO_EVERYONE",
"comment": true,
"duet": true,
"stitch": true,
"promotional": false,
"paid": false,
"reminder": false
}
}
}
}
]
}
}
Multi-Photo Post (Carousel) Example
{
"bulk": {
"state": "scheduled",
"posts": [
{
"accounts": [
{
"id": "tiktok_account_123",
"scheduled_at": "2025-08-26T14:00:00Z"
}
],
"networks": {
"tiktok": {
"type": "photo",
"title": "Summer Vibes ☀️",
"text": "Nothing beats a perfect summer day! What's your favorite summer activity? 🏖️ #summer #lifestyle #photography",
"media": [
{ "id": "img1", "path": "https://storage.com/summer1.jpg", "caption": "Beach day" },
{ "id": "img2", "path": "https://storage.com/summer2.jpg", "caption": "Sunset views" },
{ "id": "img3", "path": "https://storage.com/summer3.jpg", "caption": "Ice cream time" }
],
"details": {
"privacy": "PUBLIC_TO_EVERYONE",
"auto_add_music": true,
"comment": true,
"promotional": false,
"paid": false,
"reminder": false
}
}
}
}
]
}
}
TikTok-Specific Parameters
Video Post Parameters
type
string
Yes
Must be "video"
.
text
string
Yes
Video description text (max 2,200 chars).
media[]
array
Yes
Single video object (see below).
media[].id
string
Yes
Media ID if using stored media.
media[].path
string
No
URL to the video file.
media[].default_thumbnail
integer
No
(Optional) Index of the selected thumbnail (0-based).
media[].thumbnails[]
array
Yes
Array of thumbnails with real
and small
URLs.
media[].thumbnails[].real
string
No
Full-size thumbnail image URL.
media[].thumbnails[].small
string
No
Small-size thumbnail image URL.
details
object
Yes
TikTok-specific options (see below).
details.privacy
string
No
Who can view: "PUBLIC_TO_EVERYONE"
, "MUTUAL_FOLLOW_FRIENDS"
,
"FOLLOWER_OF_CREATOR"
, "SELF_ONLY"
details.comment
boolean
No
Allow comments (default: false).
details.duet
boolean
No
Allow duets (default: true).
details.stitch
boolean
No
Allow stitching (default: true).
details.promotional
boolean
No
Mark as promotional/brand organic content (cannot be private, default: false).
details.paid
boolean
No
Mark as paid partnership (cannot be private, default: false).
Carousel (Multi-Photo) Post Parameters
type
string
Yes
Must be "photo"
.
title
string
Yes
Carousel post title (max 90 chars).
text
string
Yes
Description text (max 4,000 chars).
media[]
array
Yes
Up to 35 photo objects (see below).
media[].id
string
Yes
Media ID if using stored media.
media[].path
string
No
(Optional) URL to the photo file.
media[].caption
string
No
(Optional) Caption for each photo.
details
object
Yes
TikTok-specific options (see below).
details.privacy
string
No
Who can view: "PUBLIC_TO_EVERYONE"
, "MUTUAL_FOLLOW_FRIENDS"
,
"FOLLOWER_OF_CREATOR"
, "SELF_ONLY"
details.comment
boolean
No
Allow comments (default: false).
details.auto_add_music
boolean
No
Auto-add music to slideshow (default: false).
details.promotional
boolean
No
Mark as promotional/brand organic content (cannot be private, default: false).
details.paid
boolean
No
Mark as paid partnership (cannot be private, default: false).
details.reminder
boolean
No
Upload-only mode (user must publish manually, default: false).
Tips & Limitations
No GIF/video mixing: Carousel posts cannot mix photos, GIFs, or videos.
Privacy: "Everyone" is only available if the TikTok account is public.
Branded content: Cannot be private. Once posted, branded content is permanently labeled.
No recurring or recycled posts: TikTok blocks duplicate content.
Watermarks: Not supported.
Links: Not supported in TikTok posts.
Related Topics
Last updated
Was this helpful?