MiniMax-H3 Create Video Regeneration Task
Regenerates a 2K video from a source video that matches the MiniMax-H3 768P output specification.
Endpoint
POST /minimax/v2/video_regenerationUsage restrictions:
- Only supports regenerating videos that match the MiniMax-H3 768P output specification and outputting 2K; general processing of arbitrary videos is not supported
- The regeneration task's
task_typeisregeneration, which can be managed via the shared H3 query task, query task list APIs
Request Headers
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Content-Type | string | Yes | application/json | Request body media type |
Authorization | string | Yes | - | Authentication, format Bearer <API_KEY> |
Request Body (choose one of two)
Two methods are supported: by task ID (source_task_id) or by source video (a video_url item with role set to base_video in content).
The two methods are mutually exclusive; you cannot pass both
source_task_idandcontent.base_videoin the same request.
Method 1: Regenerate by task ID
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model name, currently MiniMax/MiniMax-H3-Regeneration |
source_task_id | string | Yes | task_id of an existing successful /v2/video_generation task. Restrictions: whitelist required; source task must belong to the current account, have status succeeded, and be queryable within 7 days |
resolution | string | Yes | Target resolution, currently 2K |
callback_url | string | No | Callback URL for task status changes, same behavior as create video generation task |
aigc_watermark | boolean | No | Whether to add an AIGC watermark, default false |
Method 2: Regenerate by source video (base_video)
Pass the source video URL directly as the regeneration input, without relying on the original task ID and without the "source task queryable within 7 days" restriction.
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model name, currently MiniMax/MiniMax-H3-Regeneration |
content | object[] | Yes | Multi-modal input array. Must contain one non-empty text item and one video_url item with role = base_video |
resolution | string | Yes | Target resolution, currently 2K |
callback_url | string | No | Callback URL for task status changes, same behavior as create video generation task |
aigc_watermark | boolean | No | Whether to add an AIGC watermark, default false |
content Element Details (Method 2)
Element type | role | Required | Description |
|---|---|---|---|
text | - | Yes | Text prompt for regeneration; must be non-empty. Missing or empty returns 400 (error code 2013) |
video_url | base_video | Yes | The source video to regenerate; exactly 1 is allowed |
image_url | first_frame | No | First frame image for the image-to-video scenario |
image_url | last_frame | No | Last frame image for the image-to-video scenario |
image_url | reference_image | No | Reference image for the multi-modal reference scenario |
video_url | reference_video | No | Reference video for the multi-modal reference scenario |
audio_url | reference_audio | No | Reference audio for the multi-modal reference scenario (timbre / voice reference) |
Supported input combinations:
| Scenario | Combination |
|---|---|
| Text-to-video regeneration | text + base_video |
| Image-to-video regeneration | text + base_video + first_frame (optionally combined with last_frame) |
| Multi-modal reference regeneration | text + base_video + a combination of reference_image / reference_video / reference_audio |
Mutual exclusion: Same as Create Video Generation Task.
base_videocan coexist with eitherfirst_frame/last_frameorreference_*, butfirst_frame/last_frameandreference_image/reference_video/reference_audioremain mutually exclusive.
base_video Source Video Requirements
- Must be a 768P MiniMax-H3 generated video output; general upscaling / remastering of arbitrary videos is not supported
- Must be an accessible public URL; you can also upload it via the File Upload API first and reference it as
mm_file://{file_id}in theurlfield - Container format, codec, size, duration and other limits are the same as
video_urlin Create Video Generation Task duration/ratioare not passed in this method; the output resolution is fixed at2K, and the aspect ratio and duration follow thebase_videosource video
Request Examples
# Regenerate by task ID
curl --request POST \
--url https://neolink.com/api/minimax/v2/video_regeneration \
--header 'Authorization: Bearer <API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "MiniMax/MiniMax-H3-Regeneration",
"source_task_id": "424010985738629",
"resolution": "2K"
}'
# Regenerate by source video (base_video) - text-to-video
curl --request POST \
--url https://neolink.com/api/minimax/v2/video_regeneration \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "MiniMax/MiniMax-H3-Regeneration",
"content": [
{
"type": "text",
"text": "史诗级太空歌剧院线预告:女舰长独自站在巨大观景窗前,最后一支舰队正在集结并跃迁离去,强光爆闪、舰桥震动,她被留在原地。"
},
{
"type": "video_url",
"video_url": {
"url": "https://your-cdn.example.com/h3-t2va-768p.mp4"
},
"role": "base_video"
}
],
"resolution": "2K"
}
'
# Regenerate by source video (base_video) - image-to-video
curl --request POST \
--url https://neolink.com/api/minimax/v2/video_regeneration \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "MiniMax/MiniMax-H3-Regeneration",
"content": [
{
"type": "text",
"text": "Pull focus to the people in the background and add more steam to the ramen bowl."
},
{
"type": "image_url",
"image_url": {
"url": "https://cdn.hailuoai.com/prod/hailuo_demo/testsets/H3_AA_I2VA/gallery/sr_v17_variants_seed42_43_20260724/inputs/4a3a90bf9100_KDmcbkhzYo5sjjxr9FqcVmWVnzb.png"
},
"role": "first_frame"
},
{
"type": "video_url",
"video_url": {
"url": "https://your-cdn.example.com/h3-i2va-768p.mp4"
},
"role": "base_video"
}
],
"resolution": "2K"
}
'
# Regenerate by source video (base_video) - multi-modal reference
curl --request POST \
--url https://neolink.com/api/minimax/v2/video_regeneration \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "MiniMax/MiniMax-H3-Regeneration",
"content": [
{
"type": "text",
"text": "角色说话:Follow the wind, live free. Leave worries behind, enjoy the moment,音色参考音频1"
},
{
"type": "video_url",
"video_url": {
"url": "https://cdn.hailuoai.com/prod/hailuo_demo/testsets/h3_promo_eval_ref2va/gallery/sr_v2p26_trio_seed42_20260724/inputs/297573323635_00_%E8%A7%86%E9%A2%911_YnyRbxEwio_video_20260525_163755_1927e9d3.mp4"
},
"role": "reference_video"
},
{
"type": "audio_url",
"audio_url": {
"url": "https://cdn.hailuoai.com/prod/hailuo_demo/testsets/h3_promo_eval_ref2va/gallery/sr_v2p26_trio_seed42_20260724/inputs/f463d523c5ce_01_%E9%9F%B3%E9%A2%911_RSLcbpzJPo_6%E6%9C%885%E6%97%A5(1).mp3"
},
"role": "reference_audio"
},
{
"type": "video_url",
"video_url": {
"url": "https://your-cdn.example.com/h3-r2va-768p.mp4"
},
"role": "base_video"
}
],
"resolution": "2K"
}
'Success Response (HTTP 200)
{
"task_id": "424010985738629"
}| Field | Type | Description |
|---|---|---|
task_id | string | Task ID, used to query task status and results |
Query Task Response Example
{
"task": {
"id": "424010985738631",
"model": "MiniMax-H3",
"status": "succeeded",
"created_at": 1785126000,
"updated_at": 1785126300,
"content": {
"url": "https://your-cdn.example.com/h3-regenerated-2k-output.mp4"
},
"resolution": "2K",
"duration": 5,
"usage": {
"total_seconds": 5,
"input_seconds": 0,
"output_seconds": 5,
"input_image_count": 0
},
"ratio": "",
"task_type": "regeneration",
"modality": "video"
}
}Error Responses
| HTTP Status | Error Type | Error Code | Description |
|---|---|---|---|
| 400 | bad_request_error | 2013 | Invalid params. When regenerating by source video, this commonly occurs when content is missing a non-empty text item or missing base_video |
| 401 | authorized_error | 1004 | Authentication failed |
| 402 | insufficient_balance_error | 1008 | Insufficient balance |
| 422 | unprocessable_entity_error | 1026 | Video description contains sensitive content |
| 429 | rate_limit_error | 1002 | Rate limit, please retry later |
| 500 | server_error | 1000 | Internal error |
