TikTok Direct Post init: 6 requests a minute per token, queue clips

TikTok limits each user access_token to 6 init requests per minute on Direct Post. Queue finished Sume clips and release them at that pace.

5 min readSume
All posts

TikTok's Direct Post reference limits each user access_token to 6 requests per minute on the initialize endpoint, POST /v2/post/publish/video/init/. If a batch of Sume clips finishes at once, put them in a queue and release one init call about every 10 seconds per token.

TikTok also documents a 429 when you exceed the API rate limit, and a spam_risk_too_many_posts error when the daily post cap from the API is reached.

What limits did TikTok document?

From the Direct Post reference page.

TikTok Direct Post limits (read 2026-10-05)
ItemWhat the page says
Init endpointPOST /v2/post/publish/video/init/
Rate limit6 requests per minute for each user access_token
ExceededA 429 error
Daily capspam_risk_too_many_posts when the daily post cap from the API is reached
Tracking idpublish_id in the init response, used to check status

How do I pace init calls?

A token bucket per account keeps you under the limit even when a webhook burst arrives. The sample waits for a slot before each call.

import time


class PerMinute:
    def __init__(self, limit: int = 6):
        self.limit, self.stamps = limit, []

    def wait(self) -> None:
        now = time.monotonic()
        self.stamps = [t for t in self.stamps if now - t < 60]
        if len(self.stamps) >= self.limit:
            time.sleep(60 - (now - self.stamps[0]))
        self.stamps.append(time.monotonic())


if __name__ == "__main__":
    bucket = PerMinute(limit=2)
    for clip in ["a", "b"]:
        bucket.wait()
        print("init", clip)

How does this fit with Sume's webhooks?

Sume sends terminal job events only, up to 10 attempts, so acknowledge fast and enqueue the TikTok work. Dedupe on job_id, the key Sume tells receivers to use (Webhooks).

Sources

Related posts

More in Developers

All Developers posts

Written by Sume