TikTok brand_organic_toggle vs brand_content_toggle on AI video
Set brand_organic_toggle for your own business, brand_content_toggle for a paid partnership, and is_aigc for AI video. How to carry the flags with each clip.

On a TikTok Direct Post, brand_organic_toggle is for a video that promotes your own business and brand_content_toggle is for a paid partnership that promotes a third-party business. is_aigc is a separate field that labels the video as AI generated. An AI product video made for your own shop can need two of them at once.
Field meanings are from TikTok's Direct Post reference, read 2026-10-01. Sume does not post to TikTok; it makes the clip, and your own code makes the TikTok call.
What does each toggle mean?
| Field | Type | Set to true when |
|---|---|---|
brand_content_toggle | bool | The video is a paid partnership to promote a third-party business |
brand_organic_toggle | bool | The video promotes the creator's own business |
is_aigc | bool | The video is AI generated content; TikTok then adds a "Creator labeled as AI-generated" tag in the description |
Which toggle fits my AI product video?
Ask who the product belongs to. If you are advertising your own product, that is the own-business field. If a brand is paying you to show theirs, that is the paid-partnership field. Neither choice replaces is_aigc: the AI label is its own boolean, so a clip can set is_aigc with either commercial toggle. For when a label is needed at all, see the AIGC label and caption options.
How do I keep the flags with each generated clip?
Sume video generation is a job: submit a request, poll the polling URL, then download the video from the content URL. TikTok's fields live on your side of that hand-off, so store them next to the job. For Format bulk runs, each item is the same body as a single run and must name at least one of instruction, input, previous_run_id or attachments; the docs do not define a place for TikTok fields, so keep the intended toggles in your own table keyed by the run or job id and read them back when the result arrives. A finished Format run output carries a durable URL and metadata. See Bulk runs.
What does Sume not do here?
The docs describe generation, polling and download; they do not describe a TikTok publish step. Setting the three fields, and deciding which are true, stays in your integration. Check the current field list on TikTok's page before you ship, since it is the source for these names.
Sources
Related posts
More in Developers
- TikTok rate_limit_exceeded: 6 requests a minute per access_token
TikTok Direct Post allows 6 requests a minute per user access_token and returns 429 rate_limit_exceeded past it. Space publishes; Sume limits only generation.
- TikTok spam_risk_too_many_posts vs reached_active_user_cap
Two daily TikTok 403s: spam_risk_too_many_posts is the per-user API post cap, reached_active_user_cap is your client quota. Hold videos till tomorrow.
- TikTok unaudited_client_can_only_post_to_private_accounts
TikTok returns a 403 when an unaudited client posts to a non-private account. Test with private posts until the audit passes; Sume only supplies the file.
- TikTok url_ownership_unverified with a media.sume.com URL
PULL_FROM_URL needs a TikTok-verified domain or prefix, so a media.sume.com URL fails with 403. Upload the bytes with FILE_UPLOAD or host a copy on your domain.
Written by Sume