TikTok Upload Video: 5 pending shares per 24 hours explained
TikTok's inbox Upload Video endpoint allows at most 5 pending shares in 24 hours. Plan AI video batches around that cap and the creator's manual finish.

TikTok's Upload Video endpoint, which sends a draft to the creator's inbox, allows at most 5 pending shares within any 24-hour period. If you queue ten Sume-made clips for one creator, only five can sit unfinished in that window, and each one needs the creator to tap the inbox notification and finish the post inside TikTok.
This differs from Direct Post, which publishes without the inbox step but needs the video.publish scope and, until your client is audited, restricts everything to private viewing.
What is the inbox flow and what limits apply?
Per TikTok's Upload Video reference, the endpoint is /v2/post/publish/inbox/video/init/, it needs the video.upload scope, and the transfer is either FILE_UPLOAD or PULL_FROM_URL. The rate limit is 6 requests per minute per user access token, a FILE_UPLOAD upload URL stays valid for one hour, and PULL_FROM_URL needs a verified domain.
The page also says users must click the inbox notification to continue the editing flow in TikTok and complete the post. That step cannot be automated from your side.
| Item | Upload (inbox) | Direct Post |
|---|---|---|
| Scope | video.upload | video.publish |
| Who finishes the post | The creator, from the inbox notification | Your client, in one call |
| Pending cap | 5 pending shares per 24 hours | Not stated on the pages read |
| Unaudited client | Not stated on the page read | Posts restricted to private viewing |
How should you batch Sume output around the cap?
Generation and delivery are separate. Sume can produce many clips at once: Bulk runs queue up to 100 runs of one Format with a concurrency window, and each child run has its own receipt. TikTok's cap only governs what you push into one creator's inbox.
So keep the rendered files in your own store, and release at most five a day per creator.
from collections import deque
BATCH = deque(["https://media.sume.com/a.mp4", "https://media.sume.com/b.mp4"])
MAX_PENDING = 5 # TikTok Upload Video cap per 24 h
def next_batch(pending_now: int) -> list[str]:
room = max(0, MAX_PENDING - pending_now)
out = []
while BATCH and len(out) < room:
out.append(BATCH.popleft())
return out
print(next_batch(pending_now=3))What does Sume not do?
Sume does not call TikTok, does not hold your creator tokens, and cannot tell how many shares are pending on a TikTok account. Your own app tracks that count. Sume's part ends at a durable media.sume.com URL and, optionally, a signed run webhook, described in Runs and results.
Sources
Related posts
More in Developers
- TikTok photo post error app_version_check_failed: needs app 31.8+
TikTok's photo post API returns app_version_check_failed in MEDIA_UPLOAD mode when the creator's TikTok app is older than 31.8. Here is what to do.
- TikTok post status: PUBLISH_COMPLETE vs a public post ID
TikTok's Get Post Status returns five statuses. PUBLISH_COMPLETE is not proof the video is public; the post ID appears only after moderation approves it.
- TikTok upload URL 403 expired and 416 Content-Range mismatch
A chunked TikTok upload returns 206 per chunk and 201 at the end. 403 means the upload_url expired after one hour; 416 means Content-Range does not match.
- Timeline 1.0 warnings after stitching shots: which need a fix
Timeline 1.0 returns soft warnings, not failures. A list of the codes you will see on a stitched AI film, what each means, and which ones are worth acting on.
Written by Sume