# Kling V3 T2V 4K — API Reference Model ID: `model_kling-v3-t2v-4k` --- ## Authentication - **API_KEY** and **API_SECRET** are found in your [Scenario Project Settings](https://app.scenario.com/team&tab=project_api_keys) under API Keys. - Set them as environment variables `SCENARIO_SDK_API_KEY` and `SCENARIO_SDK_API_SECRET` — both SDKs pick them up by default. - For raw HTTP (cURL), use Basic Auth: `Authorization: Basic base64(":")`. ### Install the SDK - JavaScript / TypeScript: `npm install @scenario-labs/sdk` - Python: `pip install scenario-sdk` --- ## Generate **Endpoint:** `POST https://api.cloud.scenario.com/v1/generate/custom/model_kling-v3-t2v-4k` ### Parameters | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `prompt` | string | - | - | Text prompt for video generation. Either Prompt or Multi Prompt must be provided, but not both. | | `multiPrompt` | object[] | - | - | Multi-shot prompts with per-shot durations. If provided, overrides the single prompt. | | `duration` | string | - | `5` | The duration of the generated video in seconds. | | `generateAudio` | boolean | - | `true` | Whether to generate native audio for the video. Supports Chinese and English voice output. Other languages are automatically translated to English. Billing is per second of video regardless of this setting. | | `shotType` | string | - | `customize` | The type of multi-shot video generation. | | `aspectRatio` | string | - | `16:9` | Aspect ratio of the video. | | `cfgScale` | number | - | `0.5` | Higher values follow the prompt more closely, lower values are more creative. | | `negativePrompt` | string | - | - | Negative prompt used to guide the model away from undesirable features. | ### Example Requests **cURL** ```bash curl -X POST "https://api.cloud.scenario.com/v1/generate/custom/model_kling-v3-t2v-4k" \ -H "Authorization: Basic $(echo -n ':' | base64)" \ -H "Content-Type: application/json" \ --data-binary @- <<'EOF' { "duration": "5", "generateAudio": true, "shotType": "customize", "aspectRatio": "16:9", "cfgScale": 0.5 } EOF ``` **Python** ```python import os from scenario_sdk import Scenario client = Scenario( api_key=os.environ.get("SCENARIO_SDK_API_KEY"), api_secret=os.environ.get("SCENARIO_SDK_API_SECRET"), ) body = { "duration": "5", "generateAudio": True, "shotType": "customize", "aspectRatio": "16:9", "cfgScale": 0.5 } response = client.generate.run_model( model_id="model_kling-v3-t2v-4k", body=body, ) print(response) ``` **JavaScript** ```javascript import Scenario from "@scenario-labs/sdk"; const client = new Scenario({ apiKey: process.env["SCENARIO_SDK_API_KEY"], apiSecret: process.env["SCENARIO_SDK_API_SECRET"], }); const body = { "duration": "5", "generateAudio": true, "shotType": "customize", "aspectRatio": "16:9", "cfgScale": 0.5 }; const response = await client.generate.runModel("model_kling-v3-t2v-4k", { body }); console.info(response); ``` --- ## Retrieve Results After submitting a generation request, you receive a `jobId`. Poll the job until `job.status` is `"success"`. The generated asset IDs are in `job.metadata.assetIds`. **Endpoint:** `GET https://api.cloud.scenario.com/v1/jobs/{jobId}` ### Example Requests **cURL** ```bash curl -X GET "https://api.cloud.scenario.com/v1/jobs/" \ -H "Authorization: Basic $(echo -n ':' | base64)" ``` **Python** ```python job = client.jobs.retrieve(job_id="") print(job.status) print(job.metadata.asset_ids) ``` **JavaScript** ```javascript // Option 1 — wait on the response from runModel using the SDK helper const completed = await response.job.wait(); console.info(completed.status); console.info(completed.metadata?.assetIds); // Option 2 — retrieve a job by its ID const job = await client.jobs.retrieve(""); console.info(job.status); console.info(job.metadata?.assetIds); ``` **Example response:** ```json { "job": { "jobId": "job_abc123", "status": "success", "metadata": { "assetIds": [ "asset_abc123" ] } } } ``` > **Important:** Generated asset URLs are **temporary** and expire after a short period. Download and store any images you wish to keep before the URL expires. More info: [Content Delivery Network (CDN)](https://docs.scenario.com/get-started/documentation/content-delivery-network-cdn). --- *Generated by [Scenario](https://app.scenario.com)*