TikTok inbox upload vs Direct Post: which API for an AI video?
Inbox upload makes a draft the creator finishes in TikTok; Direct Post publishes with title, privacy and consent set in your app. Compare scope and audit.

Use the inbox upload when a person will review each AI-generated clip and finish the post inside TikTok. Use Direct Post when your app collects the title, privacy level, interaction settings and consent itself and publishes straight away. Direct Post carries more UX duties and an audit; the inbox upload is lighter but ends with a draft.
Sume sits upstream of both: it produces the video file, and your app calls TikTok.
How do the two flows differ?
Everything below is from TikTok's upload guide, Direct Post reference and Content Sharing Guidelines.
| Question | Inbox upload | Direct Post |
|---|---|---|
| Result | A draft the user reviews in TikTok | A post made from your app |
| Who finishes | The user, after clicking the inbox notification | Your app, after the user's choices |
| Scope or setup | video.upload scope | Content Posting API product with Direct Post |
| Metadata in your app | Not required for the draft | Title, privacy (no default), interaction settings, disclosure |
| Unaudited clients | Not stated on the page I read | Posts restricted to private viewing |
Which one fits an AI-video team?
If you produce clips in bulk and a human approves each one, the draft flow matches your process, since the creator sees the video in TikTok before it goes out. It also leaves the AI-generated label decision with the person looking at the final result. Direct Post has an is_aigc field that, when true, shows the AI-generated tag, so a Direct Post integration can set it for the creator once they confirm.
Be careful with the claim about who sets labels in the inbox flow: the upload page I read does not describe label handling, so check the draft editor before you promise anything to your users.
What are the shared steps?
Both begin with a finished file. Generate with Sume, then read the result through jobs and results. Both need MP4 with H.264 for a FILE_UPLOAD and both track progress through the status endpoint, which returns a publish_id you should store. The status path in the upload guide is /v2/post/publish/status/fetch/; the video inbox init is /v2/post/publish/inbox/video/init/.
Photos are a separate init (/v2/post/publish/content/init/) and are URL-based only.
What does Sume not do?
Sume does not register your TikTok app, hold a creator token, or choose a flow for you. It will not tell you whether your audit passes. What it gives you is a file that already meets common limits when you size it deliberately; see our post on video size.
Decision rules
A quick way to choose:
- A person approves every clip: start with the inbox upload.
- Your app serves creators who want one-click publishing: Direct Post, with the UX duties and audit.
- Unsure about audit timing: plan for private-only Direct Post until it clears.
- Either way, store the
publish_idwith the Sume job id.
Sources
Related posts
More in Integrations
- TikTok photo post limits: 20 MB per image, 1080p max, JPEG or WebP
TikTok's media guide caps photo-post images at 1080p and 20 MB each, in WebP or JPEG. Set Sume image output and video stills to match before you upload.
- TikTok publish webhooks vs Sume run webhooks: wire both safely
TikTok sends webhooks for failed, complete, inbox, public and removed posts. Sume signs its own run webhook separately. Keep two receivers and verify Sume's.
- VS Code mcp.json: servers or mcpServers key for Sume's hosted MCP?
VS Code's .vscode/mcp.json uses a top-level servers key; the portable .mcp.json uses mcpServers. Put Sume's entry under the key that matches its file.
- WhatsApp image message: JPEG or PNG, 5 MB, 1024-character caption
WhatsApp Cloud API image messages take 8-bit RGB or RGBA JPEG or PNG up to 5 MB, with a caption up to 1024 characters. Make a compliant file with Sume Images.
Written by Sume