---
title: "Create Video Regeneration Task"
method: POST
path: "/v2/video_regeneration"
tags: ["Video V2"]
---

# Create Video Regeneration Task

`POST /v2/video_regeneration`

## Request

- Base URL: `https://api.minimax.io`
- URL: `https://api.minimax.io/v2/video_regeneration`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/minimax/apis/minimax-api/docs/v2/video_regeneration/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a video regeneration task: regenerate a source video that meets the MiniMax-H3 768P output specifications as a 2K video. Two input modes are supported; you must provide **exactly one** of `source_task_id` or `content` (with a `base_video` item) — providing both or neither returns a parameter error:

- **Regenerate by task ID (`source_task_id`)**: pass the `source_task_id` of an existing succeeded `/v2/video_generation` task to regenerate from its output. This mode requires whitelist access; the source task must be owned by the current account, in `succeeded` status, and still within the 7-day query window of `/v2/query/video_generation`. No `content` is needed.
- **Regenerate by source video (`base_video`)**: provide exactly one `type=video_url`, `role=base_video` source-video item in `content`, along with the other inputs used to generate that 768P video.

This is an asynchronous endpoint: on success it returns a `task_id`; poll [Query Task](/api-reference/video-generation-v2-query) for status. `task_type` is `regeneration`. Currently supported model: `MiniMax-H3`.

## Headers

- `Content-Type` 'application/json', required

## Request body

- union
  - VideoRegenerationSourceTaskReq
    - `model` 'MiniMax-H3', required: Model name. Required. Currently supports `MiniMax-H3`.
    - `source_task_id` string, required: The `task_id` of an existing **succeeded** `/v2/video_generation` task; its output is used as the source for regeneration. Constraints: requires whitelist access; the source task must be owned by the current account, in `succeeded` status, and still queryable via `/v2/query/video_generation` (created within 7 days).
    - `resolution` '2K', required: Target resolution for video regeneration. Required. Currently supports `2K`.
    - `callback_url` string: Callback URL for task status changes. Optional. Same behavior as `callback_url` of the create video generation task endpoint.
    - `aigc_watermark` boolean: Whether to add an AIGC label watermark to the generated video. Optional. Defaults to `false`.
  - VideoRegenerationBaseVideoReq
    - `model` 'MiniMax-H3', required: Model name. Required. Currently supports `MiniMax-H3`.
    - `content` RegenContentItem[], required: Video regeneration input array. Include: - **Submit exactly the same inputs that were actually sent to the model when generating the 768P source video**. **The `text` must be the final prompt actually sent to the model, not the original prompt from before H3-Context-IR processing**. All reference images, videos, and audio must also match the original generation inputs. **Any mismatch may prevent regeneration from producing the expected result** - One 768P source-video item with `type=video_url` and `role=base_video`; exactly one such item is required `base_video` must meet the following MiniMax-H3 768P output specifications. This endpoint does not regenerate arbitrary videos. | Item | Specification | | :--- | :--- | | Audio track | Must be present; videos without an audio track are not supported | | Frame rate | 24 fps | | Width / Height | Both must be divisible by 32 | | Area (W × H) | 768 × 768 (589,824 px) ≤ area ≤ 768 × 1344 (1,032,192 px) | | Total frames | 107–362 frames in increments of 17 (about 4–15 seconds) | --- **Input media limits**: the total request body must be ≤ 64 MB; use public URLs for large files and avoid Base64. Format and per-file size limits for reference images / videos / audio are the same as the [Create Video Generation Task](/api-reference/video-generation-v2-create) endpoint.
      - `type` 'text' | 'image_url' | 'video_url' | 'audio_url', required: Type of the input content.
      - `text` string: **Must be the final prompt actually sent to the model when generating the 768P source video, not the original prompt from before H3-Context-IR processing**. Length is counted by characters, with a maximum of 40000 characters per `text`.
      - `image_url` object: Image object when `type=image_url` (for format / size / dimension / count limits, see the content field of the [Create Video Generation Task](/api-reference/video-generation-v2-create#body-content) endpoint).
        - `url` string, required: Image location. Supported: a public URL; `mm_file://{file_id}` (reference an existing platform file, e.g. an uploaded file or a previous output's file_id); a `data:image/<format>;base64,<Base64>` data URI (`<format>` lowercase).
      - `video_url` object: Video object when `type=video_url` (reference video, reference scenario only; for format / size / duration limits, see the content field of the [Create Video Generation Task](/api-reference/video-generation-v2-create#body-content) endpoint).
        - `url` string, required: Video location. Supported: a public URL; `mm_file://{file_id}` (reference an existing platform file's file_id); a `data:video/mp4;base64,<Base64>` data URI. Note the total request body must be ≤ 64 MB and Base64 inflates size by about 33%, so use a public URL or mm_file:// for large videos.
      - `audio_url` object: Audio object when `type=audio_url` (reference audio, reference scenario only; for format / size / duration limits, see the content field of the [Create Video Generation Task](/api-reference/video-generation-v2-create#body-content) endpoint).
        - `url` string, required: Audio location. Supported: a public URL; `mm_file://{file_id}` (reference an existing platform file's file_id); a `data:audio/<format>;base64,<Base64>` data URI (`<format>` lowercase).
      - `role` 'base_video' | 'first_frame' | 'last_frame' | 'reference_image' | 'reference_video' | 'reference_audio': Position or purpose of the content, conditionally required: - **`base_video`: source video for video regeneration** (`/v2/video_regeneration` only). **The source-video item must explicitly set this `role`, and `content` must contain exactly one such item.** - `first_frame`: first-frame image (image-to-video; when there is a single image and no role is set, it defaults to first_frame). - `last_frame`: last-frame image (image-to-video first & last frame, must be paired with first_frame). - `reference_image`: reference image (reference-to-video). - `reference_video`: reference video (reference-to-video). - `reference_audio`: reference audio (reference-to-video).
    - `resolution` '2K', required: Target resolution for video regeneration. Required. Currently supports `2K`.
    - `callback_url` string: Callback URL for task status changes. Optional. Same behavior as `callback_url` of the create video generation task endpoint.
    - `aigc_watermark` boolean: Whether to add an AIGC label watermark to the generated video. Optional. Defaults to `false`.

## Response `200`

The create endpoint returns a `task_id`. Use this `task_id` with the [Query Task](/api-reference/video-generation-v2-query) endpoint to retrieve the task status and result.

**Successful Query Task response example**

```json
{
  "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"
  }
}
```

- VideoGenerationV2Resp
  - `task_id` string: ID of the task, used to query the task status and result later.

## Other responses

- `400`: Invalid parameters
- `401`: Authentication failed
- `402`: Insufficient balance/quota
- `422`: Input contains sensitive content
- `429`: Rate limit triggered
- `500`: Server error

---

[API](https://skmtc.dev/minimax/apis/minimax-api.md) - [All operations](https://skmtc.dev/minimax/apis/minimax-api/llms.txt) - [OpenAPI document](https://skmtc.dev/minimax/apis/minimax-api/revisions/81353c47e0e6?raw)
