Skip to main content
TikTok is the place for short-form video. The API has specific restrictions around music, privacy, and image formats that will surprise you.

Supported Content Types

  • Videos: 1 video, up to 10 minutes. The bread and butter.
  • Photo Mode (Images): 1-35 images. JPG, JPEG, or WebP only. Max 20 MB per image. PNG will be rejected.

Quirks & Gotchas

If you set a video’s privacy to SELF_ONLY (Private), the API cannot return a public permalink immediately.
  • The permalink field will be null or internal-only.
  • We can’t give you a link to something that doesn’t publicly exist. Physics still applies.
TikTok is extremely strict about music rights.
  • Commercial Music Library (CML): We expose TikTok’s pre-cleared music via TikTok Music: trending tracks, genres, and song_clip_id for publish. No copyright roulette.
  • Trending Audio: You generally cannot use TikTok’s in-app “trending audio” library directly via API.
  • Royalty-Free: You can use the autoAddMusic flag to let TikTok assign royalty-free music, but you lose control over the specific track. It’s a gamble.
  • Best Practice: Use CML for controlled music, or burn your audio into the video file before uploading.

Image Format (Photo Mode)

TikTok accepts JPG, JPEG, and WebP files for Photo Mode posts. PNG and other formats will be rejected. Convert before uploading. Each image must be under 20 MB.

Image sizing (Photo Mode)

For IMAGE posts, if photos are larger than 1920x1080 (or unusually tall/wide relative to that canvas), we may auto-scale them server-side so delivery matches what TikTok expects. You do not need to pre-shrink assets in every case. We handle the resizing when it helps.

The REVIEW Status

TikTok is the most common platform to put posts into a REVIEW status. This means TikTok wants to review the content before publishing. We periodically re-check and re-attempt publishing. Tell your users to be patient.

Media Limits

See Platform Limits for the full breakdown.

Text & Field Limits


Post Options

Use uploadToDraft only when the user really wants TikTok draft handling. Draft uploads can cause massive publish delays. The video might show up in minutes, or it might take hours.TikTok’s answer is traffic: some days are faster, some days are worse. If your product needs predictable publishing, publish directly instead of using drafts.

Posting Options of an Account

Endpoint: GET /api/v1/misc/tiktok/post-settings Returns the privacy levels, interaction settings and maximum video duration the connected TikTok account allows, read live from TikTok. Use it to build the options of your composer (which privacy values to offer, whether comments, Duets and Stitches can be turned on).
A value the account doesn’t allow is not rejected when you create the post. It fails at publish time with TT:40002.
Each call counts against the account’s TikTok rate limit, so fetch it when building your composer, not before every publish. If TikTok returns incomplete settings, the endpoint returns 502.

Location Tags

Endpoint: GET /api/v1/misc/tiktok/locations Searches TikTok’s location tags for the team’s TikTok account. Put the chosen tag on a post with locationId and locationName.
address can be a country, region, city or full street address, and can be null. Send both fields with the post; either one alone is rejected:

Analytics

For general analytics concepts (refresh rates, data retention, what “Returns 0” means), see the Analytics Overview. TikTok provides detailed analytics data: demographics, audience splits, watch metrics, the works. Check the raw analytics for the detailed breakdowns.

Profile Analytics

Period: Rolling window (30 days). Aggregated from daily metrics.

Post Analytics

Period: Lifetime (Snapshot).

Quirks

  • Profile analytics aggregate daily metrics over a 30-day window.
  • Post analytics are lifetime values.
  • TikTok can take up to 48 hours to process some detailed analytics like audience demographics.
  • Views and unique views are tracked separately but can sometimes be 0 if the platform decides so.

Raw Analytics - Demographics & Audience Data

TikTok provides audience and engagement data via raw analytics. Here’s what the raw payload looks like when enabled for your organization:

Account-Level Raw Data

audience_activity is the hourly breakdown of when your followers are active on TikTok (UTC). Like the other audience_* fields, TikTok only returns it for accounts with at least 100 followers.

Video-Level Raw Data

TikTok raw data includes impression sources (For You, Following, Search), watch-through rates, audience gender/country splits, and daily metrics breakdowns. This is gold for content strategy - use it.