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

# Minimax Hailuo 2.3 Image-to-Video

Minimax Hailuo 2.3 is a newly upgraded video generation model with improved performance in body movements, physical effects, and instruction comprehension and execution.

<Tip>
  This is an **async** API that only returns the task\_id of the async task. You should use the task\_id to call the [Get Async Task Result API](/docs/models/reference-get-async-task-result) to retrieve the generated result.
</Tip>

## Request Headers

<ParamField header="Content-Type" type="string" required={true}>
  Enum: `application/json`
</ParamField>

<ParamField header="Authorization" type="string" required={true}>
  Bearer authentication format: Bearer \{\{API Key}}.
</ParamField>

## Request Body

<ParamField body="prompt" type="string" required={true}>
  The prompt text that guides the generation.

  Range: `1 <= x <= 2000`.

  Supports 15 camera movement instructions:

  * Horizontal pan: \[Pan Left], \[Pan Right]
  * Horizontal rotate: \[Rotate Left], \[Rotate Right]
  * Push/Pull: \[Push In], \[Pull Out]
  * Vertical move: \[Rise], \[Descend]
  * Vertical tilt: \[Tilt Up], \[Tilt Down]
  * Zoom: \[Zoom In], \[Zoom Out]
  * Other: \[Shake], \[Follow], \[Static]

  Usage rules:

  * Combined camera movements: Multiple instructions within the same \[] will take effect simultaneously, e.g. \[Rotate Left, Rise]. It is recommended to combine no more than 3
  * Sequential camera movements: Instructions appearing in sequence in the prompt will take effect one after another, e.g. "...\[Push In], then...\[Pull Out]"
  * Natural language: Camera movements can also be described in natural language, but using standard instructions produces more accurate results
</ParamField>

<ParamField body="image" type="string" required={true}>
  The image used for video generation. Supports public URLs or Base64 encoding (e.g. `data:image/jpeg;base64,...`).
</ParamField>

<ParamField body="duration" type="integer" required={false}>
  Duration of the generated video (in seconds). Default: `6`<br />
  Possible values: `6`, `10`
</ParamField>

<ParamField body="resolution" type="string" required={false}>
  Resolution of the generated video. Default: `768P`

  * 6-second videos support: `768P`, `1080P`
  * 10-second videos only support: `768P`
</ParamField>

<ParamField body="enable_prompt_expansion" type="boolean" required={false}>
  Whether to enable prompt optimization.

  Default: `true`.
</ParamField>

<ParamField body="fast_pretreatment" type="boolean" required={false} default={false}>
  Whether to reduce the time spent on prompt optimization.

  Default: `false`.
</ParamField>

## Response

<ResponseField name="task_id" type="string" required={true}>
  The task\_id of the async task. Use the task\_id to call the [Get Async Task Result API](/docs/models/reference-get-async-task-result) to retrieve the generated result.
</ResponseField>
