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.

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.
| Spec | Spark Ads | Non-Spark Ads |
|---|---|---|
| Format | .mp4 or .mov | .mp4, .mov, .mpeg, .3gp, .avi |
| Duration | No restrictions | Up to 10 minutes |
| File size | Not listed | 500 MB or less |
| Ratio and size | Not listed | 9:16 min 540x960, 16:9 min 960x540, 1:1 min 640x640 |
| Caption | From the organic caption, max 4 lines | White, 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 readvideo_urlfromGET /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
- Symphony Creative Studio reference clips must be under 10 seconds
TikTok's Symphony help page limits reference videos to under 10 seconds and single scenes. Cut your clip first with Sume's video trim, then upload it.
- TikTok video_cover_timestamp_ms: pick the cover frame from a clip
TikTok takes a cover frame as a millisecond offset. Pull candidate stills with Sume video frames, choose one, and send its time as video_cover_timestamp_ms.
- Toast menu images: 750x450, 5 MB, crop-safe dishes
Toast recommends 750 x 450 px menu item images up to 5 MB that may be cropped. Generate a 3:2 plate with Sume, then crop to 5:3 with a short script.
- Translated with Meta AI label: how viewers turn Reels dubbing off
Meta labels every translated Reel Translated with Meta AI. A viewer picks Don't translate in the audio and language section of the three-dot menu to opt out.
Written by Sume