TikTok Spark Ads: no duration limit listed, MP4 or MOV, 4 lines

TikTok's in-feed ads page lists Spark Ads as .mp4 or .mov, no duration restriction, caption taken from the organic post up to four lines.

5 min readSume
All posts

TikTok's Auction In-Feed Ads specifications page lists Spark Ads as .mp4 or .mov with no video duration restriction, and says the ad caption is extracted directly from the organic video's caption, up to four lines. Every other spec on that page (ratio, size, bitrate, 10-minute cap) is listed under Non-Spark Ads only.

That is a change of emphasis from older write-ups, including our earlier Spark Ads post, which described a 10-minute ceiling. This post follows the page as I read it on 2026-10-02: TikTok Auction In-Feed Ads | TikTok Ads Manager. If your Ads Manager shows something else, trust Ads Manager.

What does the page list for Spark vs non-Spark?

The split matters because a Spark Ad reuses an organic post, so the organic post's own rules apply. The page itself says nothing about Spark ratio, resolution or file size, which is not the same as saying there are none.

Spark and Non-Spark rows from TikTok's Auction In-Feed Ads page, read 2026-10-02.
SpecSpark AdsNon-Spark Ads
Format.mp4 or .mov.mp4, .mov, .mpeg, .3gp, .avi
DurationNo restrictionsUp to 10 minutes
File sizeNot listed500 MB or less
Ratio and sizeNot listed9:16 min 540x960, 16:9 min 960x540, 1:1 min 640x640
CaptionFrom the organic caption, max 4 linesWhite, uniform font, no links, @ or hashtags

If duration is open, what limits the organic post?

The organic upload does. For API posting, the Content Posting API's creator info call returns max_video_post_duration_sec for that specific creator, and a video longer than that cannot be posted by the API. TikTok's Direct Post reference also limits the caption (title) to 2200 UTF-16 runes and the access token to 6 requests per minute for the post call.

So the practical duration ceiling for a Spark candidate is whatever the creator's account can post, not a number on the ad spec page.

How do I keep an AI clip safe for either path?

Export to .mp4, which satisfies both columns. Sume's trim returns a new MP4, so a cut clip lands in a format both rows accept. Trim with precision: "exact" (the default) for a frame-accurate cut:

  • Poll GET /v1/jobs/:id/status, then read video_url from GET /v1/jobs/:id/result.
  • Source up to 1800 s and output up to 900 s are the trim caps, so very long cuts need a split.
  • If the Spark caption matters, write it in the organic post: four lines are used, and Sume has no hand in the caption field.
curl -X POST https://api.sume.com/v1/video-trim \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: spark-cut-001" \
  -d '{"video_url":"https://media.sume.com/artifacts/artf_demo/ad.mp4","start":0,"duration":30}'

What should I still verify in Ads Manager?

Run the upload through Ads Manager preview before spending. The page does not list a Spark ratio, so a landscape organic post may render differently from a vertical one. Sume cannot preview the ad placement and does not call the TikTok Marketing API; it prepares the file and nothing else.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume