> ## 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.

# Kling 3.0 4K Image to Video

> Animate image references with Kling 3.0 4K, with support for multiple shots, individual shot prompts, and optional sound.

<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>

# Kling 3.0 4K Image to Video

Animate image references with Kling 3.0 4K, with support for multiple shots, individual shot prompts, and optional sound.

## Available Models

* **kwaivgi/kling-v3.0-4k/image-to-video** - Generate video from image input.

## Duration Options

* **3-15 seconds** - Set `duration` as an integer. Required.
* With `multi_prompt`, the shot durations must add up to the requested `duration`.

## Key Features

* Generate video from image input.
* Provide 1–2 images in `image_urls`.
* Describe individual shots with `multi_prompt` and enable `multi_shots`.
* Supply additional subject references through `kling_elements`.

## Advanced Parameters

Set `model` and optional `callback_url` at the request root. Place all workflow parameters, including output options, inside `input`.

Use the input fields listed below. Send durations as JSON integers and switches as JSON booleans. Use public HTTP(S) media URLs with a hostname and URL-based access.

* Each `multi_prompt` shot requires a nonblank `prompt` and an integer `duration` from **1 to 12 seconds**.
* The shot durations must sum to the requested `duration`. Set `multi_shots: true` and `sound: true` when using `multi_prompt`.
* When supplying `kling_elements`, provide `image_urls` and reference the element by `@element_name` in the prompt.

### Image URLs

* `image_urls`: Required. Provide publicly accessible image URLs. Supply 1–2 items: the start frame first, followed by an optional end frame. Each item must be an HTTP(S) URL.

### Prompt

* `prompt`: Required when `multi_shots` is `false`. Describe the scene and desired motion. Length: **1-2,500 characters**.
* Use nonblank text for each prompt.

### Multi-Prompt

* `multi_prompt`: Required when `multi_shots` is `true`. Supply a nonempty array. Each item is an object.

* `multi_prompt[].prompt`: Required. Maximum length: **2,500 characters**.

* `multi_prompt[].duration`: Required. Duration in seconds. Integer from `1` to `12`.

* Each shot duration is measured in seconds.

### Multi-Shot Generation

* `multi_shots`: Optional. Enable multi-shot generation. Use `true` or `false`. Default: `false`.

### Sound

* `sound`: Required. Set `true` to generate audio or `false` for a silent single shot. Multiple shots require `true`.

### Kling Elements

* `kling_elements`: Optional. Provide element-reference objects. Supply an array. Each item is an object.
* Element object properties are preserved in the submitted request.


## OpenAPI

````yaml api-manual/video-series/kwaivgi-kling-v3-0-4k-image-to-video.json POST /api/generate/submit
openapi: 3.0.0
info:
  title: Vidgo API - Kling 3.0 4K Image to Video
  description: >-
    Animate image references with Kling 3.0 4K, with support for multiple shots,
    individual shot prompts, and optional sound.
  version: 1.0.0
servers:
  - url: https://api.vidgo.ai
security:
  - BearerAuth: []
paths:
  /api/generate/submit:
    post:
      tags:
        - Video Series
      summary: Kling 3.0 4K Image to Video
      description: >-
        Generate a single shot with prompt or a sequence with multi_prompt.
        Multiple shots use multi_shots=true and sound=true; their durations add
        up to duration (3–15 seconds).
      operationId: submit_kwaivgi_kling_v3_0_4k_image_to_video
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - input
              additionalProperties: true
              properties:
                model:
                  type: string
                  example: kwaivgi/kling-v3.0-4k/image-to-video
                input:
                  type: object
                  required:
                    - duration
                    - image_urls
                    - sound
                  description: Input parameters for generation
                  properties:
                    image_urls:
                      type: array
                      items:
                        type: string
                        format: uri
                      description: >-
                        Provide a start frame at image_urls[0] and an optional
                        end frame at image_urls[1]. Use 1–2 images.
                      example:
                        - https://example.com/start-frame.png
                      minItems: 1
                      maxItems: 2
                    prompt:
                      type: string
                      description: >-
                        Required when multi_shots=false. Describe the scene,
                        action and camera movement in 1–2,500 characters.
                      maxLength: 2500
                      example: >-
                        A street musician playing violin on a rainy evening,
                        reflections shimmering on wet cobblestones
                      minLength: 1
                      pattern: \S
                    multi_prompt:
                      type: array
                      items:
                        type: object
                        required:
                          - prompt
                          - duration
                        properties:
                          prompt:
                            type: string
                            description: Prompt text for this shot
                            maxLength: 2500
                            minLength: 1
                            pattern: \S
                          duration:
                            type: integer
                            description: Duration in seconds for this shot (1-12)
                            minimum: 1
                            maximum: 12
                        additionalProperties: false
                      description: >-
                        Required when multi_shots=true. Supply shot prompts and
                        integer durations of 1–12 seconds. Their sum must equal
                        duration, from 3 to 15 seconds.
                      example:
                        - prompt: >-
                            A surfer paddling out into the ocean as waves build
                            on the horizon
                          duration: 4
                        - prompt: >-
                            The surfer catches a massive wave and rides it
                            toward the shore at sunset
                          duration: 5
                      minItems: 1
                    duration:
                      type: integer
                      description: >-
                        Integer duration from 3 to 15 seconds. In multi-shot
                        mode, equal to the sum of multi_prompt durations.
                      minimum: 3
                      maximum: 15
                      example: 5
                    multi_shots:
                      type: boolean
                      description: >-
                        Use false with prompt for a single shot, or true with
                        multi_prompt and sound=true for multiple shots. Default:
                        false.
                      default: false
                      example: false
                    sound:
                      type: boolean
                      description: >-
                        Set true to generate audio or false for a silent single
                        shot. Multi-shot generation requires true.
                      example: true
                    kling_elements:
                      type: array
                      items:
                        type: object
                        description: >-
                          Element definition object. Its properties are
                          preserved in the submitted request.
                      description: >-
                        Reference elements in prompts with @element_name.
                        Provide image_urls together with kling_elements.
                      example:
                        - name: element_robot
                          description: robot character
                          element_input_urls:
                            - https://example.com/robot-front.jpeg
                            - https://example.com/robot-side.png
                  additionalProperties: false
                  oneOf:
                    - properties:
                        multi_shots:
                          enum:
                            - false
                      required:
                        - prompt
                    - properties:
                        multi_shots:
                          enum:
                            - true
                        sound:
                          enum:
                            - true
                      required:
                        - multi_shots
                        - multi_prompt
                        - sound
                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: >-
                Place model and callback_url at the request root, and generation
                parameters inside input.
            examples:
              basic:
                summary: Basic workflow
                value:
                  model: kwaivgi/kling-v3.0-4k/image-to-video
                  input:
                    duration: 3
                    prompt: A gentle camera push brings the scene to life.
                    image_urls:
                      - https://example.com/image.png
                    multi_shots: false
                    sound: false
              callback:
                summary: Receive a completion callback
                value:
                  model: kwaivgi/kling-v3.0-4k/image-to-video
                  input:
                    duration: 3
                    prompt: A gentle camera push brings the scene to life.
                    image_urls:
                      - https://example.com/image.png
                    multi_shots: false
                    sound: false
                  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: Request validation or account authorization error
          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: Generation task submission error
          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.

````