roasOS
ModelsVideo

MiniMax H3 Insert

MiniMax H3 Insert cuts a new 5 to 13 second scene into an existing clip, then returns to the original footage. A prompt, reference images or reference clips guide the new scene.

Family video · model h3-max-insert · catalog model-catalog@2026-10-06.v5 · pricing customer-pricing@2026-11-05.v15.

Endpoint

POST https://api.roasos.com/v1/video/h3-max-insert

Send your API key as a bearer token. The key needs the scope api:write. Every paid request also needs an Idempotency-Key header.

The envelope fields quote_only, quote_id, webhook_url and wait_timeout_seconds behave the same on each model endpoint. Refer to Jobs and Quotes and credits.

Good at

Add a product close-up into a talking-head ad, or swap a weak middle beat for a new one. Send video_url (up to 60 seconds, MP4), start_seconds (where the new scene starts, from 1.625) and resume_seconds (where the source continues, from 2.625). Both must fall inside the source. duration_seconds sets the new scene (5 to 13). Add references (up to 9 images) and video_urls (up to 3 clips, 2 to 15 seconds each and 15 seconds together) to guide it. It renders at 480p or 768p, and matches the colors to the source.

Pricing

The unit is one clip. Pricing key: h3-max-insert.

RequestCredits
5s_768p4
9s_768p7
13s_768p10

The credits come from the roasOS pricing table. No other field changes the price. To get the exact price of your request, send it with quote_only: true first.

Modes

  • edit

Provider endpoints: minimax/h3-max/insert-video.

Request fields

FieldTypeRequiredDefaultRule
duration_secondsinteger enumno55, 6, 7, 8, 9, 10, 11, 12, 13
promptstringno—≤ 10,000 characters
quote_idstringno—UUID
quote_onlybooleannofalse—
referencesstring[]no—≤ 9 items
resolutionenumno768p480p, 768p
resume_secondsnumberyes—2.625–60
seedintegerno—0–2147483647
start_secondsnumberyes—1.625–60
video_urlstringyes—https URL; ≤ 4,096 characters
video_urlsstring[]no—≤ 3 items
wait_timeout_secondsintegerno00–60
webhook_urlstringno—https URL; ≤ 4,096 characters

The schema is strict. A field that is not in this table gets 400 unsupported_option. The field names are the roasOS role names. One role has one name in every family.

Media

This endpoint accepts these media roles:

  • references — style and appearance references
  • video_urls — reference videos
  • video_url — the source video

Every other role is refused: avatar_id, elements, product_id, product_images, reference_images, image_url, end_image_url, scene_id, scene_image, audio_urls, audio_url, voice_id. A refused role gets 400 unsupported_option.

Each media URL must be an immutable object on https://cdn.roasos.com that your workspace owns. Any other URL gets 400 reference_media_not_workspace_owned. Refer to Reference media and uploads to learn how to put a file there.

Prompt

Limit 10,000 characters.

  • Describe only the new scene and how it joins the footage around it.
  • Name the references by what they control: "the product in the first image".

Not exposed

These catalog entries describe omitted inputs, pinned values and source constraints. They do not imply that the provider accepts every listed field.

  • enable_prompt_expansion — pinned to provider default (on); never sent.
  • color_match — pinned to provider default (on); never sent.

Result

The result kind is video. Always present: url.

{
  "data": {
    "id": "gen_…",
    "kind": "video",
    "model": "h3-max-insert",
    "status": "completed",
    "result": {
      "url": "https://cdn.roasos.com/workspaces/ws_01/result"
    }
  }
}

The files are immutable objects on https://cdn.roasos.com. A result URL is a valid media input for your next request.

Example

The three steps are always the same: quote, run, poll.

# 1. Quote. Nothing is spent.
curl -X POST https://api.roasos.com/v1/video/h3-max-insert \
  -H "Authorization: Bearer roasos_sk_live_..." \
  -H "Idempotency-Key: 0f1c9e2a-h3-max-insert-0001" \
  -H "Content-Type: application/json" \
  -d '{"quote_only":true,"prompt":"A woman holds the bottle at eye level in a bright kitchen, morning light, static camera.","resume_seconds":2.625,"start_seconds":1.625,"video_url":"https://cdn.roasos.com/workspaces/ws_01/uploads/video_url.mp4"}'
# 200 { "data": { "kind": "quote", "quote_id": "q_7Hk...", "credits": 4, "expires_at": "...",
#        "confirmation": { "model": "h3-max-insert", "example": "5s_768p" } } }

# 2. Run. Same body, same Idempotency-Key, quote_id in place of quote_only.
curl -X POST https://api.roasos.com/v1/video/h3-max-insert \
  -H "Authorization: Bearer roasos_sk_live_..." \
  -H "Idempotency-Key: 0f1c9e2a-h3-max-insert-0001" \
  -H "Content-Type: application/json" \
  -d '{"quote_id":"q_7Hk...","prompt":"A woman holds the bottle at eye level in a bright kitchen, morning light, static camera.","resume_seconds":2.625,"start_seconds":1.625,"video_url":"https://cdn.roasos.com/workspaces/ws_01/uploads/video_url.mp4"}'
# 201 { "data": { "id": "gen_...", "status": "queued", "credits_reserved": 4 } }

# 3. Poll, then read the result.
curl https://api.roasos.com/v1/jobs/gen_.../status -H "Authorization: Bearer roasos_sk_live_..."
curl https://api.roasos.com/v1/jobs/gen_.../result -H "Authorization: Bearer roasos_sk_live_..."

The deprecated path

POST /v1/generations still reaches this model for one minor version. It is deprecated. This is how it maps:

POST /v1/video/h3-max-insert with video_url, start_seconds, resume_seconds, prompt, references, video_urls, duration_seconds (5-13), resolution (480p|768p) and seed.

See also

  • llms.txt for this model — the same facts as one plain-text file for an agent.
  • GET https://api.roasos.com/v1/catalog/h3-max-insert — the machine-readable form: enums, defaults, limits and prices. Refer to the API reference.
  • Jobs — how to poll a job and read its result.
  • Provider endpoints: minimax/h3-max/insert-video.

On this page