API reference · MiniMax
minimax/h3-max-turbo/video-extend
Integrate this model through SandBase's unified API, with production-ready schemas and examples.
Production endpoint
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
POST
https://api.sandbase.ai/v1/runModel ID
minimax/h3-max-turbo/video-extend01
Input Schema
8 parameters · 2 required · 6 optional
| Parameter | Type | Required | Description |
|---|---|---|---|
video | string | Required | URL 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 |
prompt | string | Required | What happens next. Describe the continuation, not the source. · Min length: 1 · Max length: 50000 |
seed | integer | Optional | Seed for the continuation. Random when omitted. |
output | string | Optional | 'extended' returns the whole source video followed by the new footage. 'continuation' returns only the generated continuation. · Options: extended, continuation · Default: "extended" extendedcontinuation |
duration | integer | Optional | Seconds of new footage to add after the source. The actual duration may be slightly longer. · Min: 1 · Max: 15 · Default: 5 |
resolution | string | Optional | Output video resolution. · Options: 480P, 768P, 1080P, 2K · Default: "768P" 480P768P1080P2K |
aspect_ratio | string | Optional | Output 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_urls | string[] | Optional | Optional 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
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the generation task |
status | string | Task status: pending, running, completed, failed, timeout |
model | string | Model used for the generation |
outputs | array | Array of output items |
outputs[].url | string | URL of the generated artifact |
outputs[].content_type | string | MIME type (e.g. image/png, video/mp4) |
error | object | null | Error details if failed, null on success |
error.type | string | Machine-readable error type code |
error.message | string | Human-readable error description |
Async Workflow
This model uses asynchronous execution. Submit a request and poll for the result.
- Submit — POST to /v1/run, receive an
id - Poll — GET /v1/run/{id} until status is
completed,failed, ortimeout - Retrieve — Read
outputsfrom 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);