Snapchat Top Snap video: 1080x1920, 32 MB, or 1 GB in 32 chunks

Snap's media API takes 1080x1920 mp4 or mov from 3 to 1800 seconds, 32 MB in one call or up to 1 GB in 32 parts. Check a Sume clip against it first.

5 min readSume
All posts

For a Snapchat Top Snap video, Snap's media endpoint lists 1080 x 1920 pixels, mp4 or mov, a duration of at least 3 and at most 1800 seconds, and a 32 MB cap for a normal upload. Files up to 1 GB can go through chunked upload in at most 32 parts of up to 32 MB each. A short Sume UGC clip is almost always under 32 MB, so the single upload usually works; the bigger risk is resolution.

Snap values are from its Media page, read 2026-10-02. Sume values come from the Avatar video, Video Router and Video trim docs.

Will a Sume clip meet 1080x1920?

It depends on the route. Avatar video accepts a 9:16 aspect ratio (the default), but its resolution is currently 720p, which is smaller than the 1080 x 1920 Snap lists for Top Snap. Video Router models differ: seedance-2.5 offers 480p, 720p and 1080p for 4 to 30 seconds, and its own example request uses 9:16. Read capabilities from GET /v1/video-router/models for the exact envelope before you pick a model.

Whether Snap rejects, scales or crops a 720p upload is not stated on the page. Do not assume it will upscale. Probe the file you plan to send and match its dimensions to what the page lists.

Snap video upload specs and Sume matches, read 2026-10-02
Snap specValueSume side
Dimensions1080 x 1920Avatar video is 720p today; some Video Router models offer 1080p
Formatsmp4, movCheck the output content type on the job result
Duration3 to 1800 secondsAvatar video runs 4 to 60 seconds
Single upload32 MB maxShort clips usually fit
Chunked uploadUp to 1 GB, 32 MB per part, 32 partsRarely needed for ads

How do I decide between single and chunked upload?

Chunked upload starts with POST /v1/media/{media_id}/multipart-upload-v2?action=INIT carrying file_name, file_size in bytes and number_of_parts. You then add parts with a file, a part_number and the upload_id, and finalize with the upload_id. The calculation of how many parts you need is simple but easy to get wrong at the boundary, so test it.

The helper below uses decimal megabytes, so it stays under the limit even if Snap means 32 MiB. It raises when a file would need more than 32 parts or exceeds 1 GB.

import math, os

SINGLE_MAX = 32 * 1_000_000        # stay under "32MB" whether Snap means MB or MiB
CHUNK = 32 * 1_000_000
MAX_PARTS = 32
ONE_GB = 1_000_000_000

def upload_plan(path):
    size = os.path.getsize(path)
    if size <= SINGLE_MAX:
        return {"mode": "single", "size": size}
    parts = math.ceil(size / CHUNK)
    if size > ONE_GB or parts > MAX_PARTS:
        raise ValueError(f"{size} bytes is over Snap's chunked limit; re-encode or trim")
    return {"mode": "chunked", "size": size, "number_of_parts": parts}

if __name__ == "__main__":
    print(upload_plan(os.environ.get("CLIP", "clip.mp4")))

Which Sume tool shortens a clip that is too long or too big?

POST /v1/video-trim cuts one media.sume.com clip into a new MP4 with a start and either end or duration (0.2 to 900 seconds out). Its output option can conform width, height (256 to 2160) and fps (24, 25, 30 or 60) when precision is exact. It prices at $0.02 per job at the time of the docs, and you should confirm that in the live catalog.

It cannot make a 720p clip genuinely 1080p. For that, generate at a higher resolution on a model that offers it, then trim.

How do I check the file before uploading?

Sume's video inspect route probes a hosted clip and returns stills, so you can read the real dimensions and duration of the render instead of trusting the request you sent. Run it on one sample from each model you use and write the observed size into your upload script's checks.

Then compare with the table above: 1080 x 1920, mp4 or mov, 3 to 1800 seconds. If a clip is the wrong size, fix it at the source by choosing a model and resolution that match, rather than relying on Snap to correct it. The same discipline applies to image creatives, which Snap lists separately at 1080 x 1920 with a 5 MB cap for Top Snap images.

What comes after the upload?

Snap moves the media from PENDING_UPLOAD to READY; only then is it usable in a creative. If you also flag the clip as AI content, see the ai_content_source post. For a TikTok-side resolution check, see the TikTok resolution post.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume