Use RunComfy's API to run kling/kling-3.0/pro/text-to-video. For accepted inputs and outputs, see the model's schema.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/kling/kling-3.0/pro/text-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "Cinematic multi-shot of a young American couple celebrating their anniversary at a candlelit terrace dinner in Tuscany at golden hour. Wide establishing shot sweeps over rolling vineyard hills, cypress trees casting long shadows, then cuts to a slow dolly-in on a stone terrace where a woman in an ivory linen dress laughs softly while the man in a navy rolled-sleeve shirt pours red wine. Cut to a tender close-up: their hands interlace across the table, candlelight catching her diamond ring, his thumb gently brushing hers. Cut to a profile two-shot as he leans in and whispers; she smiles, eyes glistening, golden light rim-lighting her loose blonde hair. Final shot: a graceful crane pull-back revealing the terrace, the warm villa, and the sun melting into the Tuscan horizon. Distant church bells, light cricket ambience, soft acoustic guitar. Photoreal skin, fabric texture, wine ripples — shot on Arri Alexa 35, anamorphic lenses, shallow depth of field, premium cinematic color grade."
}'Set the YOUR_API_TOKEN environment variable with your API key (manage keys in your Profile) and include it on every request as a Bearer token via the Authorization header: Authorization: Bearer $YOUR_API_TOKEN.
Submit an asynchronous generation job and immediately receive a request_id plus URLs to check status, fetch results, and cancel.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/kling/kling-3.0/pro/text-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "Cinematic multi-shot of a young American couple celebrating their anniversary at a candlelit terrace dinner in Tuscany at golden hour. Wide establishing shot sweeps over rolling vineyard hills, cypress trees casting long shadows, then cuts to a slow dolly-in on a stone terrace where a woman in an ivory linen dress laughs softly while the man in a navy rolled-sleeve shirt pours red wine. Cut to a tender close-up: their hands interlace across the table, candlelight catching her diamond ring, his thumb gently brushing hers. Cut to a profile two-shot as he leans in and whispers; she smiles, eyes glistening, golden light rim-lighting her loose blonde hair. Final shot: a graceful crane pull-back revealing the terrace, the warm villa, and the sun melting into the Tuscan horizon. Distant church bells, light cricket ambience, soft acoustic guitar. Photoreal skin, fabric texture, wine ripples — shot on Arri Alexa 35, anamorphic lenses, shallow depth of field, premium cinematic color grade."
}'Fetch the current state for a request_id ("in_queue", "in_progress", "completed", or "cancelled").
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/status \
--header "Authorization: Bearer <token>"Retrieve the final outputs and metadata for the given request_id; if the job is not complete, the response returns the current state so you can continue polling.
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/result \
--header "Authorization: Bearer <token>"Cancel a queued job by request_id; in-progress jobs cannot be cancelled.
curl --request POST \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/cancel \
--header "Authorization: Bearer <token>"Provide a publicly reachable HTTPS URL. Ensure the host allows server-side fetches (no login/cookies required) and isn't rate-limited or blocking bots. Recommended limits: images ≤ 50 MB (~4K), videos ≤ 100 MB (~2–5 min @ 720p). Prefer stable or pre-signed URLs for private assets.
{
"type": "object",
"title": "Input schema",
"required": [
"prompt"
],
"properties": {
"prompt": {
"title": "Prompt",
"description": "Text description of the scene, motion, camera style, and atmosphere.",
"type": "string",
"default": "Cinematic multi-shot of a young American couple celebrating their anniversary at a candlelit terrace dinner in Tuscany at golden hour. Wide establishing shot sweeps over rolling vineyard hills, cypress trees casting long shadows, then cuts to a slow dolly-in on a stone terrace where a woman in an ivory linen dress laughs softly while the man in a navy rolled-sleeve shirt pours red wine. Cut to a tender close-up: their hands interlace across the table, candlelight catching her diamond ring, his thumb gently brushing hers. Cut to a profile two-shot as he leans in and whispers; she smiles, eyes glistening, golden light rim-lighting her loose blonde hair. Final shot: a graceful crane pull-back revealing the terrace, the warm villa, and the sun melting into the Tuscan horizon. Distant church bells, light cricket ambience, soft acoustic guitar. Photoreal skin, fabric texture, wine ripples — shot on Arri Alexa 35, anamorphic lenses, shallow depth of field, premium cinematic color grade."
},
"negative_prompt": {
"title": "Negative Prompt",
"description": "Elements to exclude from the video.",
"type": "string"
},
"duration": {
"title": "Duration",
"description": "Video length in seconds.",
"type": "integer",
"minimum": 3,
"maximum": 15,
"default": 5
},
"aspect_ratio": {
"title": "Aspect Ratio",
"description": "Output ratio of the generated video.",
"type": "string",
"enum": [
"16:9",
"9:16",
"1:1"
],
"default": "16:9"
},
"cfg_scale": {
"title": "CFG Scale",
"description": "Prompt guidance strength.",
"type": "float",
"minimum": 0,
"maximum": 1,
"default": 0.5
},
"sound": {
"title": "Sound",
"description": "Generate synchronized sound alongside the video.",
"type": "boolean",
"default": true
},
"multi_prompt": {
"title": "Multi Prompt",
"description": "Additional prompt segments to guide scene transitions and progressions. The sum of durations in multi_prompt must equal to total video duration",
"type": "array",
"items": {
"prompt": {
"title": "Prompt",
"description": "Additional prompt segments to guide scene transitions and progressions.",
"type": "string",
"format": "str"
},
"duration": {
"title": "Duration",
"description": "Duration of the prompt segment in seconds.",
"type": "integer",
"format": "int_slider_with_range",
"minimum": 3,
"maximum": 15,
"default": 5
}
},
"maxItems": 20,
"minItems": 0
},
"shot_type": {
"title": "Shot Type",
"description": "Editing mode: intelligent (default, auto-determines scope) or customize.",
"type": "string",
"enum": [
"customize"
],
"default": "customize"
}
}
}{
"output": {
"type": "object",
"properties": {
"image": {
"type": "string",
"format": "uri",
"description": "single image URL"
},
"video": {
"type": "string",
"format": "uri",
"description": "single video URL"
},
"images": {
"type": "array",
"description": "multiple image URLs",
"items": {
"type": "string",
"format": "uri"
}
},
"videos": {
"type": "array",
"description": "multiple video URLs",
"items": {
"type": "string",
"format": "uri"
}
}
}
}
}RunComfy is the premier ComfyUI platform, offering ComfyUI online environment and services, along with ComfyUI workflows featuring stunning visuals. RunComfy also provides AI Models, enabling artists to harness the latest AI tools to create incredible art.