Skip to main content
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "kling-2-6",
    "prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
    "mode": "std",
    "duration": 5,
    "aspect_ratio": "16:9"
  }'
{
  "id": "video_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ",
  "object": "generation.task",
  "model": "kling-2-6",
  "status": "queued",
  "progress": 0,
  "created_at": 1768380224,
  "metadata": {}
}
  • Async processing mode, returns task ID for subsequent queries
  • Supports text-to-video, image-to-video (first frame / first-last frame control)
  • Supports standard mode (720P) and professional mode (1080P)
  • Professional mode supports automatic audio generation

Authorization

Authorization
string
required
All API endpoints require Bearer Token authenticationGet your API Key: Visit the API Key Management Page to get your API KeyAdd it to the request header:
Authorization: Bearer YOUR_API_KEY

Request Parameters

model
string
required
Video generation model name, fixed as kling-2-6
prompt
string
required
Text prompt, maximum 2500 charactersDescribe scenes, actions, and styles in detail for better generation resultsExample: "A golden cat running on a sunlit meadow, slow motion, cinematic quality"
mode
string
default:"std"
Generation modeOptions:
  • std - Standard mode (720P, silent video only)
  • pro - Professional mode (1080P, supports automatic audio generation)
Default: std
Standard mode limitation: std mode only supports silent video. The audio parameter requires pro mode.
duration
integer
default:"5"
Video duration (seconds)Options: 5 or 10Default: 5
aspect_ratio
string
default:"16:9"
Video aspect ratioOptions:
  • 16:9 - Landscape (default)
  • 9:16 - Portrait
  • 1:1 - Square
Default: 16:9
negative_prompt
string
Negative prompt to exclude unwanted contentExample: "blurry, low quality, distorted"
image_urls
string[]
Image URL array for image-to-video generation
  • Pass 1 image: used as first frame
  • Pass 2 images: automatically assigned as first frame + last frame (requires mode: "pro")
Maximum 2 images supportedExample: ["https://example.com/first.jpg"]
  • Maximum 2 images supported
  • Last frame (2 images) requires pro mode only; std mode only supports first frame (1 image)
  • Last frame and audio are mutually exclusive: In pro mode, last frame (2 images) and audio (audio: true) cannot be used together
  • In image-to-video mode, aspect_ratio may be overridden by the actual image ratio
audio
boolean
default:"false"
Whether to automatically generate audioDefault: false
  • Only available in mode: "pro"
  • Mutually exclusive with last frame: Audio cannot be used together with last frame (2 images)
watermark
boolean
Whether to add watermark

Pricing

Billed per second, price varies by mode and audio setting:
ModeResolutionAudioPrice
std720PNot supported$0.0368 / sec
pro1080POff$0.0625 / sec
pro1080POn$0.125 / sec
Example: pro mode, 10-second video without audio = 10 × 0.0625=0.0625 = 0.625

Feature Support Matrix

TypeFeaturestd 5sstd 10spro 5spro 10s
Text-to-VideoGeneration✅ (silent only)✅ (silent only)
Text-to-VideoAuto Audio--
Image-to-VideoGeneration✅ (silent only)✅ (silent only)
Image-to-VideoFirst Frame
Image-to-VideoLast Frame--
Image-to-VideoAuto Audio--
In pro mode, last frame and audio control are mutually exclusive and cannot be used together.

Response

id
string
Unique task identifier for querying task status
object
string
Object type, fixed as generation.task
model
string
Model name used for generation
status
string
Task status
  • queued - Waiting to be processed
  • in_progress - Processing
  • completed - Successfully completed
  • failed - Failed
progress
integer
Task progress percentage (0-100)
created_at
integer
Task creation Unix timestamp

Use Cases

Case 1: Text-to-Video (Standard Mode)

{
  "model": "kling-2-6",
  "prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
  "mode": "std",
  "duration": 5,
  "aspect_ratio": "16:9"
}

Case 2: Text-to-Video (Pro Mode + Negative Prompt)

{
  "model": "kling-2-6",
  "prompt": "Tokyo Shibuya crossing at night, neon lights reflected on wet ground, people walking with umbrellas",
  "negative_prompt": "blurry, low quality, distorted",
  "mode": "pro",
  "duration": 10,
  "aspect_ratio": "16:9"
}

Case 3: Image-to-Video (First Frame)

{
  "model": "kling-2-6",
  "prompt": "The person in the frame turns and smiles",
  "image_urls": ["https://example.com/portrait.jpg"],
  "mode": "std",
  "duration": 5
}

Case 4: Image-to-Video (First + Last Frame Control)

{
  "model": "kling-2-6",
  "prompt": "City timelapse transitioning from day to night",
  "image_urls": ["https://example.com/day-city.jpg", "https://example.com/night-city.jpg"],
  "mode": "pro",
  "duration": 5
}

Case 5: Pro Mode + Auto Audio

{
  "model": "kling-2-6",
  "prompt": "Waves crashing against rocks, seagulls circling in the sky, lighthouse in the distance",
  "mode": "pro",
  "duration": 10,
  "audio": true,
  "aspect_ratio": "16:9"
}
Query Task ResultsVideo generation is an async task that returns a task ID upon submission. Use the Get Task Status endpoint to query generation progress and results.
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "kling-2-6",
    "prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
    "mode": "std",
    "duration": 5,
    "aspect_ratio": "16:9"
  }'
{
  "id": "video_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ",
  "object": "generation.task",
  "model": "kling-2-6",
  "status": "queued",
  "progress": 0,
  "created_at": 1768380224,
  "metadata": {}
}