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

# Image to Video

> Animate a single input image into a video using Grok Imagine Video.

## Body Parameters

<ParamField body="model" type="string" required>
  Grok model to use. In this phase:

  * `grok-imagine/image-to-video` — Grok Imagine Video image-to-video, output-only pricing at \$0.05/sec (480p) or \$0.07/sec (720p)
</ParamField>

<ParamField body="input" type="object" required>
  Input parameters for the generation.

  <Expandable title="properties">
    <ParamField body="image_urls" type="string[]" required>
      Input image URL array. Must contain exactly 1 public image URL that is directly accessible by the upstream Grok service.
    </ParamField>

    <ParamField body="prompt" type="string">
      Optional motion or scene direction for the animation.
    </ParamField>

    <ParamField body="duration" type="string" default="6">
      Video length in seconds. Options: `6`, `10`, `15`.
    </ParamField>

    <ParamField body="resolution" type="string" default="720p">
      Output resolution. Options: `480p`, `720p`.
    </ParamField>

    <ParamField body="mode" type="string" default="normal">
      Generation style preset. Options: `normal`, `fun`, `spicy`.

      When using external image URLs, `spicy` may be normalized to `normal` by the upstream Grok provider.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="webhookUrl" type="string">
  URL to receive a webhook when the task completes.
</ParamField>

<ParamField body="metadata" type="object">
  Custom key-value metadata to attach to the task.
</ParamField>

<ResponseExample>
  ```json 202 theme={null}
  {
    "success": true,
    "data": {
      "id": "task_grok_i2v_456",
      "status": "pending",
      "type": "image-to-video",
      "provider": "grok",
      "model": "grok-imagine/image-to-video",
      "created_at": "2026-03-13T10:00:00Z",
      "estimated_seconds": 90
    }
  }
  ```

  ```json 400 theme={null}
  {
    "success": false,
    "error": {
      "code": "VALIDATION_ERROR",
      "message": "input.image_urls must contain exactly 1 URL"
    }
  }
  ```
</ResponseExample>
