SeeDance 1.5 Pro
ByteDance SeeDance 1.5 Pro – 5/10/12 s clips at 720p or 1080p. Six aspect ratios, first-and-last-frame interpolation.
All model documentation
Videobytedance/seedance-1.5-pro
Endpoint
text
POST https://api.zekron.tech/api/v1/tasksSupported modes
text-to-videofirst-last-frame
Input parameters
Pass the following fields inside input, alongside the top-level model field. Supported fields come from the same live catalog as the Models page.
promptrequiredmodeoptionalaspect_ratiooptionaldurationoptionalresolutionoptionalimage_urloptionalend_image_urloptionalseedoptionalExample request
bash
curl -X POST https://api.zekron.tech/api/v1/tasks \
-H "Authorization: Bearer sk-zekron-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-1.5-pro",
"input": {
"prompt": "A cinematic lighthouse at golden hour"
}
}'Completed task response (illustrative)
json
{
"id": "00000000-0000-4000-8000-000000000001",
"model": "bytedance/seedance-1.5-pro",
"status": "success",
"output": {
"url": "https://your-app.com/generated-output.mp4"
},
"error_message": null,
"completed_at": "2026-10-26T12:00:00Z"
}Polling and outputs
The create request returns HTTP 202 and a top-level id with status processing. Poll GET /tasks/{id} using this local id, not an upstream identifier, until status is success or failed. Read generated files from output. Output structure depends on the model; URLs in examples are illustrative.
javascript
const headers = { Authorization: "Bearer sk-zekron-YOUR_KEY", "Content-Type": "application/json" }
const response = await fetch("https://api.zekron.tech/api/v1/tasks", { method: "POST", headers, body: JSON.stringify({
"model": "bytedance/seedance-1.5-pro",
"input": {
"prompt": "A cinematic lighthouse at golden hour"
}
}) })
if (!response.ok) throw new Error(await response.text())
let task = await response.json()
const id = task.id
for (let attempt = 0; ["pending", "queued", "processing"].includes(task.status); attempt++) {
if (attempt >= 150) throw new Error("Polling timed out; keep the task id and retry later")
await new Promise(resolve => setTimeout(resolve, 2000))
const poll = await fetch(`https://api.zekron.tech/api/v1/tasks/${id}`, { headers })
if (!poll.ok) throw new Error(await poll.text())
task = await poll.json()
}
if (task.status !== "success") throw new Error(task.error_message ?? "Generation failed")
console.log(task.output)Failed tasks release their reserved balance once. Outputs are retained for 30 days.
View current pricing on Models