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-v3",
    "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-v3",
  "status": "queued",
  "progress": 0,
  "created_at": 1768380224,
  "metadata": {}
}
  • Async processing mode, returns task ID for subsequent queries
  • Supports text-to-video and image-to-video (first frame / first-last frame control)
  • Supports standard mode (720P) and professional mode (1080P)
  • Text-to-video supports 15-second duration
Important Change: For better performance and cost control, we no longer support passing base64 image data directly in image_urls. Please use the Upload Image API first to upload images and get URLs, then call this endpoint.

Authorization

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

Request Parameters

model
string
required
Video generation model name, fixed as kling-v3
prompt
string
required
Text prompt describing the video contentDescribe scenes, actions, and styles in detail for better generation results. English prompts are recommended.Example: "A golden retriever running on a beach at sunset, cinematic quality"
mode
string
default:"std"
Generation modeOptions:
  • std - Standard mode (720P)
  • pro - Professional mode (1080P)
Default: std
duration
integer
default:"5"
Video duration (seconds)Options: 5, 10, or 15Default: 5
15-second duration is text-to-video only; image-to-video max is 10 seconds.
aspect_ratio
string
default:"16:9"
Video aspect ratioOptions:
  • 16:9 - Landscape (default)
  • 9:16 - Portrait
  • 1:1 - Square
Default: 16:9
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
Maximum 2 images supportedExample: ["https://example.com/first.jpg"]
  • Maximum 2 images supported
  • Image URLs must be publicly accessible, no hotlink protection
  • In image-to-video mode, aspect_ratio may be overridden by the actual image ratio
metadata
object
Extended parameters for Kling v3

Feature Support Matrix

TypeFeaturestd 5sstd 10sstd 15spro 5spro 10s
Text-to-VideoGeneration
Image-to-VideoGeneration-
Image-to-VideoFirst Frame-
Image-to-VideoLast Frame-
Note: 15-second duration is text-to-video only; image-to-video max is 10 seconds.

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
metadata
object
Task metadata

Use Cases

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

{
  "model": "kling-v3",
  "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-v3",
  "prompt": "Tokyo Shibuya crossing at night, neon lights reflected on wet ground, people walking with umbrellas",
  "metadata": {
    "negative_prompt": "blurry, low quality, distorted"
  },
  "mode": "pro",
  "duration": 10,
  "aspect_ratio": "16:9"
}

Case 3: Text-to-Video (15 seconds)

{
  "model": "kling-v3",
  "prompt": "Time-lapse of a flower blooming in a garden",
  "duration": 15,
  "aspect_ratio": "16:9"
}

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

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

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

{
  "model": "kling-v3",
  "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
}
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-v3",
    "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-v3",
  "status": "queued",
  "progress": 0,
  "created_at": 1768380224,
  "metadata": {}
}