H3 Max Recast request shape: /v1/videos or /v1/video-router/generate?

Recast takes one video_url and 1 to 4 image_url entries as input_references on /v1/videos, or video_url plus reference_image_urls on the Video Router.

5 min readSume
All posts

H3 Max Recast, id h3-max-recast, is reachable on both of Sume's video wires, and the two bodies look different. The OpenRouter-shaped route, POST /v1/videos, carries media in an input_references array. The legacy Video Router route, POST /v1/video-router/generate, uses flat fields. Sending the wrong shape to the wrong route is the usual cause of a 400.

In both cases the model needs exactly one source video and one to four photos, one photo per new person, matched left to right by default. There is no text-only mode.

What does the /v1/videos body look like?

Put one video_url entry and the photo image_url entries in input_references. The duration is the inspected source length in whole seconds, rounded up, from 5 to 30. The prompt is optional. Do not send aspect_ratio, frame_images, generate_audio, seed or an audio reference; the row rejects them.

curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"h3-max-recast","duration":13,"resolution":"768p","input_references":[{"type":"video_url","video_url":{"url":"https://media.sume.com/example/source.mp4"}},{"type":"image_url","image_url":{"url":"https://media.sume.com/example/person.jpg"}}]}'

And on the Video Router?

The legacy wire takes video_url and a reference_image_urls list at the top level, plus model, duration and resolution. The catalog treats both wires as one model row, so the limits and the price are identical: 768p is the default, 1080p is the other option, and the billable rates are $0.375 and $0.5625 per second.

Pick the wire your client already speaks. If you are moving from an OpenRouter client, /v1/videos; if you already call the Video Router for Omni edit, stay there.

What fails on either wire?

A source outside 5 to 30 seconds, a shot over 15 seconds, more than four photos, or no photo at all. All are caught as 400s at validation. size, seed and a non-empty provider.options are also refused, as covered in the unsupported parameter post.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume