- Full compatibility with the official Seedance 2.0 API: If you’re already using ByteDance’s official API, simply switch the Base URL and API Key for a seamless migration with zero code changes. See the Official Compatible Interface section in this document.
- OpenAI-style interface: A unified
POST /v1/videosendpoint for a consistent calling experience across other platform models.
Base URL: Both interfaces share the same Base URL: https://api.powertokens.ai
This document covers both interfaces. The official compatible interface is in the first half, and the OpenAI-style interface is in the OpenAI-style Interface section.
Important prerequisite: Regardless of which interface you use, all image, video, and audio assets must first be uploaded through the Asset Library to obtain anasset_id, and then use theasset_iddirectly in your requests. See the Asset Preparation section for details.
Prerequisites
Before calling the Seedance 2.0 API, complete the following steps:- Sign up / Log in: Register and log in at powertokens.ai
- Get an API Key: Go to the API Keys management page, create a new key, copy and store it securely
- Top up: Go to the Billing page and purchase Credits (video generation is pay-per-use and requires account balance)
- Enable Asset Library: Go to the Asset Library page, read and agree to the Asset Library User Agreement (all Seedance 2.0 assets must be uploaded through the Asset Library)
Authentication
All requests are authenticated via HTTP headers:Official Compatible Interface
PowerTokens is fully compatible with the official Seedance API, with request bodies, parameter names, and response structures identical to ByteDance’s official API. If you’re already using ByteDance’s official API, simply switch the Base URL and API Key to migrate.Migration from ByteDance Official
Base URL
Both interfaces share the same Base URL: https://api.powertokens.ai, differing only in the request path.
Endpoint List
| Operation | Method | Endpoint | API Reference |
|---|---|---|---|
| Create video generation task | POST | /byteplus/api/v3/contents/generations/tasks | View |
| Query video generation task | GET | /byteplus/api/v3/contents/generations/tasks/{id} | View |
| List tasks | GET | /byteplus/api/v3/contents/generations/tasks | View |
| Cancel / Delete task | DELETE | /byteplus/api/v3/contents/generations/tasks/{id} | View |
Asset Input Format
In the official compatible interface, assets are passed into theurl field using the asset://<ASSET_ID> format:
url field for images, videos, and audio supports the following three formats:
| Format | Example | Description |
|---|---|---|
| Asset ID (recommended) | asset://XXXX | The asset_id obtained by uploading through the Asset Library |
| Public URL | https://example.com/img.jpg | A publicly accessible file URL |
| Base64 encoding | data:image/png;base64,aHR0... | Local file encoded to Base64 (not recommended for large files) |
Example: Image-to-Video (using asset_id)
Example: Multimodal Reference-to-Video (reference image + reference video + reference audio)
Example: Query Task Status
Example: List Tasks
Example: Cancel / Delete Task
Official Compatible Interface vs OpenAI-style Interface
| Dimension | Official Compatible Interface | OpenAI-style Interface |
|---|---|---|
| Base URL | https://api.powertokens.ai (same) | https://api.powertokens.ai (same) |
| Create task | POST /byteplus/api/v3/contents/generations/tasks | POST /v1/videos |
| Asset input | "url": "asset://XXXX" (same) | "url": "asset://XXXX" (same) |
| Query task | GET /byteplus/api/v3/.../tasks/{id} | GET /v1/videos/{task_id} |
| Task list | GET /byteplus/api/v3/.../tasks | Not supported |
| Cancel / Delete task | DELETE /byteplus/api/v3/.../tasks/{id} | Not supported |
| Parameter structure | Identical to ByteDance official (content array) | OpenAI-style (media array) |
| Use case | Migration from ByteDance official, advanced features like task list / cancel | Unified calling experience across multiple platform models |
The generation quality is identical for both interfaces — choose whichever fits your needs.
OpenAI-style Interface
A unifiedPOST /v1/videos endpoint for a consistent calling experience across other platform models.
Available Models
| Model | Model ID | Characteristics |
|---|---|---|
| Seedance 2.0 | dreamina-seedance-2-0-260128 | High quality, supports 1080p (image-to-video / first-last frame / multimodal reference scenarios) |
| Seedance 2.0 Fast | dreamina-seedance-2-0-fast-260128 | Fast generation, up to 720p |
Supported Generation Modes
| Mode | Description | Required media types | API Reference |
|---|---|---|---|
| Text-to-Video | Generate video from text only | text | Standard · Fast |
| Image-to-Video | Starting frame image + text | text + first_frame | Standard · Fast |
| First-Last Frame-to-Video | Starting frame + ending frame + text | text + first_frame + last_frame | Standard · Fast |
| Multimodal Reference-to-Video | Reference image / reference video / reference audio + text | text + reference_image / reference_video / reference_audio | Standard · Fast |
Asset Preparation (Must Read)
All Seedance 2.0 media assets (images, videos, audio) must first be uploaded through the Asset Library to obtain anasset_id. External URLs cannot be used directly.
Workflow
Just two steps — once you have theasset_id, you can use it directly in Seedance requests:
| Step | Endpoint | Input | Output | Auth |
|---|---|---|---|---|
| ① Upload asset | POST /v1/asset/upload | File | task_id | Required |
| ② Poll to get asset ID | GET /v1/asset/jobs/get-asset-id | task_id | asset_id | Not required |
Once you have theasset_id, you’re ready to go! Regardless of which interface you use, pass the asset using the"url": "asset://your_asset_id"format — no need to query asset details for a URL.
Example: Preparing a Starting Frame Image
For detailed Asset Library usage, see Asset Library Quick Start.
Request Parameters
All generation modes share thePOST /v1/videos endpoint, with different type combinations in the media array to distinguish modes.
Common Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Yes | — | Model ID |
media | array | Yes | — | Multimodal input array, see media type table below |
seconds | string | No | "5" | Video duration in seconds, "4" to "15" or "-1" (smart selection) |
size | string | No | "720p" | Resolution: 480p / 720p (standard image-to-video / first-last frame / multimodal reference also supports 1080p) |
ratio | string | No | See note | Aspect ratio: 16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 / adaptive. Default 16:9 for text-to-video, adaptive for image-to-video |
seed | integer | No | -1 | Random seed, range [-1, 4294967295] |
watermark | boolean | No | false | Whether to add watermark |
generate_audio | boolean | No | true | Whether to generate synchronized audio (2.0 series exclusive feature) |
return_last_frame | boolean | No | false | Whether to return the last frame image |
safety_identifier | string | No | — | Unique end-user identifier for compliance detection, max 64 characters |
Media Types
| type | Description | Required Fields |
|---|---|---|
text | Text prompt | text |
first_frame | Starting frame image | asset_id (obtained via Asset Library upload) |
last_frame | Ending frame image | asset_id (obtained via Asset Library upload) |
reference_image | Reference image | asset_id (obtained via Asset Library upload) |
reference_video | Reference video | asset_id (obtained via Asset Library upload) |
reference_audio | Reference audio | asset_id (obtained via Asset Library upload) |
Usage Examples
1. Text-to-Video (Standard API Reference · Fast)
2. Image-to-Video (Standard API Reference · Fast)
asset://XXXX — XXXX is the asset ID obtained after uploading through the Asset Library.
3. First-Last Frame-to-Video (Standard API Reference · Fast)
4. Multimodal Reference-to-Video (Standard API Reference · Fast)
You can pass one or more of: reference image, reference video, and reference audio simultaneously:Query Task Status (API Reference)
After submitting a generation request, atask_id will be returned. Video generation is asynchronous and requires polling to check the status.
Endpoint: GET /v1/videos/{task_id}
Task Statuses
| Status | Meaning |
|---|---|
queued | In queue |
running | Generating |
succeeded | Generation succeeded |
failed | Generation failed |
cancelled | Cancelled (only tasks in queue can be cancelled; auto-deleted after 24h) |
expired | Timed out |
Successful Response Example
Note: The video URL is valid for 14 days. Please download and save it promptly. Only tasks from the last 7 days can be queried.
Complete Workflow — Python
A complete example from asset upload to video generation:Model Version Comparison
| Dimension | Seedance 2.0 | Seedance 2.0 Fast |
|---|---|---|
| Model ID | dreamina-seedance-2-0-260128 | dreamina-seedance-2-0-fast-260128 |
| Generation speed | Standard | Faster |
| Max resolution | 1080p (image-to-video / first-last frame / multimodal reference) | 720p |
| Text-to-video resolution | 720p | 720p |
| Duration range | 4–15 seconds or -1 (smart selection) | 4–15 seconds or -1 (smart selection) |
| Audio sync | Supported | Supported |
| Multimodal reference | Supported | Supported |
API Quick Reference
Official Compatible Interface
Base URL: https://api.powertokens.ai
Create Task — POST /byteplus/api/v3/contents/generations/tasks (API Reference)
Query Task — GET /byteplus/api/v3/contents/generations/tasks/{id} (API Reference)
Task List — GET /byteplus/api/v3/contents/generations/tasks (API Reference)
Cancel / Delete Task — DELETE /byteplus/api/v3/contents/generations/tasks/{id} (API Reference)
OpenAI-style Interface
Base URL: https://api.powertokens.ai
Generation Modes — POST /v1/videos
Text-to-Video (Standard · Fast)
Image-to-Video (Standard · Fast)
First-Last Frame-to-Video (Standard · Fast)
Multimodal Reference-to-Video (Standard · Fast)
For the Fast version, replace the model ID with dreamina-seedance-2-0-fast-260128.
Task Query — GET /v1/videos/{task_id} (API Reference)
Asset Preparation (Asset Library)
Upload Asset — POST /v1/asset/upload (API Reference)
Get Asset ID — GET /v1/asset/jobs/get-asset-id (API Reference)
This endpoint does not require authentication. Once you have the asset_id, you can directly use it in Seedance requests.
For the complete API reference, visit docs.powertokens.ai