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

# Kling V3 Motion Control

> Kling V3 Motion Control. **How it works** — one appearance reference (an image, or an element on the 3.0 version) plus one motion reference video: the character from the image performs the motion from the video.

⚠️ **There is no `duration` parameter, and this endpoint rejects one.** The output length follows your motion video. Before any tokens are deducted, GoEnhance transfers `video_url` to its own storage and measures the real duration — that measurement is what you are billed for, and it is also what enforces the length limits below. Because the file is measured and then sent onward from GoEnhance's storage, swapping the URL afterwards has no effect.

**Motion video requirements** — .mp4 / .mov, ≤100MB, 340–3850px, and:

| character_orientation | motion video length |
|---|---|
| `video` (default) | 3–30s |
| `image` | 3–10s |

⚠️ Kling bills on the **output** length, and the model only extracts usable continuous motion — so a difficult or very fast motion can produce a video shorter than the input. GoEnhance charges the measured input length, which is an upper bound.

⚠️ `audio` has no `native` option here: `generate_audio` keeps the **motion video's original sound**. It defaults to off, because that soundtrack is often copyrighted material you did not author.

**Pricing** — per second of generated video, in tokens (USD at $0.02/token). Same as the official rate:

| resolution | tokens/s | USD/s |
|---|---|---|
| 720p | 6.3 | $0.126 |
| 1080p | 8.4 | $0.168 |

For a cheaper option with the same parameters, see [`kling-v2-6-motion`](/api-reference/video-generations/kling-v2-6-motion) — it costs roughly a third less but has no element support.


Returns an `img_uuid`; poll GET /api/v1/jobs/detail (or use `custom_callback_url`) to get the generated video.



## OpenAPI

````yaml api-reference/video-generations/openapi-kling-v3-motion.json POST /api/v1/videos/generations
openapi: 3.1.0
info:
  title: GoEnhance API - Kling V3 Motion Control
  description: Kling V3 Motion Control with Kling.
  version: 1.0.0
servers:
  - url: https://api.goenhance.ai
security: []
paths:
  /api/v1/videos/generations:
    post:
      tags:
        - VideoGenerations
      summary: Kling V3 Motion Control
      description: >-
        Kling V3 Motion Control. **How it works** — one appearance reference (an
        image, or an element on the 3.0 version) plus one motion reference
        video: the character from the image performs the motion from the video.


        ⚠️ **There is no `duration` parameter, and this endpoint rejects one.**
        The output length follows your motion video. Before any tokens are
        deducted, GoEnhance transfers `video_url` to its own storage and
        measures the real duration — that measurement is what you are billed
        for, and it is also what enforces the length limits below. Because the
        file is measured and then sent onward from GoEnhance's storage, swapping
        the URL afterwards has no effect.


        **Motion video requirements** — .mp4 / .mov, ≤100MB, 340–3850px, and:


        | character_orientation | motion video length |

        |---|---|

        | `video` (default) | 3–30s |

        | `image` | 3–10s |


        ⚠️ Kling bills on the **output** length, and the model only extracts
        usable continuous motion — so a difficult or very fast motion can
        produce a video shorter than the input. GoEnhance charges the measured
        input length, which is an upper bound.


        ⚠️ `audio` has no `native` option here: `generate_audio` keeps the
        **motion video's original sound**. It defaults to off, because that
        soundtrack is often copyrighted material you did not author.


        **Pricing** — per second of generated video, in tokens (USD at
        $0.02/token). Same as the official rate:


        | resolution | tokens/s | USD/s |

        |---|---|---|

        | 720p | 6.3 | $0.126 |

        | 1080p | 8.4 | $0.168 |


        For a cheaper option with the same parameters, see
        [`kling-v2-6-motion`](/api-reference/video-generations/kling-v2-6-motion)
        — it costs roughly a third less but has no element support.



        Returns an `img_uuid`; poll GET /api/v1/jobs/detail (or use
        `custom_callback_url`) to get the generated video.
      parameters:
        - name: Authorization
          in: header
          description: ''
          required: false
          example: '{{Authorization}}'
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                model:
                  type: string
                  enum:
                    - kling-v3-motion
                  description: Model name. Must be `kling-v3-motion`.
                prompt:
                  type: string
                  maxLength: 2500
                  description: >-
                    Text prompt, e.g. what the character wears. Max 2500
                    characters.
                image_url:
                  type: string
                  format: uri
                  description: >-
                    Appearance reference image (.jpg / .jpeg / .png, ≤50MB,
                    ≥300px per side, aspect ratio between 1:2.5 and 2.5:1). The
                    character's upper or full body and head must be clearly
                    visible and unobstructed.
                video_url:
                  type: string
                  format: uri
                  description: >-
                    Motion reference video. Required. See the requirements
                    above.
                character_orientation:
                  type: string
                  enum:
                    - image
                    - video
                  default: video
                  description: >-
                    Whether the generated character faces as in the appearance
                    image or as in the motion video. Also caps how long the
                    motion video may be (30s vs 10s).
                resolution:
                  type: string
                  enum:
                    - 720p
                    - 1080p
                  default: 720p
                  description: >-
                    Output resolution. Motion control has no 4K tier. `quality`
                    is accepted as a compatible alias.
                generate_audio:
                  type: boolean
                  default: false
                  description: >-
                    Keep the motion video's original sound. There is no
                    generated-audio option on this endpoint.
                element_ids:
                  type: array
                  items:
                    type: string
                  maxItems: 1
                  description: >-
                    Optional. At most one element id from Kling's element
                    library, used as the appearance reference instead of (or
                    alongside) `image_url`. Forces `character_orientation:
                    video`. `element_id` is accepted for a single value.
                custom_callback_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. A publicly accessible HTTPS URL. When the task
                    status changes (processing / success / failed), GoEnhance
                    sends a POST request to this URL. The request body is
                    identical to the response of GET /api/v1/jobs/detail. If
                    your server does not respond with HTTP 200, the notification
                    is retried up to 3 times, with a 3-second timeout per
                    attempt.
                  example: https://your-server.com/goenhance/callback
              required:
                - model
                - prompt
                - image_url
                - video_url
            example:
              model: kling-v3-motion
              prompt: The girl is wearing a loose gray T-shirt and denim shorts
              image_url: https://example.com/character.png
              video_url: https://example.com/dance.mp4
              character_orientation: video
              resolution: 1080p
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                  data:
                    type: object
                    properties:
                      img_uuid:
                        type: string
                    required:
                      - img_uuid
                required:
                  - code
                  - msg
                  - data
              examples:
                '1':
                  summary: Success
                  value:
                    code: 0
                    msg: Success
                    data:
                      img_uuid: c12b656c-747a-44fd-9c80-add79b0c52d5
                '2':
                  summary: Insufficient tokens
                  value:
                    code: 100
                    msg: tokens is not enough
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                required:
                  - code
                  - msg
          headers: {}
      deprecated: false

````