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

# Kling 2.6 Motion Control

> Kling 2.6 Motion Control transfers motion and timing from a reference video to a character or subject in a reference image, with optional preservation of the...



## OpenAPI

````yaml api-reference/openapi/kling--kling-2-6-motion-control.yaml POST /v1/videos/generations
openapi: 3.1.0
info:
  title: Kling 2.6 Motion Control API
  version: 1.0.0
  description: >-
    Kling 2.6 Motion Control transfers motion and timing from a reference video
    to a character or subject in a reference image, with optional preservation
    of the reference video's audio. In APIPod, the public model ID is
    kling-2.6-motion-control. It supports text-to-video, image-to-video and
    video-to-video, accepts text, image and video inputs, and returns results
    through asynchronous video tasks.
servers:
  - url: https://api.apipod.ai
    description: Production
security: []
paths:
  /v1/videos/generations:
    post:
      tags:
        - Kling 2.6 Motion Control
      summary: Create Generation Task
      description: >-
        Kling 2.6 Motion Control transfers motion and timing from a reference
        video to a character or subject in a reference image, with optional
        preservation of the reference video's audio. In APIPod, the public model
        ID is kling-2.6-motion-control. It supports text-to-video,
        image-to-video and video-to-video, accepts text, image and video inputs,
        and returns results through asynchronous video tasks.
      operationId: create-kling-kling-2-6-motion-control
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              title: Kling 2.6 Motion Control
              properties:
                model:
                  type: string
                  title: Model ID
                  description: Public APIPod model ID.
                  const: kling-2.6-motion-control
                prompt:
                  type: string
                  title: Prompt
                  description: 'A text description of the desired output. '
                  maxLength: 2500
                image_url:
                  type: string
                  title: Reference image
                  description: >-
                    Reference image. The characters, backgrounds, and other
                    elements in the generated video are based on the reference
                    image. Supports .jpg/.jpeg/.png, max 10MB, size needs to be
                    greater than 300px, aspect ratio 2:5 to 5:2.
                  default: ''
                video_url:
                  type: string
                  title: Reference video
                  description: >-
                    Reference video. The character actions in the generated
                    video are consistent with the reference video. Supports
                    .mp4/.mov, max 100MB, 3-30 seconds duration depending on
                    character_orientation.
                  default: ''
                character_orientation:
                  type: string
                  title: Character Orientation
                  description: >-
                    Generate the orientation of the characters in the video.
                    'image': same orientation as the person in the picture (max
                    10s video). 'video': consistent with the orientation of the
                    characters in the video (max 30s video).
                  enum:
                    - image
                    - video
                  default: image
                keep_original_sound:
                  type: boolean
                  title: Keep Original Sound
                  description: Whether to keep the original audio of the video.
                  default: true
                quality:
                  type: string
                  title: Video Quallity
                  description: Quality of generating videos.
                  enum:
                    - std
                    - pro
                  default: std
              required:
                - model
                - prompt
                - image_url
                - video_url
            example:
              model: kling-2.6-motion-control
              prompt: >-
                A cinematic tracking shot through a rain-soaked neon street,
                realistic motion, synchronized ambient sound.
              image_url: https://cdn.example.com/reference.jpg
              video_url: https://cdn.example.com/source.mp4
              quality: std
      responses:
        '200':
          description: Task accepted
          content:
            application/json:
              schema:
                type: object
                title: Task Submit Response
                description: Standard response for task submission
                properties:
                  code:
                    type: integer
                  data:
                    type: object
                    title: Task Submit Data
                    description: Data content for task submission
                    properties:
                      task_id:
                        type: string
                        description: generatation task id
                  message:
                    type: string
                required:
                  - code
                  - message
                  - data
              example:
                code: 200
                message: success
                data:
                  task_id: vid_task_01JEXAMPLE
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl https://api.apipod.ai/v1/videos/generations \
              -H "Authorization: Bearer $APIPOD_API_KEY" \
              -H "Content-Type: application/json" \
              -d '{
              "model": "kling-2.6-motion-control",
              "prompt": "A cinematic tracking shot through a rain-soaked neon street, realistic motion, synchronized ambient sound.",
              "image_url": "https://cdn.example.com/reference.jpg",
              "video_url": "https://cdn.example.com/source.mp4",
              "quality": "std"
            }'
        - lang: Python
          label: Python
          source: |-
            import os
            import requests

            payload = {
              "model": "kling-2.6-motion-control",
              "prompt": "A cinematic tracking shot through a rain-soaked neon street, realistic motion, synchronized ambient sound.",
              "image_url": "https://cdn.example.com/reference.jpg",
              "video_url": "https://cdn.example.com/source.mp4",
              "quality": "std"
            }

            response = requests.post(
                "https://api.apipod.ai/v1/videos/generations",
                headers={
                    "Authorization": f"Bearer {os.environ['APIPOD_API_KEY']}",
                    "Content-Type": "application/json",
                },
                json=payload,
                timeout=60,
            )
            response.raise_for_status()
            print(response.json())
        - lang: Go
          label: Go
          source: |-
            package main

            import (
                "bytes"
                "encoding/json"
                "fmt"
                "net/http"
                "os"
            )

            func main() {
                payload := map[string]any{}
                if err := json.Unmarshal([]byte(`{
              "model": "kling-2.6-motion-control",
              "prompt": "A cinematic tracking shot through a rain-soaked neon street, realistic motion, synchronized ambient sound.",
              "image_url": "https://cdn.example.com/reference.jpg",
              "video_url": "https://cdn.example.com/source.mp4",
              "quality": "std"
            }`), &payload); err != nil {
                    panic(err)
                }
                body, err := json.Marshal(payload)
                if err != nil {
                    panic(err)
                }

                req, err := http.NewRequest(http.MethodPost, "https://api.apipod.ai/v1/videos/generations", bytes.NewReader(body))
                if err != nil {
                    panic(err)
                }
                req.Header.Set("Authorization", "Bearer "+os.Getenv("APIPOD_API_KEY"))
                req.Header.Set("Content-Type", "application/json")

                resp, err := http.DefaultClient.Do(req)
                if err != nil {
                    panic(err)
                }
                defer resp.Body.Close()
                fmt.Println(resp.Status)
            }
        - lang: Rust
          label: Rust
          source: |-
            use reqwest::Client;
            use serde_json::json;
            use std::env;

            #[tokio::main]
            async fn main() -> Result<(), Box<dyn std::error::Error>> {
                let payload = json!({
              "model": "kling-2.6-motion-control",
              "prompt": "A cinematic tracking shot through a rain-soaked neon street, realistic motion, synchronized ambient sound.",
              "image_url": "https://cdn.example.com/reference.jpg",
              "video_url": "https://cdn.example.com/source.mp4",
              "quality": "std"
            });
                let response = Client::new()
                    .post("https://api.apipod.ai/v1/videos/generations")
                    .bearer_auth(env::var("APIPOD_API_KEY")?)
                    .json(&payload)
                    .send()
                    .await?
                    .error_for_status()?;

                println!("{}", response.text().await?);
                Ok(())
            }
        - lang: JavaScript
          label: JavaScript
          source: >-
            const response = await
            fetch("https://api.apipod.ai/v1/videos/generations", {
              method: "POST",
              headers: {
                Authorization: `Bearer ${process.env.APIPOD_API_KEY}`,
                "Content-Type": "application/json",
              },
              body: JSON.stringify(
              {
                "model": "kling-2.6-motion-control",
                "prompt": "A cinematic tracking shot through a rain-soaked neon street, realistic motion, synchronized ambient sound.",
                "image_url": "https://cdn.example.com/reference.jpg",
                "video_url": "https://cdn.example.com/source.mp4",
                "quality": "std"
              }
              ),
            });


            if (!response.ok) {
              throw new Error(`APIPod request failed: ${response.status} ${await response.text()}`);
            }


            console.log(await response.json());
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: APIPod API key
      description: Use your APIPod API key as a Bearer token in the Authorization header.

````