# vidu/vidu-q2/text-to-video > The latest Vidu Q2 models provide significantly improved quality and more refined control for your videos. ## Overview - **Endpoint**: `https://api.shortapi.ai/api/v1/job/create` - **Model ID**: `vidu/vidu-q2/text-to-video` - **Category**: text-to-video - **Kind**: inference ## Pricing The pricing for this model is as follows: 540p starts at $0.05 plus $0.01/sec, 720p starts at $0.75 plus $0.025/sec, and 1080p starts at $0.10 plus $0.05/sec. 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: - **`prompt`** (`string`, _required_): Text prompt - Examples: "An action shot of a black lab swimming..." - **`duration`** (`string`, _optional_): Video Length, unit: s (seconds) - Default: `5` - Range: `1` to `10` - **`aspect_ratio`** (`string`, _optional_): The aspect ratio of the generated video frame (width:height) - Default: `16:9` - Options: "16:9", "9:16", "4:3", "3:4", "1:1" - **`resolution`** (`string`, _optional_): Output video resolution - Default: `720p` - Options: "540p", "720p", "1080p" ### 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": "vidu/vidu-q2/text-to-video", "args": { "prompt": "Capture a serene moment of a small Corgi elegantly swimming in a sun-drenched swimming pool. An underwater perspective showcases the dog, its gentle smile illuminated by soft golden hour light, with light and shadow playing across the pool floor. The scene is rendered in soft pastel tones, enhancing the dreamy atmosphere. High-resolution photography captures the texture of the water and every detail of the Corgi's joyful expression, creating a simple yet cinematic image of tranquility and innocence. This minimalist yet evocative setting conveys a sense of peace and happiness, resulting in a serene and visually captivating cinematic scene." }, "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": "vidu/vidu-q2/text-to-video", "args": { "prompt": "Capture a serene moment of a small Corgi elegantly swimming in a sun-drenched swimming pool. An underwater perspective showcases the dog, its gentle smile illuminated by soft golden hour light, with light and shadow playing across the pool floor. The scene is rendered in soft pastel tones, enhancing the dreamy atmosphere. High-resolution photography captures the texture of the water and every detail of the Corgi's joyful expression, creating a simple yet cinematic image of tranquility and innocence. This minimalist yet evocative setting conveys a sense of peace and happiness, resulting in a serene and visually captivating cinematic scene." }, "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": "vidu/vidu-q2/text-to-video", "args": { "prompt": "Capture a serene moment of a small Corgi elegantly swimming in a sun-drenched swimming pool. An underwater perspective showcases the dog, its gentle smile illuminated by soft golden hour light, with light and shadow playing across the pool floor. The scene is rendered in soft pastel tones, enhancing the dreamy atmosphere. High-resolution photography captures the texture of the water and every detail of the Corgi's joyful expression, creating a simple yet cinematic image of tranquility and innocence. This minimalist yet evocative setting conveys a sense of peace and happiness, resulting in a serene and visually captivating cinematic scene." }, "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()) ```