Documentation

U9 AI · DOCUMENTATION

Seedance 2.0 V2 video API

Create, track and download Seedance Mini or Fast V2 video tasks with the public API.

Download Markdown ↓

# Seedance 2.0 V2 video API

This is U9AI's current public contract for Seedance 2.0 Mini and Fast V2 video tasks. It uses a U9AI API key, never a provider key, browser cookie, or signed-in website session. V2 is asynchronous: a successful creation response means that a task was accepted, not that a video is ready.

Endpoints and authentication#

Use HTTPS and Authorization: Bearer $U9AI_API_KEY for every request. Start with model discovery to confirm that the key authenticates for this request. Actual model access still depends on the returned result.

OperationMethod and URL
List available modelsGET https://u9ai.ai/v1/models
Create a Mini taskPOST https://u9ai.ai/api/v2/open/aigc/seedance2-0-mini-oversea
Create a Fast taskPOST https://u9ai.ai/api/v2/open/aigc/seedance2-0-fast-oversea
Read one taskGET https://u9ai.ai/api/v2/open/aigc/{taskId}
Read tasks in batchPOST https://u9ai.ai/api/v2/open/aigc/batch
Read balance / request recordsGET https://u9ai.ai/api/v2/open/balance / GET https://u9ai.ai/api/v2/open/records

Do not mix an upstream V3 /api/v3/... path or its generate_audio field into this V2 request. The U9AI Seedance V2 audio field is camelCase: generateAudio.

Create a task#

content is an array and must include at least one type: "text" prompt. Mini and Fast support 480p and 720p; duration is 4–15 seconds. Common ratios are 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, and adaptive.

Use a complete server-readable HTTPS URL or a complete data:image/...;base64,... URI for reference material. Do not send a local path, private-network URL, or a URL that requires browser login. Image roles include first_frame, last_frame, and reference_image. Do not use one image as both first and last frame; for multiple reference images, explain their order in the prompt.

bash
curl --fail-with-body -sS "https://u9ai.ai/api/v2/open/aigc/seedance2-0-mini-oversea" \
  -H "Authorization: Bearer $U9AI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": [
      {"type":"text","text":"Use image 1 as reference and create a short video with natural camera movement."},
      {"type":"image_url","image_url":{"url":"https://example.com/your-authorized-image.jpg"},"role":"reference_image"}
    ],
    "ratio":"9:16",
    "duration":5,
    "resolution":"720p",
    "generateAudio":true
  }'

Replace mini in the path with fast to create a Fast task. Set generateAudio: false only for a silent result. Generated audio is not a guarantee of word-perfect narration, captions, or a particular soundtrack; review the final media.

Creation is accepted only when the HTTP response succeeds, no business error is present, and data.taskId is non-empty. Persist data.taskId, the U9AI X-Request-ID, and the time, without logging the API key. On timeout, 5xx, or no task ID, mark the submission as unknown and do not automatically create it again; use request records or support to determine whether a billable task exists.

Track, download, and handle errors#

bash
curl --fail-with-body -sS \
  -H "Authorization: Bearer $U9AI_API_KEY" \
  "https://u9ai.ai/api/v2/open/aigc/YOUR_TASK_ID"

Typical V2 states are processing, success, and failed. On success, read the result URLs from data.result; on failed, read data.errorMsg. Respect 429 and Retry-After, use one concurrent creation at first, and back off polling. Do not send the API key to a result-file domain. Verify HTTP status, a non-empty file, a playable video stream, and audio before exposing a download.

Creation consumes credit. Set per-task and total budgets first, then use U9AI request records and wallet entries as the final cost source. A successful GET /v1/models confirms only authentication and model discovery, not video completion.

Safe support handoff#

For troubleshooting, provide timestamp with timezone, model, HTTP status, X-Request-ID, CF-Ray when present, business error code, taskId, final status, and data.errorMsg. Never send an API key, Authorization header, cookie, private asset URL, source media, or payment data.

← Documentation