tiktok

TikTok

OmniPost publishes to TikTok using the Content Posting API's direct-post flow.

Scopes OmniPost requests

ScopePurpose
video.publishPublish directly to the account's profile. (OmniPost does not request video.upload, which only drops content into the user's inbox as an unpublished draft.)

How OmniPost publishes

Before every publish, OmniPost calls TikTok's creator_info/queryendpoint to fetch the connected creator's current allowed privacy_level options and their actual max_video_post_duration_sec — TikTok varies both per creator, so OmniPost never hardcodes a duration cap. It then initiates the post via /v2/post/publish/video/init/ (or content/init/ for photo posts), uploads media, and polls /v2/post/publish/status/fetch/ until it resolves.

Media constraints

TypeFormatsLimits
VideoMP4, WebM, MOV (H.264, H.265, VP8, VP9)360–4096px, 23–60fps, ≤4GB, up to 10 minutes — subject to the connected creator's actual cap, which can be lower.
PhotoJPEG, WebP≤1080p, ≤20MB per image. Carousel up to 35 images.

Quirks to design around

  • Unaudited apps are restricted to SELF_ONLY (private) posts, capped at 5 posting users/24h, until TikTok completes its audit of your app (a demo video, written use-case description, and visible ToS/Privacy links). TikTok's own FAQ describes turnaround as "several days to two weeks." Until then, live posts through TikTok are only visible to the posting account itself.
  • Rate limits are per-creator and variable, shared across every API client the creator has authorized — TikTok deliberately doesn't publish a fixed number. OmniPost surfaces this as platform_rate_limited (TikTok's underlying spam_risk_too_many_posts) rather than a predictable quota — don't build UI that assumes a fixed daily budget.
  • Media upload has two modes. Chunked FILE_UPLOAD (5–64MB chunks, final chunk ≤128MB) works with any media URL; PULL_FROM_URLis faster but requires your media host's domain to be verified on the TikTok app, otherwise the target fails with url_ownership_unverified.

Rate limits

6 requests/minute per connected account token, and roughly 15 posts/24h per creator via Direct Post — treated by TikTok as a variable, per-creator figure rather than a hard published number.

App review, in brief

Full public posting (beyond SELF_ONLY) requires TikTok's app audit as described above. TikTok also documents an authorization.removed deauth webhook, though it does not explicitly mandate implementing it — OmniPost supports it as a best practice for detecting revocations promptly.

Use a sandbox key to build your TikTok integration end to end while your app audit is in progress.