> ## 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 Pro Motion Control

> Transfer movement from a reference video to an image subject with Kling 3.0 Pro, with orientation control and 1080p output.

<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 Pro Motion Control

Transfer movement from a reference video to an image subject with Kling 3.0 Pro, with orientation control and 1080p output.

## Available Models

* **kwaivgi/kling-v3.0-pro/motion-control** - Transfer movement from a reference video to a character in a reference image.

## Duration Options

* **Image orientation** - The reference video must be **3-10 seconds** when `character_orientation` is `image`.
* **Video orientation** - The reference video must be **3-30 seconds** when `character_orientation` is `video`.
* The service inspects the reference video duration. Do not send `duration`.

## Key Features

* Transfer movement from a reference video to a character in a reference image.
* Output resolution is fixed to `1080p` for this model ID.
* Add one facial element when using video orientation.

## 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. `null`, empty, and whitespace-only values are treated as omitted.
* Nonempty prompts are trimmed and limited to **2,500 characters**.

### Image URLs

* `image_urls`: Required. Provide exactly 1 image URL.
* The image provides the target character for motion transfer.
* Images must be publicly accessible and directly downloadable.

### Source Video

* `video_urls`: Required. Provide an array containing exactly one publicly accessible source video URL.
* The video provides the movement to transfer. Its duration must match the orientation limits above.
* The source video must be directly downloadable over HTTP(S) and no larger than **100 MiB** for duration inspection.

### Character Orientation

* `character_orientation` is required: choose `image` or `video`.
* `image` allows reference videos from **3 to 10 seconds**.
* `video` allows reference videos from **3 to 30 seconds**.

### Facial Elements

* `kling_elements` is optional and accepts at most **one facial element**.
* Use it only when `character_orientation` is `video`.
* The element requires `frontal_image_url` and **1-3** `reference_image_urls`.

### Resolution

* `resolution`: `1080p`. Default: `1080p`.
* This model ID fixes the resolution. Omit the field to use its default; a resolution from the other tier is rejected.

## Pricing

Credits are calculated from the detected reference-video duration multiplied by this endpoint's rate, then rounded up to a whole credit.

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-0-pro-motion-control.json POST /api/generate/submit
openapi: 3.0.0
info:
  title: Vidgo API - Kling 3.0 Pro Motion Control
  description: >-
    Transfer movement from a reference video to an image subject with Kling 3.0
    Pro, with orientation control and 1080p output.
  version: 1.0.0
servers:
  - url: https://api.vidgo.ai
security:
  - BearerAuth: []
paths:
  /api/generate/submit:
    post:
      tags:
        - Video Series
      summary: Kling 3.0 Pro Motion Control
      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.


        This ID fixes `resolution` to `1080p`.


        Input video must be at least three seconds. The maximum is ten seconds
        with image orientation or thirty seconds with video orientation. Credits
        equal the detected duration multiplied by the endpoint rate, with the
        resulting credits rounded up to a whole number. Omit duration. Null,
        empty, and whitespace-only prompts are treated as omitted; nonempty
        prompts are trimmed and limited to 2,500 characters.


        At most one facial element is allowed, only with video orientation;
        provide a frontal image and one to three reference images.


        Media inspected for duration must be a publicly reachable HTTP(S) file
        of at most 100 MiB.
      operationId: submit_kwaivgi_kling_v3_0_pro_motion_control
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - input
              additionalProperties: true
              properties:
                model:
                  type: string
                  enum:
                    - kwaivgi/kling-v3.0-pro/motion-control
                  example: kwaivgi/kling-v3.0-pro/motion-control
                  description: >-
                    Vidgo public model ID. Must be
                    `kwaivgi/kling-v3.0-pro/motion-control`.
                input:
                  type: object
                  required:
                    - character_orientation
                    - image_urls
                    - video_urls
                  properties:
                    prompt:
                      type: string
                      maxLength: 2500
                      minLength: 0
                      nullable: true
                      description: >-
                        Optional. Null, empty, and whitespace-only prompts are
                        treated as omitted. Nonempty prompts are trimmed and
                        limited to 2,500 characters.
                    image_urls:
                      type: array
                      items:
                        type: string
                        format: uri
                        description: Image urls.
                      minItems: 1
                      maxItems: 1
                      description: Image urls.
                    video_urls:
                      type: array
                      items:
                        type: string
                        format: uri
                        description: Video urls.
                      minItems: 1
                      maxItems: 1
                      description: Video urls.
                    character_orientation:
                      type: string
                      enum:
                        - image
                        - video
                      description: Character orientation.
                    resolution:
                      type: string
                      enum:
                        - 1080p
                      default: 1080p
                      description: Output resolution
                    kling_elements:
                      type: array
                      maxItems: 1
                      items:
                        type: object
                        required:
                          - frontal_image_url
                          - reference_image_urls
                        properties:
                          frontal_image_url:
                            type: string
                            format: uri
                            description: Frontal image url.
                          reference_image_urls:
                            type: array
                            items:
                              type: string
                              format: uri
                              description: Reference image urls.
                            minItems: 1
                            maxItems: 3
                            description: Reference image urls.
                        additionalProperties: false
                        description: Kling elements.
                      description: Kling elements.
                  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: kwaivgi/kling-v3.0-pro/motion-control
                  input:
                    character_orientation: image
                    image_urls:
                      - https://example.com/image.png
                    video_urls:
                      - https://example.com/video.mp4
                    resolution: 1080p
              callback:
                summary: Receive a completion callback
                value:
                  model: kwaivgi/kling-v3.0-pro/motion-control
                  input:
                    character_orientation: image
                    image_urls:
                      - https://example.com/image.png
                    video_urls:
                      - https://example.com/video.mp4
                    resolution: 1080p
                  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.

````