Skip to main content
POST
Generate Video

Authorizations

Authorization
string
header
required

API key from Settings > Developer > REST API

Headers

Moda-Version
enum<string>
default:2026-05-01

Calendar-dated API version pin. New integrations should pin 2026-05-01 to opt into the newest response shapes. For back-compat the server also accepts requests with no header and resolves them to the current default (today: 2026-04-12); that default advances on each sunset date. Any unsupported value returns 400 unsupported_version.

Available options:
2026-04-12,
2026-05-01
Example:

"2026-05-01"

Body

application/json
prompt
string
required

Sent verbatim. For MiniMax H3 reference mode, bind inputs by modality and 1-based list order: Image 1, Video 1, Audio 1, and so on.

Minimum string length: 1
model
string
required

Concrete video model id; see GET /v1/media/models.

start_image
string | null
end_image
string | null
reference_images
string[] | null

Subject/style references. For MiniMax H3, name them Image 1, Image 2, and so on in the prompt.

reference_videos
string[] | null

Short reference clips: file_ ids from an upload or http(s) video URLs. Only some models accept them, and each states its own clip-count and length limits — read them off the reference_videos block on GET /v1/media/models, which a 422 also names in full. Naming the models here instead would drift on every model add. Each clip becomes a durable file in the team's library; the model card states whether its running time is billed too. For MiniMax H3, name them Video 1, Video 2, and so on in the prompt.

reference_audios
string[] | null

Short reference audio: file_ ids from an upload or http(s) audio URLs. See the reference_audios capability on GET /v1/media/models. For MiniMax H3, name them Audio 1, Audio 2, and so on in the prompt.

extend_video
string | null

Make an EXISTING clip longer: a file_ id from an upload or an http(s) video URL, plus a prompt for what happens next. The response carries the source with new footage on the end. Only models whose card lists a video_extend mode accept it, and it cannot be combined with start/end frames or references. There duration_seconds is the length of the ADDED segment — the delivered clip is longer than it by the source's own running time. Read billing.duration_quantity and billing.input_seconds_priced_separately, plus the available framing controls, from the video_extend block on GET /v1/media/models.

lipsync_video
string | null

Re-cut an EXISTING clip's mouth to a track you supply: a file_ id from an upload or an http(s) video URL, plus exactly one reference_audios entry — the speech being synced to. Only models whose card lists a video_lipsync mode accept it. Nothing else may accompany the pair: no frames, no other references, and not extend_video. The clip is returned at its OWN length, so duration_seconds is not a control here and prompt is not used at all. Billing meters the SOURCE clip rather than the returned file — read the video_lipsync block on GET /v1/media/models for its envelope, its basis, and any block rounding.

duration_seconds
aspect_ratio
string | null
width
integer | null
Required range: x > 0
height
integer | null
Required range: x > 0
resolution
string | null

Resolution tier from the selected mode's resolutions on GET /v1/media/models.

generate_audio
boolean | null
seed
integer | null
model_params
Model Params · object | null
idempotency_key
string | null

Keys the provider-job checkpoint: a retried call with the same key resumes the existing render instead of paying for a duplicate.

Maximum string length: 200
wait
boolean
default:true

Whether the provider render runs inside this call. The default holds the request open for the whole render (30-300s). Pass false to get a task envelope back immediately and poll GET /v1/media/generate-video/{task_id} — the right choice for long renders and for starting several candidates at once. Nothing is charged until a poll collects the finished video.

Response

Successful Response

The response is of type Response Mediageneratevideo · object.