TikTok

TikTok is a video-led publishing surface with a small number of important platform-specific controls. UniPost keeps those under `platform_options.tiktok` while preserving a consistent top-level request shape.

Single video or photo carousel publishing with privacy controls.
TikTok account requirementWhite-label/public-use requirement: your TikTok app must pass audit before posting to non-allowlisted accounts. Sandbox apps are limited to allowlisted accounts.

At a glance

Publishing
Supported
Scheduling
Supported
Analytics
Limited
Inbox
Not supported
Connection
OAuth — Quickstart and White-label both supported

Feature matrix

FeatureSupportNotes
Video postsSingle video
Photo carouselUp to 35 images
SchedulingUse scheduled_at
Privacy optionsUse platform_options.tiktok
AnalyticsPartialPost engagement + view count require TikTok analytics scopes. Those analytics scopes are approved for production and requested for newly connected accounts; reconnect older accounts before relying on live analytics.
Text-only postsXTikTok is media-first
ThreadsXNot applicable
Inbox / commentsXNot part of the UniPost inbox today

Known constraints

LimitationWhy
Daily safety cap50 publishes/day per connected TikTok account (UTC reset). Failed posts do not count toward the cap.
Audit required for public useTikTok Content Posting API apps must pass audit before posting to non-allowlisted accounts
Analytics scopes are approvedProduction OAuth requests user.info.profile, user.info.stats, and video.list for newly connected accounts. Reconnect older accounts if they were authorized before these scopes were available.
No text-only postsTikTok is strictly media-led
Inbox is not supportedComments and DMs are not in UniPost inbox today

Publishing

Ready to publish?Use the shared Publishing guide for hosted URLs, local file uploads, preflight validation, and async publish status. Then use the TikTok examples below for platform-specific payload shape.

Publish examples by surface

Each example calls POST/v1/posts with Bearer auth. Swap the account_ids for your own, then copy the snippet for your language.

Video post

Media & field requirements

FieldRequiredLimitsNotes
media_urls or media_idsRequired1 video OR up to 35 imagesUse media_urls for hosted assets or media_ids for local files uploaded via POST/v1/media. This is the primary publish surface.
captionOptional2,200 charsPair with media
platform_options.tiktok.privacy_levelOptionalprivacy enumControls audience visibility
platform_options.tiktok.upload_modeOptionalpull_from_url / file_uploadUse file_upload if the CDN domain is not registered with TikTok. For local files uploaded through POST/v1/media, UniPost manages the TikTok transfer details after POST/v1/posts.

Hosted URLs: pass the public URL in media_urls. Local files: reserve an upload with POST/v1/media, PUT the bytes to the returned upload_url, then publish with media_ids. Full flow in the Publishing guide.

Managed upload noteFor TikTok file_upload, upload the complete local video to UniPost with POST/v1/media and publish with media_ids. UniPost automatically handles TikTok's downstream chunk sizing and sequential transfer, including videos larger than 64 MB; do not split files or send TikTok chunk_size / total_chunk_count yourself. TikTok photo posts are staged through UniPost's media proxy before TikTok pulls them, so customers do not need to register their own CDN URL prefix for photo carousels.

Media specifications

Per-surface limits for text, images, and video. These are the source of truth UniPost uses for preflight validation and media optimization — treat hard-limit values as enforced and "recommended" values as platform guidance.

Video

TikTok's primary surface. One video per publish; captions and hashtags both count against the caption budget.

TypeRequirementValue
TextCaption2,200 chars (hashtags + mentions count)
TextHashtagsIncluded in caption budget; ≤ 100 total
VideoFormatsMP4, MOV, WebM
VideoMax per post1
VideoMax file size4 GB
VideoDuration3 sec – 10 min (Content Posting API ceiling)
VideoAspect ratio9:16 recommended; 1:1 and 16:9 accepted but under-distributed
VideoDimensionsMin 720 × 1,280 px; 1,080 × 1,920 recommended
VideoFrame rate23 – 60 fps (30 fps recommended)
VideoCodecH.264 or H.265 (HEVC)
VideoAudioAAC stereo

Image-only post with its own title and description fields. No video allowed.

TypeRequirementValue
TextTitle90 chars (auto-truncated in-app; hashtags stripped)
TextDescription4,000 chars
ImageFormatsJPEG, WebP
ImageMax per post35 images
ImageMax file size20 MB per image
ImageAspect ratio9:16 recommended
ImageDimensionsAuto-resized to 1,080 × 1,920 px
ImageCover selectionplatform_options.tiktok.photo_cover_index picks the cover

Platform-specific options

OptionValuesNotes
platform_options.tiktok.privacy_levelSELF_ONLY / PUBLIC_TO_EVERYONE / MUTUAL_FOLLOW_FRIENDS / FOLLOWER_OF_CREATORAudience visibility
platform_options.tiktok.upload_modepull_from_url / file_uploadfile_upload lets UniPost upload the video bytes to TikTok and handle downstream chunking automatically.
platform_options.tiktok.photo_cover_index0-based numberWhich image becomes the carousel cover

Analytics

MetricSupportNotes
Video viewsPartialRequires video.list; this scope is approved for production and requested for newly connected accounts
LikesPartialRequires video.list; this scope is approved for production and requested for newly connected accounts
CommentsPartialRequires video.list; this scope is approved for production and requested for newly connected accounts
SharesPartialRequires video.list; this scope is approved for production and requested for newly connected accounts
ImpressionsXTikTok exposes views, not display impressions
ReachXNot exposed by TikTok
SavesXNot exposed by TikTok

Connection modes

Pick the setup that matches how the account is owned. Quickstart is fastest when you publish to your own accounts; Connect Sessions are for customer-owned account onboarding; Hosted Connect branding controls the UniPost-hosted pre-OAuth page, while Platform Credentials control the upstream app identity and quota. Full setup details in Quickstart, Connect Sessions, Hosted Connect, and Platform Credentials.

ModeBest forApp / credentialsAvailability
QuickstartFast setup — UniPost handles OAuthUniPost-managed appFree / paid quota
Hosted ConnectCustomer account onboarding with optional profile brandingShared app or workspace Platform CredentialsBranding starts on Basic

White-label/public-use requirement: your TikTok app must pass audit before posting to non-allowlisted accounts. Sandbox apps are limited to allowlisted accounts.

Validation errors

CodeWhat it means
media_requiredTikTok requires video or image carousel media
mixed_media_unsupportedDo not mix image and video in one publish body
invalid_upload_modeTikTok upload mode is not recognized

Next steps