TikTok Content Posting API rate limits: 20, 6 and 30 per minute

TikTok limits creator info to 20 requests per minute, post init to 6, and status checks to 30, each per access token. Design your queue around the tightest one.

5 min readSume
All posts

Three TikTok Content Posting API calls have three different per-access-token limits: Query Creator Info allows 20 requests per minute, starting a post (Direct Post, Upload Video or Photo Post) allows 6, and Get Post Status allows 30. The tightest is the one that sets your throughput, so a queue of finished AI videos should start at most six posts per minute for each creator token.

What is each limit?

All four numbers come from TikTok's own reference pages, read on 2026-10-02. They are per user access token, not per app.

Per-access-token rate limits, TikTok for Developers pages read 2026-10-02
CallLimit per minutePage
Query Creator Info20Query Creator Info
Direct Post init6Direct Post
Upload Video init (inbox)6Upload Video
Photo Post6Photo Post
Get Post Status30Get Post Status

What does that mean for a batch?

Query Creator Info is the call TikTok says to make before posting so you can show privacy options and the creator's max_video_post_duration_sec. At 20 per minute it will not be your bottleneck if you call it once per post. The post-start call at 6 per minute will be: ten creators on ten tokens do not share a bucket, but ten posts for one creator do.

A token bucket is enough. The sketch refills six tokens a minute and tells you how many seconds to wait.

import time

class Bucket:
    def __init__(self, per_min: int):
        self.cap = per_min
        self.tokens = float(per_min)
        self.t = time.monotonic()

    def wait_seconds(self) -> float:
        now = time.monotonic()
        self.tokens = min(self.cap, self.tokens + (now - self.t) * self.cap / 60)
        self.t = now
        if self.tokens >= 1:
            self.tokens -= 1
            return 0.0
        return (1 - self.tokens) * 60 / self.cap

b = Bucket(6)
print([round(b.wait_seconds(), 1) for _ in range(8)])

What about the rest of the pipeline?

Generation is not bound by these limits. Sume's Bulk runs queue up to 100 Format runs with a concurrency window, and each finished run is a receipt you can read or take by webhook. The TikTok buckets only decide how fast you release those files.

Daily caps are separate and not in these numbers: TikTok's status page names too many posts within 24 hours as a failure reason, and the inbox flow caps pending shares at five. See the inbox cap post.

What does Sume not do?

Sume does not enforce or track TikTok's limits. Throttling lives in your poster.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume