TikTok#
Publish videos and photo carousels to TikTok. All posts go to drafts and require in-app approval before going public.
Quick Reference#
| Property | Value |
|---|
| Max caption length | 2,200 characters |
| Max hashtags | 30 |
| Video formats | MP4, MOV, WebM |
| Max video size | 4 GB |
| Max video duration | 10 minutes |
| Min video duration | 3 seconds |
| Image formats | JPEG, WebP |
| Max image size | 20 MB per image |
| Max images (photo carousel) | 35 |
| Scheduling | Yes (via Kabonshare queue) |
| Delete via API | No |
Before You Start#
All posts created via the API go to drafts inside the TikTok app. The creator must open TikTok and manually approve each post before it becomes public. There is no way to bypass this.
Unaudited apps are restricted to SELF_ONLY privacy — posts are only visible to the creator. Submit your app for TikTok's audit process to unlock public posting.
TikTok has a strict daily posting limit for API-created posts, separate from the native app limit. Exceeding it is one of the most common causes of publishing failures.
Content Types#
Video Post
Single vertical video. 3 seconds to 10 minutes. Supports chunked file upload or pull from URL.
Photo Carousel
Up to 35 images displayed as a swipeable carousel. Images must be served from a TikTok-verified domain URL — file upload is not supported.
Specs#
Privacy Levels#
| API Value | Label |
|---|
PUBLIC_TO_EVERYONE | Public |
MUTUAL_FOLLOW_FRIENDS | Friends only |
FOLLOWER_OF_CREATOR | Followers only |
SELF_ONLY | Only me |
The privacy levels available depend on each creator's individual TikTok account settings. Always call the creator info endpoint to confirm which levels are available before posting.
Required Flags#
Every TikTok post requires these two fields set to true:| Field | Required |
|---|
content_preview_confirmed | Yes |
express_consent_given | Yes |
Post Options#
| Option | Supported |
|---|
| Custom thumbnail (video) | Yes — via URL or timestamp |
| Comments | Configurable (on/off) |
| Duet | Configurable (on/off, video only) |
| Stitch | Configurable (on/off, video only) |
| Auto-music (photo) | Optional |
| Commercial content disclosure | Supported |
Video Upload Flow#
1
Initialize upload
Request an upload URL from the API. Specify FILE_UPLOAD for videos or PULL_FROM_URL for images.
2
Upload in chunks
Split video into chunks of 5 MB – 64 MB. Upload each chunk in order. The final chunk may be up to 128 MB.
3
Submit post
Submit the post with your caption, privacy level, and optional settings. Status returns as PROCESSING_UPLOAD.
4
Approve in-app
The post appears in the creator's TikTok drafts. They must open the app and tap publish. The post goes live after approval.
Limitations#
TikTok does not expose a native scheduling API. Kabonshare handles scheduling via its queue and publishes at the exact time you specify.
Cannot delete posts via the API. Removal must be done in the TikTok app.
Cannot access TikTok's sound library, edit published posts, view FYP analytics, or manage comments/DMs.
TikTok has a reported ~13% API publishing failure rate. Most failures are caused by daily limit hits, privacy level mismatches, or content moderation flags.