> ## Documentation Index
> Fetch the complete documentation index at: https://evolink.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Minimax H3 Reference-to-Video

> - Supports up to 9 reference images, 3 reference videos, and 3 reference audio clips
- At least one reference image or video is required; audio-only input is not supported
- Output duration: `5`–`15` seconds; currently only `2k` is supported
- Asynchronous processing; use the returned task ID to [query status](/en/api-manual/task-management/get-task-detail)
- Generated video URLs are valid for 24 hours; save them promptly



## OpenAPI

````yaml en/api-manual/video-series/minimax/minimax-h3-reference-to-video.json POST /v1/videos/generations
openapi: 3.1.0
info:
  title: Minimax H3 Reference-to-Video API
  description: >-
    Minimax H3 reference-to-video API supporting image, video, and audio
    references
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Video Generation
    description: AI video generation endpoints
paths:
  /v1/videos/generations:
    post:
      tags:
        - Video Generation
      summary: Minimax H3 Reference-to-Video
      description: >-
        - Supports up to 9 reference images, 3 reference videos, and 3 reference
        audio clips

        - At least one reference image or video is required; audio-only input is
        not supported

        - Output duration: `5`–`15` seconds; currently only `2k` is supported

        - Asynchronous processing; use the returned task ID to [query
        status](/en/api-manual/task-management/get-task-detail)

        - Generated video URLs are valid for 24 hours; save them promptly
      operationId: createMinimaxH3ReferenceToVideo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoGenerationRequest'
            examples:
              image_reference:
                summary: Image reference
                value:
                  model: minimax-h3-reference-to-video
                  prompt: >-
                    Use the person in Image 1 as the sole character reference,
                    preserving face, hairstyle, and clothing. The character
                    walks into the wind on a seaside boardwalk as the camera
                    tracks smoothly from a medium shot to a side close-up in
                    sunset backlight.
                  image_urls:
                    - >-
                      https://cdn.hailuoai.com/prod/hailuo_demo/testsets/H3_AA_I2VA/gallery/sr_v17_variants_seed42_43_20260724/inputs/4a3a90bf9100_KDmcbkhzYo5sjjxr9FqcVmWVnzb.png
                  duration: 5
                  quality: 2k
                  aspect_ratio: adaptive
              video_audio_reference:
                summary: Video and audio references
                value:
                  model: minimax-h3-reference-to-video
                  prompt: >-
                    Follow the motion, pacing, composition, and camera language
                    of Video 1. The character says, “Follow the wind, live free.
                    Leave worries behind and enjoy the moment.” Use the voice
                    from Audio 1 and synchronize the lips.
                  video_urls:
                    - >-
                      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
                  audio_urls:
                    - >-
                      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
                  duration: 5
                  quality: 2k
                  aspect_ratio: adaptive
              multimodal:
                summary: Multimodal references (image + video + audio)
                value:
                  model: minimax-h3-reference-to-video
                  prompt: >-
                    Replace the person in Video 1 with the character from Image
                    1, preserving the face, hairstyle, and clothing. Keep the
                    motion, pacing, composition, and camera language of Video 1,
                    and perform the dialogue with the voice from Audio 1 with
                    synchronized lips.
                  image_urls:
                    - >-
                      https://cdn.hailuoai.com/prod/hailuo_demo/testsets/H3_AA_I2VA/gallery/sr_v17_variants_seed42_43_20260724/inputs/4a3a90bf9100_KDmcbkhzYo5sjjxr9FqcVmWVnzb.png
                  video_urls:
                    - >-
                      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
                  audio_urls:
                    - >-
                      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
                  duration: 5
                  quality: 2k
                  aspect_ratio: adaptive
      responses:
        '200':
          description: Video generation task created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoGenerationResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_request
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: Unauthenticated, token invalid or expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Insufficient quota, top-up required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: insufficient_quota
                  message: Insufficient quota. Please top up your account.
                  type: insufficient_quota
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: model_access_denied
                  message: >-
                    Token does not have access to model:
                    minimax-h3-reference-to-video
                  type: invalid_request_error
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: rate_limit_exceeded
                  message: Too many requests, please try again later
                  type: rate_limit_error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Internal server error
                  type: api_error
