# bytedance/seedance-2.0/text-to-video > Seedance 2.0 is a multimodal AI video model developed by ByteDance. With exceptional motion stability as its core strength, it empowers creators with full control over performance, lighting, and camera movements. It generates cinema-quality visuals that meet industry standards, delivering highly realistic immersive experiences while maintaining strong consistency across multi-shot storytelling and significantly improving overall production efficiency. ## Overview - **Endpoint**: `https://api.shortapi.ai/api/v1/job/create` - **Model ID**: `bytedance/seedance-2.0/text-to-video` - **Category**: text-to-video - **Kind**: inference ## Pricing Std: $0.24 per second, Fast: $0.20 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`, _optional_): Video generation mode - Default: `std` - Options: "std", "fast" - **`prompt`** (`string`, _required_): Text prompt - Examples: "An action shot of a black lab swimming..." - **`duration`** (`int`, _optional_): Video duration - Default: `5` - Range: `4` to `15` - **`aspect_ratio`** (`string`, _optional_): The aspect ratio of the generated video frame (width:height) - Default: `16:9` - Options: "21:9", "16:9", "9:16", "4:3", "1:1", "3:4" ### 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": "bytedance/seedance-2.0/text-to-video", "args": { "prompt": "Cinematic 15-second live-action short: A grounded 1950s rural American desert outskirts setting under harsh daylight; a giant insect creature attack unfolds with gritty realism. The camera maintains a low shoulder-height tracking shot, slowly drifting into a side profile to reveal the scale of the horror." }, "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": "bytedance/seedance-2.0/text-to-video", "args": { "prompt": "Cinematic 15-second live-action short: A grounded 1950s rural American desert outskirts setting under harsh daylight; a giant insect creature attack unfolds with gritty realism. The camera maintains a low shoulder-height tracking shot, slowly drifting into a side profile to reveal the scale of the horror." }, "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": "bytedance/seedance-2.0/text-to-video", "args": { "prompt": "Cinematic 15-second live-action short: A grounded 1950s rural American desert outskirts setting under harsh daylight; a giant insect creature attack unfolds with gritty realism. The camera maintains a low shoulder-height tracking shot, slowly drifting into a side profile to reveal the scale of the horror." }, "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()) ```