Generate video from reference images, videos, named subjects and voice samples with Kling 4.0. Submit an asynchronous generation, then query its status to retrieve the finished video.
Developer API pricing
Provider: SeeAPI
USD estimate: $0.0037 / credit · Estimated equivalent, not an additional charge.
720p: 38.1 credits/sec (≈ $0.14/sec, no video) | 22.7 credits/sec (≈ $0.085/sec, with video)
1080p: 56.8 credits/sec (≈ $0.21/sec, no video) | 34.1 credits/sec (≈ $0.13/sec, with video)
Note: Without input video: no-video unit price × output duration. With input video: with-video unit price × [output duration + max(total input video duration, output duration)]. If the input is shorter than the output, billable duration is twice the output duration; otherwise, it is input plus output duration. Total input video duration includes reference videos and subject videos.
/v1/generationsA unique identifier for this generation request, used to make retries safe.
order-20260818-001Selects the Kling 4.0 model.
kling-4-0kling-4-0kling-4-0Selects generation guided by reference media, named subjects or voices.
reference-to-videoreference-to-videoreference-to-videoSelects a public provider for this endpoint.
seeapiseeapiseeapiContains the generation prompt, output settings and reference media.
Provider parameters
seeapiDefault ProviderImages that guide the visual appearance, composition or scene. Refer to them in the prompt as @image_1, @image_2 and so on, following array order.
Videos that guide motion or scene content. Refer to them as @video_1, @video_2 and so on, following array order.
Named subjects that preserve the identity of a person, animal, object or other visual element. Reference a subject in the prompt with @ followed by its name.
[{"name":"subject_1","image_urls":["https://client.example.com/front.png","https://client.example.com/side.png"]}]The name used to refer to this subject in the prompt, for example @hero.
subject_1Multiple views of the same subject; the first image is the primary view.
["https://client.example.com/front.png","https://client.example.com/side.png"]A continuous single-shot video of a character to use as the named subject.
Describes the subject category to help interpret the supplied visual material.
characteranimalpropcostumesceneeffectothersA short description that clarifies the subject and its distinguishing traits.
A speech sample that binds a voice to this character.
Named speech samples that can be referenced independently in the prompt.
[{"name":"voice_1","audio_url":"https://client.example.com/voice.wav"}]The name used to reference this voice in the prompt, for example @narrator.
voice_1An HTTPS URL to the speech sample for this voice.
https://client.example.com/voice.wavControls whether to preserve original sound from ordinary reference videos.
falseDescribe the scene, action, camera movement and any dialogue. Use @ references to identify the supplied media, subjects and voices.
@subject_1 walks through a sunlit garden, turns toward the camera and smiles. Smooth tracking shot, natural movement.The requested output video length, in seconds.
5The output video resolution.
720p1080p720pThe output video aspect ratio.
auto16:99:161:121:9autoYour HTTPS endpoint for receiving the terminal generation webhook.
https://client.example.com/webhooks/seeapiThe accepted generation and its current processing status.
The generation identifier. Save it to query status and retrieve the result.
task_xxxThe model used for this generation.
kling-4-0The endpoint used for this generation.
reference-to-videoThe selected public provider.
seeapiseeapi: SeeAPIseeapiThe current generation state. Processing does not mean the video is ready.
processingprocessingThe estimated charge in public credits for this request.
190.5Credits consumed by this generation so far.
0Credits refunded for this generation so far.
0The time the generation was created, in ISO 8601 format.
2026-08-18T10:00:00ZThe time the generation was last updated, in ISO 8601 format.
2026-08-18T10:00:00ZWhether this is a replay of an earlier request with the same idempotency key.
falseThe accepted generation and its current processing status.
The generation identifier. Save it to query status and retrieve the result.
task_xxxThe model used for this generation.
kling-4-0The endpoint used for this generation.
reference-to-videoThe selected public provider.
seeapiseeapi: SeeAPIseeapiThe current generation state. Processing does not mean the video is ready.
processingprocessingThe estimated charge in public credits for this request.
190.5Credits consumed by this generation so far.
0Credits refunded for this generation so far.
0The time the generation was created, in ISO 8601 format.
2026-08-18T10:00:00ZThe time the generation was last updated, in ISO 8601 format.
2026-08-18T10:00:00ZWhether this is a replay of an earlier request with the same idempotency key.
falseInvalid JSON, parameters, Schema, or API Policy
Invalid API Key or authentication failed
Insufficient credits
The current request is not allowed
Model, Endpoint, or task not found
Idempotency conflict or the same request is still being created
Request body is too large
Too many requests
Service temporarily unavailable
After submitting a task, use the unified query endpoint to check progress and retrieve results:
Submit requests from your server using a Bearer API key. Store the generation identifier and use Get Task Details to check progress and retrieve the result. Acceptance does not mean the video is complete.
Manage the secret used to verify generation webhook signatures. Callback URLs are supplied when you create each generation.
Callback URL per generation.
const response = await fetch("https://api.seeapi.com/v1/generations", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Idempotency-Key": "order-20260818-001",
"Content-Type": "application/json"
},
body: JSON.stringify({
"model": "kling-4-0",
"endpoint": "reference-to-video",
"provider": "seeapi",
"input": {
"elements": [
{
"name": "subject_1",
"image_urls": [
"https://client.example.com/front.png",
"https://client.example.com/side.png"
],
"tag": "character"
}
],
"voices": [
{
"name": "voice_1",
"audio_url": "https://client.example.com/voice.wav"
}
],
"keep_original_sound": false,
"prompt": "@subject_1 walks through a sunlit garden, turns toward the camera and smiles. Smooth tracking shot, natural movement.",
"duration_seconds": 5,
"resolution": "720p",
"aspect_ratio": "auto"
},
"callback_url": "https://client.example.com/webhooks/seeapi"
})
});
const result = await response.json();{
"generation": {
"id": "task_xxx",
"model": "kling-4-0",
"endpoint": "reference-to-video",
"provider": "seeapi",
"status": "processing",
"estimated_credits": 190.5,
"consumed_credits": 0,
"refunded_credits": 0,
"created_at": "2026-08-18T10:00:00Z",
"updated_at": "2026-08-18T10:00:00Z"
},
"idempotent": false
}