Documentation Index
Fetch the complete documentation index at: https://apixo.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Seedance 2.0 is a ByteDance video generation model for prompt-only video, first-and-last-frame animation, and multimodal reference workflows. Use this page when you are ready to call the API after trying the model in the APIXO playground.| Capability | Value |
|---|---|
| Model ID | seedance-2-0 |
| Modes | text-to-video, first_and_last_frames, omni_reference |
| Prompt | Required non-empty string |
| Resolutions | 480p, 720p, 1080p |
| Durations | Any integer from 4 through 15 seconds |
| Aspect ratios | auto, 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 |
| Reference images | 1-2 URLs for first_and_last_frames; 1-9 URLs for omni_reference |
| Reference video/audio | 1-3 URLs each for omni_reference; each file 2-15 seconds, total max 15 seconds per media type |
| Output | MP4 video URL array in resultJson.resultUrls |
Endpoint and authentication
Base URL:| Method | Endpoint | Purpose |
|---|---|---|
POST | /generateTask/seedance-2-0 | Submit a generation task |
GET | /statusTask/seedance-2-0?taskId={taskId} | Poll task status and retrieve results |
Copy-paste async quickstart
This minimal request submits a text-to-video task and returns ataskId.
taskId; you need it to poll for the final result.
Poll for result
resultJson after state becomes success:
Request body
Text-to-video
First-and-last-frames
Omni-reference
Parameters
Result delivery mode. Omit this field or use
async for polling with statusTask, or use callback for webhook delivery.Required when
request_type is callback. Must be a public HTTPS URL that can receive the final task payload. See Webhooks.Seedance 2.0 input parameters.
| Mode | Required media | Optional media | Billing note |
|---|---|---|---|
text-to-video | None | None | Uses the no-video-reference rate. |
first_and_last_frames | image_urls with 1-2 images | None | Uses the no-video-reference rate. |
omni_reference | None by validation, unless audio_urls is supplied | image_urls, video_urls, audio_urls | Uses video-reference billing when video_urls is provided. |
Response format
Submit task response
POST /generateTask/seedance-2-0 returns a task ID when the task is accepted:
API status code.
200 means the task was accepted.Human-readable status message.
Unique task identifier used with the status endpoint.
Status response fields
Unique task identifier.
Current task state:
pending, processing, success, or failed.JSON string containing generated video URLs in
resultUrls. Present when state is success.Machine-readable failure code. Present when
state is failed.Human-readable failure message. Present when
state is failed.Task creation timestamp in Unix milliseconds.
Task completion timestamp in Unix milliseconds. Present after completion.
Processing duration in milliseconds. Present after completion when timing data is available.
Webhook callback mode
Use callback mode when your backend should receive the final result automatically instead of polling.code, message, and data. Successful callbacks include the final state and resultJson. See Webhooks for delivery requirements and retry behavior.
Billing
Seedance 2.0 is billed per second. The selectedresolution and whether omni_reference includes video_urls determine the per-second unit price.
| Configuration | APIXO price |
|---|---|
480p, without video reference | $0.091 / second |
480p, with video reference | $0.055 / second |
720p, without video reference | $0.192 / second |
720p, with video reference | $0.115 / second |
1080p, without video reference | $0.49 / second |
1080p, with video reference | $0.29 / second |
text-to-video and first_and_last_frames always use the without-video-reference rate. omni_reference uses the with-video-reference rate only when video_urls is provided.
For current route and market comparison pricing, see Pricing.
Latency and polling
Video generation is long-running. The user manual lists typical Seedance 2.0 generation time at about 4-8 minutes. Actual latency may vary by prompt complexity, duration, resolution, reference media accessibility, route queue load, and storage transfer time.| Workload | Typical generation time | Recommended first poll | Poll interval |
|---|---|---|---|
| Text-to-video or first-and-last-frames | 4-8 minutes | 300s after task creation | 10s-20s |
| Omni-reference with image/video/audio inputs | 4-8 minutes or longer | 300s-400s after task creation | 10s-20s |
429, slow down requests and retry with backoff. For account-level details, see System APIs.
Errors and troubleshooting
HTTP errors
| Code | Meaning | What to do |
|---|---|---|
400 | Invalid request body, missing input, unsupported mode, missing prompt, invalid resolution, invalid duration, invalid aspect_ratio, invalid boolean value, or invalid media array | Fix the request before retrying |
401 | Missing or invalid API key | Check the Authorization header |
402 | Insufficient balance or quota | Add balance or switch account/key |
403 | Key or route cannot access the model | Check permissions and route strategy |
404 | Task not found when polling | Check the taskId |
429 | Rate limit or concurrency limit reached | Retry with exponential backoff |
500 | Server error or unknown task failure | Retry with backoff |
502 | Upstream error | Retry with backoff |
504 | Upstream timeout | Retry or use callback mode for long-running jobs |
Validation notes
| Condition | Backend behavior |
|---|---|
Missing input | Request fails before task creation. |
Missing, non-string, or empty prompt | Request fails before task creation. |
Missing mode | Request fails before task creation. |
Unsupported mode | Request fails before task creation. Supported values are text-to-video, first_and_last_frames, and omni_reference. |
Missing resolution | Defaults to 720p. |
Unsupported resolution | Request fails before task creation. Supported values are 480p, 720p, and 1080p. |
Missing duration | Defaults to 5. |
duration outside 4 through 15 | Request fails before task creation. |
Missing aspect_ratio | Defaults to auto. |
Unsupported aspect_ratio | Request fails before task creation. |
sound or web_search is not a boolean | Request fails before task creation. |
first_and_last_frames without image_urls | Request fails before task creation. |
first_and_last_frames with more than 2 images | Request fails before task creation. |
omni_reference with more than 9 images, 3 videos, or 3 audio files | Request fails before task creation. |
omni_reference with only audio_urls | Request fails before task creation. |
| Reference video or audio shorter than 2 seconds or longer than 15 seconds | Request fails before task creation. |
| Total reference video duration or total reference audio duration over 15 seconds | Request fails before task creation. |
Task failure codes
failCode is generated from APIXO’s mapped upstream error. Common values include:
| Fail code | Meaning | What to do |
|---|---|---|
SensitiveContent | Prompt or input/output content was rejected by safety checks | Change the prompt or reference media |
PromptInvalid | Prompt was invalid or rejected upstream | Rewrite the prompt and retry |
ImageFormatIncorrect | Reference image format could not be processed | Use a public, direct image URL in a common image format |
RateLimited | Upstream rate limit was reached | Retry with exponential backoff |
Timeout | Upstream timeout | Retry later or use callback mode |
StreamError | Upstream returned a 500-class generation error | Retry with backoff |
Unknown error | Upstream returned an unmapped failure | Retry with backoff or contact support with the taskId |