# kwaivgi/kling-o1/text-to-video > Kling Video O1 serves as kwaivgi's inaugural unified multi-modal video model. The system's Text-to-Video mode is designed to interpret text prompts and produce cinematic videos that feature realistic natural physics simulation, precise semantic understanding, and sustained subject consistency. ## Overview - **Endpoint**: `https://api.shortapi.ai/api/v1/job/create` - **Model ID**: `kwaivgi/kling-o1/text-to-video` - **Category**: text-to-video - **Kind**: inference ## Pricing The billing rate for Standard mode video is $0.075 per second, while Pro mode video is $0.1 per second. For more details, please check our pricing page. ## API Information This model can be used via our HTTP API or more conveniently via our client libraries. See the input and output schema below, as well as the usage examples. ### Input Schema The API accepts the following input parameters: - **`mode`** (`string`, _required_): Video generation mode - Default: `pro` - Options: "std", "pro" - **`prompt`** (`string`, _required_): Text prompts, include positive and negative descriptions - Examples: "An action shot of a black lab swimming..." - **`duration`** (`string`, _required_): Video Length, unit: s (seconds) - Default: `5` - Options: "5", "10" - **`aspect_ratio`** (`string`, _optional_): The aspect ratio of the generated video frame (width:height) - Default: `16:9` - Options: "16:9", "1:1", "9:16" ### Output Schema The API returns a JSON response with a `job_id` for tracking the request status. **Create Job Response:** ```json { "code": 0, "data": { "amount": "0.02", "job_id": "" } } ``` **Query Job Result (when status is 2, meaning succeeded):** ```json { "code": 0, "data": { "status": 2, "result": { "videos": [{ "url": "https://..." }] } } } ``` ## Use Example To use this model, make an HTTP POST request to the API endpoint, then poll for results using the returned `job_id`. ### Bash (cURL) ```bash # Step 1: Create a job response=$(curl --request POST \ --url https://api.shortapi.ai/api/v1/job/create \ --header "Authorization: Bearer $SHORTAPI_KEY" \ --header "Content-Type: application/json" \ --data '{ "model": "kwaivgi/kling-o1/text-to-video", "args": { "mode": "pro", "prompt": "The camera smoothly pans forward. A hand wearing black gloves is flipping through an ancient book. As the pages are turned faster, they gradually weather and disintegrate into fine golden sand. The sand quickly gathers and piles up on the table, reshaping into a magnificent miniature temple. Wisps of smoke rise above the temple. The scene has a cinematic quality, transitioning from macro to medium shot, full of magical elements, and featuring a high dynamic range.", "duration": "5" }, "callback_url": "CALLBACK_URL" }') JOB_ID=$(echo "$response" | grep -o '"job_id": *"[^"]*"' | sed 's/"job_id": *//; s/"//g') # Step 2: Poll for results curl --request GET \ --url "https://api.shortapi.ai/api/v1/job/query?id=$JOB_ID" \ --header "Authorization: Bearer $SHORTAPI_KEY" ``` ### JavaScript (Fetch API) ```javascript // Step 1: Create a job const response = await fetch(`https://api.shortapi.ai/api/v1/job/create`, { method: "POST", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ "model": "kwaivgi/kling-o1/text-to-video", "args": { "mode": "pro", "prompt": "The camera smoothly pans forward. A hand wearing black gloves is flipping through an ancient book. As the pages are turned faster, they gradually weather and disintegrate into fine golden sand. The sand quickly gathers and piles up on the table, reshaping into a magnificent miniature temple. Wisps of smoke rise above the temple. The scene has a cinematic quality, transitioning from macro to medium shot, full of magical elements, and featuring a high dynamic range.", "duration": "5" }, "callback_url": "CALLBACK_URL" }) }); const data = await response.json(); const JOB_ID = data.job_id; // Step 2: Poll for results const result = await fetch(`https://api.shortapi.ai/api/v1/job/query?id=${JOB_ID}`, { method: "GET", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}` } }); const resultData = await result.json(); console.log(resultData); ``` ### Python (Requests) ```python import requests # Step 1: Create a job url = "https://api.shortapi.ai/api/v1/job/create" payload = { "model": "kwaivgi/kling-o1/text-to-video", "args": { "mode": "pro", "prompt": "The camera smoothly pans forward. A hand wearing black gloves is flipping through an ancient book. As the pages are turned faster, they gradually weather and disintegrate into fine golden sand. The sand quickly gathers and piles up on the table, reshaping into a magnificent miniature temple. Wisps of smoke rise above the temple. The scene has a cinematic quality, transitioning from macro to medium shot, full of magical elements, and featuring a high dynamic range.", "duration": "5" }, "callback_url": "CALLBACK_URL" } headers = { "Authorization": f"Bearer {SHORTAPI_KEY}", "Content-Type": "application/json" } response = requests.post(url, headers=headers, json=payload) data = response.json() JOB_ID = data.get("job_id") # Step 2: Poll for results result_url = f"https://api.shortapi.ai/api/v1/job/query?id={JOB_ID}" result = requests.get(result_url, headers={"Authorization": f"Bearer {SHORTAPI_KEY}"}) print(result.json()) ```