How many images can I attach to a Sume agent run? 30, up to 500 MB
An Agent Completion takes at most 30 images, each up to 30 MB, 500 MB total. So 30 images of 30 MB cannot all fit; 16 can. Error codes inside.

A Sume Agent Completion accepts a maximum of 30 images. An image over 30 MB is rejected with 413 attachment_too_large, and so is a set whose total is over 500 MB. Because 30 x 30 MB is 900 MB, you cannot fill both limits: the most 30 MB images in one run is 16.
The limits
The Agent Completions docs say attachments is optional, takes a maximum of 30 images, and that input_image is the only attachment type for now. You can send them at the top level or as input_image parts inside messages[]. Sume merges the two lists.
| Case | Status and code |
|---|---|
| Wrong type, missing or non-HTTPS URL, both image_url and asset_id, or not a permitted image | 400 invalid_attachment |
| asset_id unknown in this workspace | 400 attachment_not_found |
| One image over 30 MB, or set total over 500 MB | 413 attachment_too_large |
| Unreachable host, hotlink protection, or a non-2xx response | 502 attachment_fetch_failed |
The arithmetic
The per-image cap and the total cap interact. 500 / 30 = 16.67, so at most 16 images of exactly 30 MB fit (16 x 30 = 480 MB); a 17th would bring the total to 510 MB. In practice product shots are far smaller. Thirty images at 5 MB each total 150 MB and fit comfortably.
Why image input is in the news
Several of this week's models read images. Cloudflare's Clef page (read 2026-10-08) says the model takes images and video. Z.ai's GLM-5.3-Flash docs (read 2026-10-08) describe native multimodal input for images, videos, and files. For a Sume Agent Completion, though, the image goes to the Sume agent, and the model field accepts only sume-agent. You do not pick which vision model looks at it.
A reliable pattern
The points that matter here, in the order you will hit them:
- Host images on a URL Sume can fetch without hotlink protection, or upload an asset and send
asset_id. - Send exactly one of
image_urlorasset_idper item. - Handle
502 attachment_fetch_failedas retryable, and the 400 and 413 codes as caller errors. - Use
output_schemawith attachments; Sume still parses the run's output against it after the run completes.
Not yet
PDFs and other files are not accepted at this time, per the docs.
Text with images
A turn with only images is allowed. If you leave out the text part, Sume tells the agent to use the attached files. You can also combine attachments with output_schema: the images go to the agent, and the final output is parsed against your schema. For the item shape, limits, and upload path, the Agent Completions page points to the Format runs documentation, because the two surfaces share the same items.
Plan for hosts that you do not control. A 502 attachment_fetch_failed covers an unreachable host, hotlink protection, and any non-2xx response, so the same image can pass on one day and fail on another if its host changes policy. If the image matters, upload it once as an asset and refer to it by asset_id; the docs report 400 attachment_not_found if that id is unknown in the workspace, which is a clear sign that you used the wrong workspace key.
Sources
Related posts
More in Developers
- Which Sume key scope reads or rotates the webhook signing secret?
Reading the webhook signing secret needs account:read; rotating needs account:write. Scopes are fixed at key creation, so use a separate key.
- sume/auto defaults to 720p and 8s: 250 old prompts, pinned vs Auto
With model sume/auto a request defaults to 720p and 8 seconds. Pinned, 250 such clips cost $150 to $605 on Sume. Auto does not disclose the family.
- sume/auto and idempotent retries: same price, same route on replay
New video models land weekly. With model sume/auto and an Idempotency-Key, a retry of a Sume video submit gets the original job, price and route.
- model sume/auto on /v1/videos vs pinning Seedance 2.5: what differs
sume/auto lets Sume pick the video family and never says which. Its documented limits are 3 to 10 s, so a 15 or 30 second Seedance clip must be pinned.
Written by Sume