HeyGen asset upload max size: 32 MB, and what Sume does instead

HeyGen's POST /v3/assets caps files at 32 MB, URLs included. Sume has no asset step: requests take public HTTPS URLs, and oversized bodies return 413.

4 min readSume
All posts

HeyGen's upload-asset endpoint, POST /v3/assets, has a maximum file size of 32 MB, and the same limit applies to files provided by URL. Larger files go through HeyGen's direct upload flow. Sume has no upload step to size against: launch requests take public HTTPS URLs in the fields the OpenAPI schema lists.

HeyGen numbers are from its Usage Limits page; Sume behavior is from Media inputs and Errors and credits, read 2026-10-01.

What is the HeyGen asset upload limit?

The Usage Limits page lists a 32 MB maximum for POST /v3/assets and the types image (PNG, JPEG), video (MP4, WebM), audio (MP3, WAV) and PDF. For larger files it points to POST /v3/assets/direct-uploads, whose per-upload cap comes back as max_bytes in the initialize response.

Separately, resources passed to POST /v3/videos have their own caps: video 100 MB, image 50 MB, audio 50 MB, and the URLs must be publicly accessible.

Does Sume have an asset upload step?

No. The docs say launch generation requests accept media as public HTTPS URLs in the exact fields shown by the live OpenAPI schema, and that you do not need to create a separate Sume asset before submitting normal Avatar 1.0, Avatar Video, face-swap or caption requests.

Signed upload and download URLs and private object keys are not part of the launch public API contract, so there is no direct-upload route to move a large file through.

Which Sume fields take a URL?

The docs list them in a table, summarized here.

URL input fields from the Sume docs, read 2026-10-01.
WorkflowField
Avatar 1.0 photo inputinput.image_url
Avatar Video product branchproduct_image
Avatar Video scene photoscene.image_url
Scene background imagevideo_inputs[].background.url
Face swap (Beta)video_url
Video captionsvideo_url

What happens if the request body is too large?

The error table lists 413 with code payload_too_large: the request body exceeds the configured API limit. The docs do not give a byte figure on that page, so do not assume one. Because media travels as a URL, the JSON body stays small regardless of file size.

What should I do with a large file?

Host it at a public HTTPS URL you control, check that it can be fetched without authentication, and put that URL in the field above. See avatar video with your product and background for a request that uses image URLs.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume