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

# Veo 3.1 Lite Image to Video

> Generate motion from an image or connect opening and closing frames with Veo 3.1 Lite, with optional sound and output up to 1080p.

<Tip>
  1. Submit the request with `VIDGO_API_KEY`. A `task_id` is returned immediately. Keep it until the task reaches `finished` or `failed`.
  2. Use [Query Task Status](/api-manual/task-management/status) to retrieve the result. If you provide a `callback_url`, Vidgo sends the result to your [webhook](/api-manual/task-management/webhooks) when the task finishes or fails.
</Tip>

# Veo 3.1 Lite Image to Video

Generate motion from an image or connect opening and closing frames with Veo 3.1 Lite, with optional sound and output up to 1080p.

## Available Models

* **google/veo3.1-lite/image-to-video** - Generate video from image input.

## Duration Options

* **4, 6, 8 seconds** - Set `duration` to one of these values. Default: **8 seconds**.
* Set `duration: 8` when using `1080p` output or two input images.

## Key Features

* Generate motion from one starting image, or connect two images as the first and last frames.
* Choose from `720p`, `1080p` output resolutions.
* Control audio generation with `sound`; it defaults to `true`.

## Advanced Parameters

Set `model` and optional `callback_url` at the request root. Place the parameters below inside `input`.

Send only the input fields supported by this workflow. Unsupported `input` fields are rejected before credits are deducted. Input URLs must use HTTP(S), include a hostname, and contain no embedded credentials.

### Prompt

* `prompt`: Required. Describe the scene and desired motion.
* The prompt must not be blank when supplied.

### Image URLs

* `image_urls`: Required. Provide 1-2 image URLs.
* One image is used as the starting frame.
* With two images, list the starting frame first and the ending frame second.
* Images must be publicly accessible and directly downloadable.

### Generation Type

* Omit `generation_type` when supplying one image.
* With two images, `generation_type` defaults to `frame`.
* If you explicitly set `generation_type: "frame"`, exactly two images are required.

### Resolution

* `resolution`: `720p`, `1080p`. Default: `720p`.
* `1080p` requires `duration: 8`.

### Aspect Ratio

* `aspect_ratio`: `auto`, `16:9`, `9:16`. Default: `16:9`.

### Audio

* `sound`: Set to `true` to enable generated audio, or `false` to disable it. Default: `true`.

## Pricing

Pricing depends on the selected model and applicable output settings. Check the Vidgo dashboard for the current rate.

Credits are deducted on submission and refunded if the task fails.


## OpenAPI

````yaml api-manual/video-series/google-veo3-1-lite-image-to-video.json POST /api/generate/submit
openapi: 3.0.0
info:
  title: Vidgo API - Veo 3.1 Lite Image to Video
  description: >-
    Generate motion from an image or connect opening and closing frames with Veo
    3.1 Lite, with optional sound and output up to 1080p.
  version: 1.0.0
servers:
  - url: https://api.vidgo.ai
security:
  - BearerAuth: []
paths:
  /api/generate/submit:
    post:
      tags:
        - Video Series
      summary: Veo 3.1 Lite Image to Video
      description: >-
        Send only the fields shown for this workflow. Parameters from other
        workflows are rejected before credits are deducted.


        When supplied, prompt and text must not be blank. Input URL fields
        require HTTP(S) URLs with a hostname and no embedded credentials.


        Supply one or two images. Omit generation_type for a single starting
        image. Two images default to generation_type=frame; explicitly
        specifying frame requires exactly two images.


        Lite requires an eight-second duration for 1080p or two-frame input.
      operationId: submit_google_veo3_1_lite_image_to_video
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - input
              additionalProperties: true
              properties:
                model:
                  type: string
                  enum:
                    - google/veo3.1-lite/image-to-video
                  example: google/veo3.1-lite/image-to-video
                  description: >-
                    Vidgo public model ID. Must be
                    `google/veo3.1-lite/image-to-video`.
                input:
                  type: object
                  required:
                    - image_urls
                    - prompt
                  properties:
                    prompt:
                      type: string
                      minLength: 1
                      description: Prompt.
                    image_urls:
                      type: array
                      items:
                        type: string
                        format: uri
                        description: Image urls.
                      maxItems: 2
                      minItems: 1
                      description: >-
                        One starting image, or two images for the first and last
                        frames.
                    generation_type:
                      type: string
                      enum:
                        - frame
                      description: >-
                        Optional. Omit with one image. With two images, defaults
                        to frame; explicitly specifying frame requires exactly
                        two images.
                    duration:
                      type: integer
                      enum:
                        - 4
                        - 6
                        - 8
                      default: 8
                      description: >-
                        Output duration: 4, 6, or 8 seconds. Lite requires 8
                        seconds at 1080p or with two input images.
                    aspect_ratio:
                      type: string
                      enum:
                        - auto
                        - '16:9'
                        - '9:16'
                      default: '16:9'
                      description: Aspect ratio.
                    resolution:
                      type: string
                      enum:
                        - 720p
                        - 1080p
                      default: 720p
                      description: Resolution.
                    sound:
                      type: boolean
                      default: true
                      description: Sound.
                  additionalProperties: false
                callback_url:
                  type: string
                  nullable: true
                  description: >-
                    Optional public HTTP(S) endpoint for task completion
                    notifications. HTTPS is recommended. Omit, use null, or use
                    an empty string to disable callbacks.
              description: >-
                Keep model and callback_url at the root. Unknown root fields are
                ignored; unsupported input fields are rejected.
            examples:
              basic:
                summary: Basic workflow
                value:
                  model: google/veo3.1-lite/image-to-video
                  input:
                    image_urls:
                      - https://example.com/image.png
                    prompt: >-
                      A quiet forest under soft morning light, with natural
                      detail.
                    duration: 8
                    aspect_ratio: '16:9'
                    resolution: 720p
                    sound: true
              callback:
                summary: Receive a completion callback
                value:
                  model: google/veo3.1-lite/image-to-video
                  input:
                    image_urls:
                      - https://example.com/image.png
                    prompt: >-
                      A quiet forest under soft morning light, with natural
                      detail.
                    duration: 8
                    aspect_ratio: '16:9'
                    resolution: 720p
                    sound: true
                  callback_url: https://your-domain.com/callback
      responses:
        '200':
          description: Task submitted
          content:
            application/json:
              schema:
                type: object
                required:
                  - code
                  - data
                properties:
                  code:
                    type: integer
                    enum:
                      - 200
                  data:
                    type: object
                    required:
                      - task_id
                      - status
                      - created_time
                    properties:
                      task_id:
                        type: string
                      status:
                        type: string
                        enum:
                          - not_started
                          - running
                          - finished
                          - failed
                      created_time:
                        type: string
                        format: date-time
              example:
                code: 200
                data:
                  task_id: task-unified-example
                  status: running
                  created_time: '2026-09-10T08:00:00'
        '400':
          description: >-
            Invalid input, unsupported tier, inaccessible media, or insufficient
            credits
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '401':
          description: Invalid credentials
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '404':
          description: Unknown or disabled model
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '408':
          description: Request timed out
          content:
            text/plain:
              schema:
                type: string
              example: Request timeout
        '422':
          description: Invalid JSON or non-object request body
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '429':
          description: Rate or API key credit limit exceeded
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '502':
          description: Unable to create the upstream generation task
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '503':
          description: Model configuration or capability is not approved
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Use VIDGO_API_KEY.

````