components:
  schemas:
    VideoGenerationRequest:
      type: object
      required:
        - model
        - prompt
      properties:
        model:
          type: string
          description: Video generation model name
          enum:
            - minimax-h3-reference-to-video
          default: minimax-h3-reference-to-video
          example: minimax-h3-reference-to-video
        prompt:
          type: string
          minLength: 1
          description: >-
            Describe how the reference assets should be used and the video you
            want to generate.


            **Prompt requirements:**

            - Required and cannot be empty

            - Chinese and English are supported

            - We recommend no more than `500` Chinese characters or `1000`
            English words; the model may ignore some details in an overly long
            prompt


            **Asset reference rules:**

            - Refer to assets as `Image 1`, `Image 2`, `Video 1`, `Audio 1`, and
            so on; do not use Seedance-style `@image1` or `@video1`

            - Numbering starts at `1` and follows the order within each URL
            array

            - The first item in `image_urls` is `Image 1`, the first in
            `video_urls` is `Video 1`, and the first in `audio_urls` is `Audio
            1`


            **Input restrictions:**

            - `image_start` and `image_end` are not supported

            - Provide at least `1` reference image or `1` reference video;
            reference audio cannot be used by itself
          example: >-
            Replace the person in Video 1 with the character from Image 1,
            preserving the face, hairstyle, and clothing. Keep the motion,
            pacing, composition, and camera language of Video 1, and perform the
            dialogue with the voice from Audio 1 with synchronized lips.
        image_urls:
          type: array
          description: >-
            Array of HTTP(S) reference-image URLs. Defaults to `[]`; maximum `9`
            images.


            **Role and numbering:**

            - Every image is used as `reference_image`

            - The first item is `Image 1`, the second is `Image 2`, and so on


            **Image requirements:**

            - Formats: JPG, JPEG, PNG, WEBP, HEIC, HEIF

            - File size: no more than `30MB` each

            - Width and height: each from `256` to `5760` px

            - Aspect ratio (width/height): `0.4`–`2.5`

            - URLs must use HTTP(S) and be directly accessible by the service

            - The complete JSON request body must not exceed `64MB`; Base64 and
            `mm_file://` inputs are not accepted


            **Combination rules:**

            - Provide at least `1` reference image or `1` reference video

            - Supplying only `audio_urls` returns a parameter error
          default: []
          maxItems: 9
          items:
            type: string
            format: uri
          example:
            - >-
              https://cdn.hailuoai.com/prod/hailuo_demo/testsets/H3_AA_I2VA/gallery/sr_v17_variants_seed42_43_20260724/inputs/4a3a90bf9100_KDmcbkhzYo5sjjxr9FqcVmWVnzb.png
        video_urls:
          type: array
          description: >-
            Array of HTTP(S) reference-video URLs. Defaults to `[]`; maximum `3`
            videos.


            **Role and numbering:**

            - Every video is used as `reference_video`

            - The first item is `Video 1`, the second is `Video 2`, and so on


            **Video requirements:**

            - Containers: MP4 (`.mp4`), MOV (`.mov`)

            - Video codecs: H.264/AVC, H.265/HEVC

            - Embedded audio codecs: AAC, MP3

            - File size: no more than `50MB` each

            - Duration: `2`–`15` seconds per clip; total reference-video
            duration no more than `15` seconds

            - Width and height: each from `256` to `5760` px

            - Aspect ratio (width/height): `0.4`–`2.5`

            - Frame rate: `23.976`–`60` FPS

            - URLs must use HTTP(S) and be directly accessible by the service

            - The complete JSON request body must not exceed `64MB`; Base64 and
            `mm_file://` inputs are not accepted


            **Billing:**

            - Reference-video input duration is billable


            **Combination rules:**

            - Provide at least `1` reference image or `1` reference video

            - Supplying only `audio_urls` returns a parameter error
          default: []
          maxItems: 3
          items:
            type: string
            format: uri
          example:
            - >-
              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
        audio_urls:
          type: array
          description: >-
            Array of HTTP(S) reference-audio URLs. Defaults to `[]`; maximum `3`
            clips.


            **Role and numbering:**

            - Every audio clip is used as `reference_audio`

            - The first item is `Audio 1`, the second is `Audio 2`, and so on


            **Audio requirements:**

            - Formats: WAV, MP3

            - File size: no more than `15MB` each

            - Duration: `2`–`15` seconds per clip; total reference-audio
            duration no more than `15` seconds

            - URLs must use HTTP(S) and be directly accessible by the service

            - The complete JSON request body must not exceed `64MB`; Base64 and
            `mm_file://` inputs are not accepted


            **Combination rules:**

            - Reference audio cannot be used by itself

            - When using `audio_urls`, also provide at least `1` reference image
            or `1` reference video
          default: []
          maxItems: 3
          items:
            type: string
            format: uri
          example:
            - >-
              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
        duration:
          type: integer
          description: |-
            Output video duration in seconds. Defaults to `5` seconds.

            **Value restrictions:**
            - Only integers from `5` through `15`, inclusive, are supported
            - Decimals, numeric strings, `auto`, and `-1` are not supported
            - Output duration directly affects billing
          default: 5
          minimum: 5
          maximum: 15
          example: 5
        quality:
          type: string
          description: >-
            Output video resolution. Defaults to `2k`.


            **Available value:**

            - `2k`: the only resolution currently supported


            **Notes:**

            - `768p` is not yet available and returns a parameter error

            - Output bitrate, frame rate, video codec, and audio codec are
            selected by the platform and are not configurable
          enum:
            - 2k
          default: 2k
          example: 2k
        aspect_ratio:
          type: string
          description: >-
            Output video aspect ratio. Defaults to `adaptive`.


            **Available values:**

            - `adaptive`: the model selects a suitable ratio from the reference
            assets and prompt

            - `21:9`: ultrawide

            - `16:9`: landscape

            - `4:3`: standard landscape

            - `1:1`: square

            - `3:4`: standard portrait

            - `9:16`: portrait
          enum:
            - adaptive
            - '21:9'
            - '16:9'
            - '4:3'
            - '1:1'
            - '3:4'
            - '9:16'
          default: adaptive
          example: adaptive
        callback_url:
          type: string
          description: >-
            HTTPS callback URL for task completion


            **Callback timing:**

            - Triggered when the task is completed or failed

            - Sent after billing confirmation is complete


            **Security restrictions:**

            - Only HTTPS protocol is supported

            - Callbacks to private IP addresses are prohibited (127.0.0.1,
            10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)

            - URL length must not exceed `2048` characters


            **Callback mechanism:**

            - Timeout: `10` seconds

            - Up to `3` retries after failure (at `1`/`2`/`4` seconds after
            failure respectively)

            - Callback response body format is consistent with the task query
            endpoint response format

            - A 2xx status code is considered successful; other status codes
            trigger retries
          format: uri
          example: https://your-domain.com/webhooks/video-task-completed
          pattern: ^https://
      additionalProperties: false
    VideoGenerationResponse:
      type: object
      properties:
        created:
          type: integer
          description: Task creation timestamp
          example: 1761313744
        id:
          type: string
          description: Task ID
          example: task-unified-1774857405-abc123
        model:
          type: string
          description: Actual model name used
          example: minimax-h3-reference-to-video
        object:
          type: string
          enum:
            - video.generation.task
          description: Specific type of the task
        progress:
          type: integer
          description: Task progress percentage (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: Task status
          enum:
            - pending
            - processing
            - completed
            - failed
          example: pending
        task_info:
          $ref: '#/components/schemas/VideoTaskInfo'
          description: Video task details
        type:
          type: string
          enum:
            - text
            - image
            - audio
            - video
          description: Output type of the task
          example: video
        usage:
          $ref: '#/components/schemas/VideoUsage'
          description: Usage and billing information
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Error code identifier
            message:
              type: string
              description: Error description message
            type:
              type: string
              description: Error type
    VideoTaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: >-
            Whether the task can be canceled. Minimax H3 tasks cannot be
            canceled; always `false`.
          example: false
          enum:
            - false
          default: false
        estimated_time:
          type: integer
          description: Estimated completion time (seconds)
          minimum: 0
          example: 165
        video_duration:
          type: integer
          description: Video duration (seconds)
          example: 8
    VideoUsage:
      type: object
      description: Usage and billing information
      properties:
        billing_rule:
          type: string
          description: Billing rule
          enum:
            - per_call
            - per_token
            - per_second
          example: per_second
        credits_reserved:
          type: number
          description: Estimated credits consumed
          minimum: 0
          example: 50
        user_group:
          type: string
          description: User group category
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##All endpoints require Bearer Token authentication##


        **Get API Key:**


        Visit the [API Key Management Page](https://evolink.ai/dashboard/keys)
        to obtain your API Key


        **Add to request header:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````