TikTok 90-day violation window: a label ledger for AI batches
If a summary's 90-day violation window is right, one unlabeled batch can cost a posting ban. Build a per-clip ledger from Sume job ids before you post.

Keep one ledger row per clip, and fill the label column before the clip is scheduled. AuditSocials reports that two to three violations in 90 days can bring a 7-day posting ban (third-party summary, read 2026-10-02). If that is accurate, a batch of 40 clips posted without the label is not one mistake, it is forty.
Sume can give you the first columns of that ledger. It cannot fill in the last two, because posting happens on TikTok.
What does the ledger need to hold?
Five fields cover the question a reviewer will ask: which clip, how it was made, when it went out, whether it was labeled, and who checked.
| Column | Where it comes from | Filled by |
|---|---|---|
| Sume job id | The job envelope returned on submit | Automatic |
| Source type | Avatar, image-to-video, face swap, text-to-video | Automatic |
| Post date | Your scheduler | You |
| Label set | TikTok's setting at publish time | You |
| Checked by | Reviewer initials | You |
How do you get job ids for a whole batch?
A bulk run queues up to 100 Format runs with a concurrency window, and each child is an ordinary run you read at GET /v1/format-runs/{run_id}. For model jobs, GET /v1/jobs lists recent jobs for the workspace. Send an Idempotency-Key on submit so a retry does not create a second clip that never lands in the ledger.
curl https://api.sume.com/v1/jobs \
-H "Authorization: Bearer $SUME_API_KEY"What should block a post?
Make the ledger a gate: no row with Label set = yes, no scheduling. A spreadsheet formula or one line in your scheduler is enough. The point of the 90-day figure is that the cost of a miss is counted across clips, so the check has to be per clip.
Re-check the figure against TikTok's own policy pages before you rely on it. This post cites one summary and makes no claim about how TikTok counts violations.
How long should you keep the ledger?
At least as long as the reported window, which is 90 days, and longer if you run paid campaigns that may be audited. The ledger is small: a few hundred rows is a plain spreadsheet. Keep the Sume job ids even after the clips are posted, since the job record is the only first-party proof of how a clip was made.
If you generate with several tools, add a column for the tool. A ledger that only covers one tool will miss the clip that caused the problem.
Sources
Related posts
More in Use cases
- TikTok in-feed ad caption rules: no hashtags, @ or clickable links
TikTok non-Spark in-feed ad captions are white in a fixed font, cannot hold links, @ symbols or hashtags. Where a burned-in caption fits instead.
- TikTok ad disclaimers: 90 characters, 3 links, and the AI type
TikTok Ads Manager has three disclaimer types: 90-character text, up to 3 clickable links, and an AI-generated label. What each does and what Sume does not set.
- TikTok video package opening and end scenes: 1-10 seconds, 720x1280
TikTok's video package page lists opening and end scenes of 1 to 10 seconds in MP4, MOV, FLV, MKV or WebM, and Lottie templates under 16 s. Trim with Sume.
- TikTok bans AI-generated endorsements: avatar demo or testimonial?
A brand-agency summary reports TikTok prohibits AI-generated endorsements. How to tell an avatar product demo from a testimonial before you write the script.
Written by Sume