Get API Key Get API
Docs

Kling Video O1 Video Generation

- Reasoning-enhanced model for highest quality video generation

  • Async processing mode, returns task ID for subsequent queries
  • Unified text-to-video/image-to-video interface with image reference syntax
  • Supports standard mode (720P) and professional mode (1080P)
  • Reference images in prompts using <<<image_N>>> syntax

Request example

curl --request POST \
  --url https://api.openveer.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "kling-video-o1",
    "prompt": "Make the person in <<<image_1>>> wave at the camera",
    "image_urls": ["https://upload.openveer.com/f/models/9998230426123070-e9d6af04-cb5e-4731-8ae7-abf144cb0d29-9998230586368386-29641169-f698-4ab9-9b6d-380899e6521e-9998230593110693-c1741a3a-.webp"],
    "mode": "std",
    "duration": 5,
    "aspect_ratio": "16:9"
  }'

Response example

{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_xxxxxxxxxx"
    }
  ]
}

Authorization

Authorization string

All API endpoints require Bearer Token authentication

Get your API Key:

Visit the API Key Management Page to get your API Key

Add it to the request header:

Authorization: Bearer YOUR_API_KEY

Request Parameters

model string

Video generation model name

Supported models:

  • kling-video-o1 - Kling Video O1 (reasoning-enhanced, highest quality)
nsfw_check boolean

Whether to run content moderation before submitting the video task.

  • true: use omni-moderation-latest to review prompts and input images
  • false or omitted: do not send a moderation request, adding no moderation cost or latency (default)
prompt string

Positive text prompt

The prompt must not exceed 2,500 characters.

Supports referencing images from image_urls using <<<image_N>>> syntax, where N starts from 1.

Example: "Make the person in <<<image_1>>> wave at the camera"

Note



If images are provided but the prompt does not contain any <<<image_N>>> reference, the system will automatically prepend <<<image_1>>> to the prompt.

mode string

Generation mode

Options:

  • std - Standard mode (720P)
  • pro - Professional mode (1080P)

Default: std

duration integer

Video duration (seconds)

Options: 5 or 10

Default: 5

aspect_ratio string

Video aspect ratio

Options:

  • 16:9 - Landscape
  • 9:16 - Portrait
  • 1:1 - Square

Default: 16:9

image_urls string

">
Image URL array for image referencing

Reference corresponding images in the prompt using <<<image_N>>> syntax (N starts from 1)

Example: ["https://example.png"]

Warning



* Image URLs must be publicly accessible without hotlink protection

* In image-to-video mode, aspect_ratio may be overridden by the actual image ratio

* Up to two images. The first item in the array is the start frame, and the second is the end frame

image_with_roles string

">
Role-based image array, recommended for image-to-video.

Each item format: { "url": "...", "role": "..." }

  • first_frame: first frame
  • last_frame: last frame
  • reference: reference image

Warning



- image_urls and image_with_roles are mutually exclusive, do not pass both.

- When more than 2 images are provided, setting start/end frames is not supported.

video_list array

Reference video list (URL-based), up to 1 video.

Use refer_type to distinguish types:

  • base: video to be edited (default)
  • feature: feature reference video

Use keep_original_sound to control whether to keep original audio:

  • no: do not keep (default)
  • yes: keep original sound

Request format:

"video_list":[
  { "video_url": "video_url", "refer_type": "base", "keep_original_sound": "no" }
]

Warning



* video_url cannot be empty, and the video URL must be accessible

* When refer_type=base:

* Start/end frames cannot be defined

* Reference video must be 3-10 seconds

* Generated video duration follows the uploaded video

* When refer_type=feature and video_url is not empty:

* image_urls can only include a first-frame image

* Video requirements: MP4/MOV only; duration at least 3 seconds; resolution 720px-2160px; frame rate 24-60fps (output is 24fps); size no more than 200MB

Image Reference Syntax

The Video O1 model uses <<<image_N>>> syntax to reference images in prompts, providing a unified text-to-video/image-to-video experience:

Syntax Description
<<<image_1>>> References the 1st image in the image_urls array
<<<image_2>>> References the 2nd image in the image_urls array
Note

Auto Reference: If image_urls is provided but the prompt does not contain any <<<image_N>>> reference, the system will automatically prepend <<<image_1>>> to the prompt.

Response

code integer

Response status code, 200 on success

data array
Response data array
status string

Task status, submitted when initially submitted

task_id string

Unique task identifier for querying task status and results

Use Cases

Case 1: Text-to-Video (Highest Quality)

{
  "model": "kling-video-o1",
  "prompt": "A cinematic shot of a city skyline at golden hour",
  "mode": "pro",
  "duration": 5,
  "aspect_ratio": "16:9"
}

Case 2: Image Reference (Single Image)

{
  "model": "kling-video-o1",
  "prompt": "Make the person in <<<image_1>>> wave at the camera",
  "image_urls": ["https://upload.openveer.com/f/models/9998230426123070-e9d6af04-cb5e-4731-8ae7-abf144cb0d29-9998230586368386-29641169-f698-4ab9-9b6d-380899e6521e-9998230593110693-c1741a3a-.webp"],
  "mode": "pro",
  "duration": 5
}

Case 3: Multiple Image References

{
  "model": "kling-video-o1",
  "prompt": "The character in <<<image_1>>> walks toward the scene in <<<image_2>>>",
  "image_urls": [
    "https://example.com/character.jpg",
    "https://example.com/scene.jpg"
  ],
  "mode": "pro",
  "duration": 5
}

Case 4: Image Provided Without Explicit Reference (Auto-added)

{
  "model": "kling-video-o1",
  "prompt": "The person slowly turns and smiles",
  "image_urls": ["https://upload.openveer.com/f/models/9998230426123070-e9d6af04-cb5e-4731-8ae7-abf144cb0d29-9998230586368386-29641169-f698-4ab9-9b6d-380899e6521e-9998230593110693-c1741a3a-.webp"],
  "mode": "std",
  "duration": 5
}

The system will automatically prepend <<<image_1>>> to the prompt, equivalent to "<<<image_1>>>The person slowly turns and smiles".

Note

Query Task Results

Video generation is an async task that returns a task_id upon submission. Use the Get Task Status endpoint to query generation progress and results.

This documentation is built and hosted on Mintlify, a developer documentation platform.