TikTok Shop 'results may vary': adding the disclaimer to an AI clip
TikTok Shop allows disclaimers only for before-and-after and time-based results, worded 'results may vary'. Burn the line into a clip with Sume captions.

On TikTok Shop, a disclaimer is allowed only for before-and-after comparisons and for time-based results, and it must say "results may vary" or "individual results may vary". You can burn that line into a finished clip with Sume's POST /v1/video-captions using authored cues, which skips speech-to-text, but the disclaimer cannot rescue an effect the product does not actually deliver.
The rules come from TikTok Shop's How to Avoid Misleading Content page and its AI-generated content policy, both read 2026-10-02.
When is a disclaimer allowed at all?
The misleading-content page limits disclaimers to two cases, and says what the wording must be. Anything else a disclaimer is used for falls outside that allowance.
- Before-and-after comparisons.
- Time-based results.
- The text must include "results may vary" or "individual results may vary".
What can a disclaimer not fix?
The same page lists claims that no disclaimer repairs. Scientifically impossible or unsupported claims can be rejected, with no exemptions. Language such as "100% effective", "guaranteed results", "works for everyone", "instant results" and "permanent effect" is listed as prohibited. Edits that fake a product effect are barred too, and the page says no disclaimer or category makes that acceptable.
The AI policy adds that AI must not be used to demonstrate a core product effect that the actual product does not support. For an AI before-and-after, the safest source is a real before and a real after from a real use, with AI limited to polish such as layout or translation.
Also watch the words around the clip. The same page says attributes in the video description, product name and the video itself must match the product detail page, so the caption copy you add should not promise more than the listing does.
| Situation | Disclaimer helps? | Note |
|---|---|---|
| Real before and after, shot over 4 weeks | Yes | State the period; add the results-may-vary line |
| Result shown after a single use, product needs weeks | No | Instant results are listed as prohibited |
| AI-generated after image of the effect | No | AI may not demonstrate an unsupported core effect |
| A claim like guaranteed results | No | Prohibited wording |
How do I burn the line into the clip with Sume?
Standalone video captions take a public HTTPS video_url. Authored overlay copy goes in cues (or segments) with text, start and end, and that path does not need audible speech, so a silent product clip works. A silent clip sent without cues fails with caption_no_speech and next_action: use_overlay_captions.
Show the line for the whole before-and-after segment, not for one frame. A cue that flashes for half a second is unlikely to count as a disclosure a viewer can read.
curl -X POST https://api.sume.com/v1/video-captions \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: serum-ba-disclaimer-001" \
-d '{
"video_url": "https://example.com/serum-before-after.mp4",
"cues": [
{"text": "After 4 weeks of daily use. Individual results may vary.", "start": 6, "end": 13}
]
}'How do I apply the line to a batch of clips?
One caption job per clip, one idempotency key per clip. The loop below reads a list of finished clips and the real period each one covers, so the cue text never claims a duration the footage does not show. The period comes from your records, not from the model.
import os, requests
clips = [("serum-12", "https://example.com/serum-12-ba.mp4", "4 weeks"),
("cream-07", "https://example.com/cream-07-ba.mp4", "6 weeks")]
for sku, url, period in clips:
r = requests.post(
"https://api.sume.com/v1/video-captions",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
"Idempotency-Key": f"{sku}-disclaimer-v1"},
json={"video_url": url, "cues": [{
"text": f"After {period} of daily use. Individual results may vary.",
"start": 6, "end": 13}]},
timeout=30,
)
print(sku, r.status_code)Do I also need an AI disclosure on the same clip?
If the clip is fully or significantly AI-generated, yes, separately. The AI-generated content policy says creators must disclose it through on-screen text, a watermark, the video description, or the platform's AI-generated content toggle, and it calls out synthetic faces, voices and digital humans in particular.
The results-may-vary line is not that disclosure. They answer different rules, one about what a viewer can expect from the product and one about how the clip was made. A single caption job can carry both lines as two cues, but the toggle at posting time is still worth setting.
What does Sume not do here?
Sume does not decide whether your claim is supportable, and it does not read the policy for you. It also does not check that the disclaimer is legible on a phone. Render once, open the result on a small screen, and use the design overrides in the captions docs (placement and font size ratio) if the line is cut off.
Related reading: what TikTok Shop does to violating AI videos and how a two-stage before-and-after clip is built.
Sources
Related posts
More in Use cases
- TikTok Shop skin-smoothing filter ban: AI beauty video rules
TikTok Shop bans skin-smoothing and instant-effect filters, with no disclaimer exemption. What to avoid in an AI beauty clip and what Sume can show.
- TikTok shoppable photo post: 2 images minimum, 10 products maximum
TikTok Shop's UK page says a shoppable photo post needs at least 2 images and links up to 10 products. How to build an accurate AI image set for one.
- TikTok Smart+ Generate with AI: one product per URL, English only
TikTok's Generate with AI for Smart+ starts from a URL with one product, English only, and labels videos AI-generated. What it leaves open and what Sume adds.
- TikTok Spark Ads limits: 10,000 per account and 20 codes a batch
TikTok Spark Ads allow 10,000 per account, 20 video codes per batch authorization, and Duet or Stitch posts need codes from both creators.
Written by Sume