A sume/auto video job shows sume/auto, but bills the real model

A sume/auto job echoes sume/auto in its model field, hides the serving family, and bills at the resolved model's rate. Defaults: 8 s, 720p, sound always on.

5 min readSume
All posts

A sume/auto video job reports sume/auto in its model field because Sume hides the serving family from responses. Billing uses the resolved family's rate, since sume/auto has no price of its own. For text, frame and reference requests the target is Gemini Omni Flash 1.1: 8 s and 720p by default, $1.00.

What stays opaque

The contract in docs/api/videos.md says job.model, and the model on both submit and poll responses, echo sume/auto verbatim. The resolved family does not appear in public bodies, headers, errors, catalog metadata or OpenAPI examples. The resolution is a pure function of the normalized request and the catalog version, so a replay with the same idempotency key gets the same route and price.

The envelope Auto validates against

Auto fails closed. If your request goes past what the default family supports, you get 400 unsupported_capability, not a quiet reroute to Seedance.

sume/auto limits from docs/api/videos.md, read 2026-10-05
FieldAuto acceptsResult otherwise
duration3-10 s (default 8 s)400 unsupported_capability
resolution360p, 720p, 1080p, 4K (default 720p)400, for example on 480p or 768p
aspect_ratio16:9 or 9:16400
generate_audioOmit it, or truefalse fails
model in responsessume/autoNever the resolved id

Edit requests are the exception

Only a video_url edit request can have Sume select another capable family. If no key is configured or the choice fails, Gemini Omni Flash 1.1 serves the edit. Named models, and explicit Format or product-swap pins, do not change.

What to do in your code

Do not budget from the model string. Read usage.cost on the finished job, and log it with the job id. If you need a fixed price or a fixed model, name the model: the Veo 3.1 note lists what you can name.

When you see unsupported_capability on an Auto job, the message names sume/auto and details.model stays opaque, but supported still lists the values the API accepts. Use that list to fix the request.

curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"sume/auto","prompt":"A hummingbird at a red flower, slow motion","duration":6}'

Why Sume designed it this way

Auto is a routing pseudo-model. It is not listed in GET /v1/videos/models, because it is not a model, but the guide documents it. Keeping the resolved family private lets Sume change the default target without breaking clients that parse the response. The cost of that choice is that you cannot assign a cost to Auto from the id alone.

If you must attribute spend per model, name the model in the request. If you can accept the default, record usage.cost and the job id, and treat Auto as one line in your ledger.

Related posts

More in Developers

All Developers posts

Written by Sume