TikTok
OmniPost publishes to TikTok using the Content Posting API's direct-post flow.
Scopes OmniPost requests
| Scope | Purpose |
|---|---|
| video.publish | Publish 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
| Type | Formats | Limits |
|---|---|---|
| Video | MP4, 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. |
| Photo | JPEG, 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 underlyingspam_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 withurl_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.