Seedance 2.0 Mini
ByteDance's Seedance 2.0 Mini. AI video generation at 480p or 720p with audio, 4-15 seconds.
/v1/media/queueOverview
ByteDance's Seedance 2.0 Mini — video generation with audio and first/last-frame control. Async operation — submit a job, poll for completion.
| Property | Value |
|---|---|
| Model ID | bytedance/seedance-2.0-mini |
| Provider | ByteDance |
| Resolutions | 480p, 720p |
| Aspect Ratios | 1:1, 3:4, 9:16, 4:3, 16:9, 21:9, 9:21 |
| Duration | 4–15 seconds |
| Audio Generation | Supported |
| Billing | Token-based (dynamic) |
| Pricing | from about $0.07/second |
Usage
All media models use the async job queue. Submit a job, then poll for the result.
Step 1: Submit Job
Text-to-Video
const res = await fetch('https://api.yepapi.com/v1/media/queue', {
method: 'POST',
headers: {
'x-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'bytedance/seedance-2.0-mini',
prompt: 'A cinematic drone shot over a rugged coastline at golden hour',
options: {
aspectRatio: '16:9',
resolution: '720p',
duration: '5',
generateAudio: true,
},
}),
});
const { data } = await res.json();
// data.jobId — use this to poll for resultscurl -X POST https://api.yepapi.com/v1/media/queue \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "bytedance/seedance-2.0-mini", "prompt": "A cinematic drone shot over a rugged coastline", "options": {"aspectRatio": "16:9", "resolution": "720p", "duration": "5", "generateAudio": true}}'Image-to-Video
Pass a reference image via imageData with an imageRole (first_frame or last_frame) to generate a video from a still image.
const res = await fetch('https://api.yepapi.com/v1/media/queue', {
method: 'POST',
headers: {
'x-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'bytedance/seedance-2.0-mini',
prompt: 'Animate this scene — clouds drifting, light changing',
options: {
aspectRatio: '16:9',
resolution: '720p',
duration: '5',
generateAudio: true,
imageRole: 'first_frame',
},
imageData: {
mimeType: 'image/jpeg',
base64: '...', // Base64-encoded image
},
}),
});Step 2: Poll for Result
const status = await fetch(`https://api.yepapi.com/v1/media/status/${data.jobId}`, {
headers: { 'x-api-key': 'YOUR_API_KEY' },
});
const { data: job } = await status.json();
// job.status — "pending" | "processing" | "completed" | "failed"
// job.result.video — { mimeType, base64 } when completedcurl https://api.yepapi.com/v1/media/status/JOB_ID \
-H "x-api-key: YOUR_API_KEY"Request Body
| Parameter | Type | Required | Description | Default |
|---|---|---|---|---|
model | string | Yes | bytedance/seedance-2.0-mini or alias seedance-mini | — |
prompt | string | Yes | Text description of the video to generate | — |
options.aspectRatio | string | No | One of: 1:1, 3:4, 9:16, 4:3, 16:9, 21:9, 9:21 | 16:9 |
options.resolution | string | No | 480p, 720p | 480p |
options.duration | string | No | 4 to 15 (seconds) | 5 |
options.generateAudio | boolean | No | Generate an audio track for the video | false |
options.imageRole | string | No | How to use the input image: first_frame or last_frame | first_frame |
imageData.mimeType | string | No | MIME type of input image (image/png, image/jpeg, image/webp) | — |
imageData.base64 | string | No | Base64-encoded input image for image-to-video generation | — |
Pricing
Token-based billing. Cost varies by resolution and duration.
| Tier | Cost/sec |
|---|---|
| 480p (typical) | ~$0.07 |
Example: 5-second 480p video ≈ 5 x $0.07 = **$0.35**. Billing is dynamic — each job is billed from the actual cost of the finished video, so shorter or lower-resolution jobs cost less.
Video jobs can take several minutes to complete. Results retained for 1 hour.
Powered by ByteDance's Seedance 2.0 Mini via our AI provider.