> ## 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 Turbo Pro Image to Video

> Bring reference images into motion with Kling 3.0 Turbo Pro, using text and shot prompts to guide a video sequence.

<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 Turbo Pro Image to Video

Bring reference images into motion with Kling 3.0 Turbo Pro, using text and shot prompts to guide a video sequence.

## Available Models

* **kwaivgi/kling-v3-turbo-pro/image-to-video** - Generate video from image input.

## Duration Options

* **3-15 seconds** - Accepted range for an explicit `duration`. Without `multi_prompt`, the default is **5 seconds**.
* **Multi-shot output** - Each shot accepts `1`-`15` seconds and defaults to `5`. The total must not exceed **15 seconds**.
* With `multi_prompt`, omit `duration` to use the shot total, including totals of **1 or 2 seconds**. If supplied, `duration` must equal the shot total and remain within `3`-`15` seconds.

## Key Features

* Animate a single reference image.
* Direct one scene with `prompt`, or use `multi_prompt` for up to six shots.
* The input image determines the output aspect ratio.

## 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` is optional and supports up to **2,500 characters**. Blank optional prompts are treated as omitted.
* Use either `prompt` or `multi_prompt`; do not combine them.

### Image URLs

* `image_urls`: Required. Provide exactly 1 image URL.
* Images must be publicly accessible and directly downloadable.

### Multi-Prompt

* `multi_prompt` accepts **1-6 shot objects** and cannot be combined with `prompt`.
* Each shot requires a nonblank `prompt` of at most **2,500 characters**.
* Each shot can include an integer `duration` from **1 to 15 seconds**; the default is **5 seconds**.
* The combined shot duration must not exceed **15 seconds**. See Duration Options for the top-level `duration` rules.

### Aspect Ratio

* The output aspect ratio follows the input image.
* `aspect_ratio` is ignored by this endpoint and can be omitted.

## Pricing

With `multi_prompt`, billing uses the combined shot duration. Otherwise, it uses the requested `duration` or its default.

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/kwaivgi-kling-v3-turbo-pro-image-to-video.json POST /api/generate/submit
openapi: 3.0.0
info:
  title: Vidgo API - Kling 3.0 Turbo Pro Image to Video
  description: >-
    Bring reference images into motion with Kling 3.0 Turbo Pro, using text and
    shot prompts to guide a video sequence.
  version: 1.0.0
servers:
  - url: https://api.vidgo.ai
security:
  - BearerAuth: []
paths:
  /api/generate/submit:
    post:
      tags:
        - Video Series
      summary: Kling 3.0 Turbo Pro Image to Video
      description: >-
        Send only the fields shown for this workflow. Parameters from other
        workflows are rejected before credits are deducted.


        Blank optional prompts are treated as omitted. Input URL fields require
        HTTP(S) URLs with a hostname and no embedded credentials.


        The output aspect ratio follows the input image; aspect_ratio has no
        effect on this endpoint.


        prompt is optional and cannot be combined with multi_prompt. Supply one
        to six shots, each with a nonblank prompt and an optional integer
        duration from one to fifteen seconds (default five). The shot total must
        not exceed fifteen seconds. An explicit top-level duration must be three
        to fifteen seconds and equal the shot total. Omit it to use the shot
        total, including one- or two-second totals. Without multi_prompt,
        omitted duration defaults to five seconds. Billing uses the shot total
        when multi_prompt is provided.
      operationId: submit_kwaivgi_kling_v3_turbo_pro_image_to_video
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - input
              additionalProperties: true
              properties:
                model:
                  type: string
                  enum:
                    - kwaivgi/kling-v3-turbo-pro/image-to-video
                  example: kwaivgi/kling-v3-turbo-pro/image-to-video
                  description: >-
                    Vidgo public model ID. Must be
                    `kwaivgi/kling-v3-turbo-pro/image-to-video`.
                input:
                  type: object
                  properties:
                    prompt:
                      type: string
                      maxLength: 2500
                      minLength: 1
                      description: Prompt.
                    multi_prompt:
                      type: array
                      minItems: 1
                      maxItems: 6
                      items:
                        type: object
                        required:
                          - prompt
                        properties:
                          prompt:
                            type: string
                            maxLength: 2500
                            description: Prompt.
                          duration:
                            type: integer
                            minimum: 1
                            maximum: 15
                            default: 5
                            description: >-
                              Shot duration from 1 to 15 seconds; defaults to 5
                              when omitted.
                        additionalProperties: false
                        description: Multi prompt.
                      description: Multi prompt.
                    image_urls:
                      type: array
                      maxItems: 1
                      items:
                        type: string
                        format: uri
                        description: Image urls.
                      minItems: 1
                      description: Image urls.
                    duration:
                      type: integer
                      minimum: 3
                      maximum: 15
                      default: 5
                      description: >-
                        Explicit duration must be 3–15 seconds. With
                        multi_prompt it must equal the shot total. Omit duration
                        to use the shot total (1–15 seconds); without
                        multi_prompt the default is 5 seconds.
                    aspect_ratio:
                      type: string
                      description: >-
                        Ignored in image-to-video mode; the input images
                        determine the aspect ratio.
                  additionalProperties: false
                  required:
                    - image_urls
                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: kwaivgi/kling-v3-turbo-pro/image-to-video
                  input:
                    image_urls:
                      - https://example.com/image.png
                    duration: 5
              callback:
                summary: Receive a completion callback
                value:
                  model: kwaivgi/kling-v3-turbo-pro/image-to-video
                  input:
                    image_urls:
                      - https://example.com/image.png
                    duration: 5
                  callback_url: https://your-domain.com/callback
              multi_shot:
                summary: Two shots with omitted total duration (10 seconds)
                value:
                  model: kwaivgi/kling-v3-turbo-pro/image-to-video
                  input:
                    multi_prompt:
                      - prompt: A wide shot of a forest.
                        duration: 5
                      - prompt: The camera moves toward a sunlit tree.
                        duration: 5
                    image_urls:
                      - https://example.com/image.png
      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.

````