DEVELOPER DOCUMENTATION
A direct path from prompt to video.
These examples call SeedanceLink. Use your own API key; your Google sign-in session is for the web console.
Before you start
Sign in, add enough balance for the quote, and create a key in a Seedance-enabled group. The smallest example below requests 4 seconds at 480p.
Authentication
Send Authorization: Bearer YOUR_API_KEY on create, status, and content requests. Use the same key that created the task. Never place your key in a URL.
Authorization: Bearer YOUR_API_KEYhttps://seedancelink.ioIf omitted, duration is 5 seconds and resolution is 720p. These examples explicitly select 4 seconds and 480p. Send application/json and use one of the two model IDs shown on the models page.
Run these curl examples in the same macOS/Linux terminal, or in Windows WSL. The first example sets your key and this site’s API address. Keep your key private.
Create a task
This example requests a 4-second video. Save the id returned by the API. Seedance 2.0 supports 4–15 seconds; Seedance 2.5 supports 4–30 seconds. Both support 480p, 720p and 1080p.
API_KEY='YOUR_API_KEY'
API_BASE='https://seedancelink.io'
curl --fail-with-body --request POST "$API_BASE/api/v3/contents/generations/tasks" \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "seedance-2.0-933",
"content": [
{
"type": "text",
"text": "A small boat sailing across a calm lake at sunrise, cinematic lighting."
}
],
"duration": 4,
"resolution": "480p",
"ratio": "16:9"
}'Example response
{
"id": "YOUR_TASK_ID",
"status": "queued"
}Save the task ID from the response; use it in the next two steps.
Check its status
Replace REPLACE_WITH_RESPONSE_ID with that id. Check every 15 seconds while queued or running. Download when status is succeeded. If status is failed or needs_reconcile, stop polling and contact support for needs_reconcile; do not automatically submit again.
Example response
{
"id": "YOUR_TASK_ID",
"status": "succeeded"
}Check about every 15 seconds. Download only after succeeded.
Download the video
Use the same key that created the task. This protected endpoint requires your Bearer key; opening its URL in a browser alone is insufficient. curl follows HTTPS download redirects without sharing the key with other hosts.
Task states & billing
queued- Accepted and waiting.
running- Generation is in progress.
succeeded- Completed; the authenticated content endpoint is ready.
failed- Generation failed; the reservation was refunded.
needs_reconcile- Submission is uncertain; the reservation is retained for review.
Quoted before generation.
Requested seconds × resolution rate × your applicable multiplier. The quote is reserved on submission, charged on success, and returned on failure.
Download with the same key
After succeeded, use content.video_url or the content endpoint below with your API key. A zero remaining balance does not prevent downloading an already-paid task.
If submission is uncertain
A 202 receipt with needs_reconcile still has a local task ID. Keep that ID and check it. Do not automatically create another task: the original reservation remains held.