TikTok API: Posting Reference
TikTok is supported via the TikTok Business API. Both photo posts and video posts (reels) are available. The connected account must be a TikTok Business account, not a personal account.
Channel ID: tiktok
Supported content types
| Type | Supported | Notes |
|---|---|---|
| Feed post | ✅ | Photo posts only (1-35 images) |
| Story | - | Not supported |
| Reel | ✅ | Vertical video |
Minimal example
Video reel:
Code
Photo post:
Code
Platform-specific options
| Field | Type | Description |
|---|---|---|
tiktok.title | string | Photo carousels only. The title TikTok shows above the caption on Photo Mode posts, max 90 characters. TikTok's photo endpoint takes the title and the caption as separate fields; the caption comes from content. Ignored on video posts, which have a single caption field. Read back as tiktok.title. |
tiktok.privacy_level | string | Who can see the post. Required. One of PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY. |
tiktok.disable_comment | boolean | Disable comments on the post. |
tiktok.disable_duet | boolean | Disable duets (video only). |
tiktok.disable_stitch | boolean | Disable stitches (video only). |
tiktok.video_cover_timestamp_ms | integer | Video only. Timestamp (ms) of the frame to use as the cover. |
tiktok.is_aigc | boolean | Disclose the content is AI-generated. |
tiktok.brand_content_toggle | boolean | Mark as a paid partnership promoting a third-party brand. |
tiktok.brand_organic_toggle | boolean | Mark as promoting your own business / brand. |
tiktok.auto_add_music | boolean | Photo carousels only. When true, TikTok auto-selects a soundtrack. Defaults to false. |
tiktok.first_comment | string | Auto-posted as the first comment right after the video publishes, max 150 characters. Needs comments enabled on the channel (see Social Inbox below) and a public video with comments allowed. See Automatic first comment. |
privacy_level is required on every TikTok post. Omitting it returns 400.
Media requirements
| Media | Requirement |
|---|---|
| Video | MP4 or MOV, aspect ratio 9:16 or 16:9, 3 seconds to 10 minutes, max 4 GB |
| Photo | JPEG or PNG, 1-35 images per post, max 20 MB per image |
Photo posts must contain only images. Video posts must contain exactly one video. Mixing is not allowed.
Alt text. Per-media alt entries are accepted but not delivered; the platform's API does not support alt text on third-party posts. It is safe to send the same media objects you use for other platforms.
Character limit
Captions cap at 4,000 characters. Photo post titles (tiktok.title) cap at 90 characters; longer returns 400 validation_error.
Limitations
- Only TikTok Business accounts can connect. Personal accounts are rejected at OAuth time.
brand_content_toggle: truetriggers TikTok's branded content review workflow. The post may take longer to publish.- TikTok's API does not support scheduling posts further than 10 days in advance
- Comments, duets, and stitches can be disabled at post time but cannot be changed later
Social Inbox
Comments on your TikTok videos land in the Social Inbox once comments are enabled on the channel. Enabling is a second TikTok authorization, started from the Enable comments button on the TikTok channel card under Settings -> Organisation -> Workspaces. New comments arrive in real time, and you can reply and like or unlike them from the inbox (liking is app-only for now).
Replies post from the connected TikTok account and are text only, capped at 150 characters. TikTok holds fresh comments and replies in spam review for roughly 15 to 20 minutes before they are publicly visible. See TikTok comments in the Social Inbox guide.
The same authorization unlocks first comments (tiktok.first_comment, above) and watch-depth analytics.
Watch-depth analytics
TikTok's regular posting API only reports views, likes, comments, and shares. Once comments are enabled on the channel, the analytics endpoints (GET /analytics/posts/:id, the bulk variant, and GET /posts/recent-platform) add these fields to the TikTok metrics map, as TikTok reports them:
| Metric | Meaning |
|---|---|
average_time_watched | Average seconds a viewer watched |
full_video_watched_rate | Share of views that watched to the end |
total_time_watched | Total seconds watched across all views |
favorites | Times the video was saved to favorites |
reach | Unique accounts that saw the video |
They cover roughly the 100 most recent videos of the account. Channels that enabled comments before 22 August 2026 need one more consent for the video.insights scope: click Unlock watch-time analytics on the TikTok channel card. When the authorization or scope is missing the keys are absent, not zero.