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

# Google Veo 3.1 Lite Image to Video

> Fast and affordable image animation with audio. Supports optional last frame for interpolation.

|             |                                                               |
| ----------- | ------------------------------------------------------------- |
| **Credits** | 10 credits per second at 720p, 16 credits per second at 1080p |
| **Tool**    | `animate-image`                                               |

### Headers

| Name            | Type   | Required | Description        |
| --------------- | ------ | -------- | ------------------ |
| `Authorization` | string | Yes      | Your API key       |
| `Content-Type`  | string | Yes      | `application/json` |

### Body

| Parameter             | Type   | Required | Description                                                                                  |
| --------------------- | ------ | -------- | -------------------------------------------------------------------------------------------- |
| `tool`                | string | Yes      | `animate-image`                                                                              |
| `input.model`         | string | Yes      | `veo3-1-lite-image-to-video`                                                                 |
| `input.image_url`     | string | Yes      | URL of the image to animate                                                                  |
| `input.prompt`        | string | Yes      | Describe how you want the image to animate                                                   |
| `input.end_image_url` | string | No       | Optional last frame for interpolation (forces 8s duration)                                   |
| `input.duration`      | string | No       | Video duration in seconds. Options: `4`, `6`, `8` (default: `8`). 1080p requires 8s duration |
| `input.aspect_ratio`  | string | No       | Aspect ratio. Options: `auto`, `16:9`, `9:16` (default: `auto`)                              |
| `input.resolution`    | string | No       | Video resolution. Options: `720p`, `1080p` (default: `720p`)                                 |

<RequestExample>
  ```bash bash theme={null}
  curl -X POST https://api.artificialstudio.ai/api/run \
    -H "Content-Type: application/json" \
    -H "Authorization: YOUR_API_KEY" \
    -d '{
      "tool": "animate-image",
      "input": {
        "model": "veo3-1-lite-image-to-video",
        "image_url": "https://example.com/image.jpg",
        "prompt": "Steam rises from the coffee cup as sunlight streams in"
      }
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.artificialstudio.ai/api/run', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      tool: 'animate-image',
      input: {
        model: 'veo3-1-lite-image-to-video',
        image_url: 'https://example.com/image.jpg',
        prompt: 'Steam rises from the coffee cup as sunlight streams in'
      }
    })
  });

  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      'https://api.artificialstudio.ai/api/run',
      headers={
          'Content-Type': 'application/json',
          'Authorization': 'YOUR_API_KEY'
      },
      json={
          'tool': 'animate-image',
          'input': {
              'model': 'veo3-1-lite-image-to-video',
              'image_url': 'https://example.com/image.jpg',
              'prompt': 'Steam rises from the coffee cup as sunlight streams in'
          }
      }
  )

  data = response.json()
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "507f1f77bcf86cd799439011",
    "status": "processing",
    "tool": "animate-image",
    "createdAt": "2024-01-15T10:30:00.000Z"
  }
  ```

  ```json 400 theme={null}
  {
    "message": "Missing or invalid parameters"
  }
  ```

  ```json 401 theme={null}
  {
    "message": "Invalid or missing API key"
  }
  ```

  ```json 402 theme={null}
  {
    "message": "You do not have enough credits to perform this action"
  }
  ```

  ```json 429 theme={null}
  {
    "message": "Too many API requests, please try again later"
  }
  ```
</ResponseExample>
