API Free WeekHundreds of APIs are free to call this week.Browse free APIs
API reference · MiniMax

minimax/h3-max-turbo/video-extend

Integrate this model through SandBase's unified API, with production-ready schemas and examples.

VIDEOAsyncOpen model
Production endpoint

Send your first request

OpenAI-compatible endpoint with unified authentication and usage tracking.

POSThttps://api.sandbase.ai/v1/run
Model IDminimax/h3-max-turbo/video-extend
01

Input Schema

8 parameters · 2 required · 6 optional

ParameterTypeRequiredDescription
videostringRequiredURL of the video to extend. Must be 1.625 s to 60 s long, up to 50 MB, aspect ratio between 0.4 and 2.5. · Min length: 1
promptstringRequiredWhat happens next. Describe the continuation, not the source. · Min length: 1 · Max length: 50000
seedintegerOptionalSeed for the continuation. Random when omitted.
outputstringOptional'extended' returns the whole source video followed by the new footage. 'continuation' returns only the generated continuation. · Options: extended, continuation · Default: "extended"
extendedcontinuation
durationintegerOptionalSeconds of new footage to add after the source. The actual duration may be slightly longer. · Min: 1 · Max: 15 · Default: 5
resolutionstringOptionalOutput video resolution. · Options: 480P, 768P, 1080P, 2K · Default: "768P"
480P768P1080P2K
aspect_ratiostringOptionalOutput aspect ratio. Matches the source video when omitted. · Options: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16
21:916:94:31:13:49:16
reference_audio_urlsstring[]OptionalOptional audio references for the continuation (2–15 seconds each, 15 seconds combined). The full extended video retains its original source soundtrack, and its ending still conditions the transition. These clips guide the newly generated audio instead of using that soundtrack as an audio reference. Assign each clip a role in the prompt, such as 'Audio 1 for the voice' and 'Audio 2 for background music'.
02

Output Schema

FieldTypeDescription
idstringUnique identifier for the generation task
statusstringTask status: pending, running, completed, failed, timeout
modelstringModel used for the generation
outputsarrayArray of output items
outputs[].urlstringURL of the generated artifact
outputs[].content_typestringMIME type (e.g. image/png, video/mp4)
errorobject | nullError details if failed, null on success
error.typestringMachine-readable error type code
error.messagestringHuman-readable error description

Async Workflow

This model uses asynchronous execution. Submit a request and poll for the result.

  1. Submit — POST to /v1/run, receive an id
  2. Poll — GET /v1/run/{id} until status is completed, failed, or timeout
  3. Retrieve — Read outputs from the completed response
03

Code Examples

Ready-to-run snippets

const apiKey = process.env.SANDBASE_API_KEY;
const response = await fetch("https://api.sandbase.ai/v1/run", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "model": "minimax/h3-max-turbo/video-extend",
    "video": "https://storage.googleapis.com/falserverless/example_inputs/flux-3-red-panda.mp4",
    "output": "extended",
    "prompt": "The red panda keeps walking along the log, then looks up at a bird.",
    "duration": 5,
    "resolution": "768P"
  }),
});

if (!response.ok) throw new Error(await response.text());
let result = await response.json();
for (let attempt = 0; attempt < 120 && !["completed", "failed", "timeout"].includes(result.status); attempt++) {
  await new Promise((resolve) => setTimeout(resolve, 2_000));
  const poll = await fetch(`https://api.sandbase.ai/v1/run/${result.id}`, {
    headers: { Authorization: `Bearer ${apiKey}` },
  });
  if (!poll.ok) throw new Error(await poll.text());
  result = await poll.json();
}
if (result.status !== "completed") throw new Error(`Generation ended: ${result.status}`);
console.log(result);