# Seedance 2.0 Mini API Complete API reference for Seedance 2.0 Mini video generation models by ByteDance. ## Model Variants This API supports three model variants: | Model | ID | Description | |-------|-----|-------------| | **Seedance 2.0 Mini Text to Video** | `seedance-v2.0-mini-text-to-video` | Cost-effective text-to-video generation | | **Seedance 2.0 Mini Image to Video** | `seedance-v2.0-mini-image-to-video` | Cost-effective image animation with motion control | | **Seedance 2.0 Mini Reference to Video** | `seedance-v2.0-mini-reference-to-video` | Cost-effective video generation guided by reference images, videos, and audio | ## Quick Comparison | Feature | Value | |---------|-------| | Duration Range | 4-15 seconds | | Resolution Options | 480p, 720p | | Aspect Ratio Options | 21:9, 16:9, 9:16, 1:1, 4:3, 3:4 | | Audio Support | Yes (default: enabled) | | Reference Media | Images, videos, and audios for Reference-to-Video | | Seed Control | Not supported by any Seedance 2.0 Mini model | ### Supported Aspect Ratios `21:9`, `16:9`, `9:16`, `1:1`, `4:3`, `3:4` ### Resolution Options | Resolution | Description | |------------|-------------| | `480p` | Standard definition, faster processing | | `720p` | High definition | ## Seedance 2.0 Mini Text to Video ### Endpoint ``` POST /api/v1/video/task ``` ### Request Parameters #### Required | Parameter | Type | Description | |-----------|------|-------------| | `model_name` | string | Must be `"seedance-v2.0-mini-text-to-video"` | | `prompt` | string | Video generation prompt | | `duration` | integer | Video duration in whole seconds (4-15), in steps of 1 | | `resolution` | string | Output resolution: `"480p"` or `"720p"` | | `aspect_ratio` | string | Video aspect ratio: `"21:9"`, `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, or `"3:4"` | #### Optional | Parameter | Type | Description | |-----------|------|-------------| | `sound` | boolean | Whether to generate ambient sound (default: `true`) | ### Example Request ```javascript const response = await fetch('https://api.flaq.ai/api/v1/video/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'seedance-v2.0-mini-text-to-video', prompt: 'A golden retriever running through a sunlit meadow', duration: 6, resolution: '720p', aspect_ratio: '16:9', sound: true }) }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Seedance 2.0 Mini Image to Video ### Request Parameters #### Required | Parameter | Type | Description | |-----------|------|-------------| | `model_name` | string | Must be `"seedance-v2.0-mini-image-to-video"` | | `prompt` | string | Video generation prompt | | `duration` | integer | Video duration in whole seconds (4-15), in steps of 1 | | `resolution` | string | Output resolution: `"480p"` or `"720p"` | | `aspect_ratio` | string | Video aspect ratio: `"21:9"`, `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, or `"3:4"` | | `image_url` | string | The first frame of the video | #### Optional | Parameter | Type | Description | |-----------|------|-------------| | `image_end_url` | string | Optional ending frame image URL | | `sound` | boolean | Whether to generate ambient sound (default: `true`) | ### Example Request ```javascript const response = await fetch('https://api.flaq.ai/api/v1/video/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'seedance-v2.0-mini-image-to-video', image_url: 'https://example.com/image.jpg', image_end_url: 'https://example.com/end-frame.jpg', prompt: 'Camera slowly pulls back to reveal the full landscape', duration: 6, resolution: '720p', aspect_ratio: '16:9', sound: true }) }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Seedance 2.0 Mini Reference to Video ### Request Parameters #### Required | Parameter | Type | Description | |-----------|------|-------------| | `model_name` | string | Must be `"seedance-v2.0-mini-reference-to-video"` | | `prompt` | string | Video generation prompt. Write a standard prompt without placeholders, or optionally use the @ (AT) reference feature with `<<>>`, `<<>>`, and `<<>>` to explicitly reference items from the corresponding media arrays | | `duration` | integer | Video duration in whole seconds (4-15), in steps of 1 | | `resolution` | string | Output resolution: `"480p"` or `"720p"` | | `aspect_ratio` | string | Video aspect ratio: `"21:9"`, `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, or `"3:4"` | #### Reference Media Every request must include at least one image or video. Submit 1-9 images when using image references. The `images` array may be omitted or empty only when the `videos` array contains at least one reference video. Audio-only requests are not supported. | Parameter | Type | Description | |-----------|------|-------------| | `images` | string[] | 1-9 reference image URLs, or an empty array when `videos` is non-empty | | `videos` | string[] | Up to 3 reference video URLs; each video must be 2-15 seconds, with a combined duration of at most 15 seconds | | `audios` | string[] | Up to 3 reference audio URLs; each audio clip must be 2-15 seconds, with a combined duration of at most 15 seconds; WAV or MP3, at most 15 MB per clip; requires at least one image or video | #### @ (AT) Reference Placeholders The @ (AT) reference feature links reference media to the prompt through numbered `<<<...>>>` placeholders. Numbering starts at `1` independently for each media type and follows the order of the corresponding array: | Placeholder | Referenced value | |-------------|------------------| | `<<>>` | `images[0]` | | `<<>>` | `images[1]` | | `<<>>` | `videos[0]` | | `<<>>` | `audios[0]` | Each placeholder must point to an item that exists in its corresponding array. #### Optional | Parameter | Type | Description | |-----------|------|-------------| | `sound` | boolean | Whether to generate synchronized sound. Defaults to `true` | ### Reference Video Pricing Seedance V2.0 Mini Reference-to-Video follows the same resolution-based, per-second billing structure as the other Seedance 2.0 reference variants. When the `videos` array contains at least one reference video, the total generation charge is multiplied by 2. This multiplier is applied once, regardless of the number or duration of the uploaded reference videos. ### Example Request ```javascript const response = await fetch('https://api.flaq.ai/api/v1/video/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'seedance-v2.0-mini-reference-to-video', prompt: 'Place the explorer from <<>> in the environment from <<>>, following the camera movement in <<>> and speaking with the reference voice from <<>>', duration: 8, resolution: '720p', aspect_ratio: '16:9', sound: true, images: [ 'https://example.com/explorer-reference.jpg', 'https://example.com/environment-reference.jpg' ], videos: ['https://example.com/camera-movement-reference.mp4'], audios: ['https://example.com/voice-reference.mp3'] }) }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Media Limits These limits apply to first-frame images, last-frame images, and reference media for the models on this page. | Media | Formats | Limits | |-------|---------|--------| | Images | JPEG, PNG, WEBP, BMP, TIFF, GIF, HEIC, HEIF | Each image must be smaller than 30 MB; width and height must each be 300-6000 px; width-to-height ratio must be 0.4-2.5 | | Videos | MP4, MOV | At most 200 MB each; width and height must each be 300-6000 px; width-to-height ratio must be 0.4-2.5; frame rate must be 24-60 FPS | | Audio | WAV, MP3 | At most 15 MB each | | Request body | — | At most 64 MB | Reference audio and reference video each have a separate combined duration limit of 15 seconds. Their counts are independent: up to 9 images, 3 videos, and 3 audio clips. Adding videos does not reduce the image allowance. All models default to `720p`, but `resolution` must still be supplied. The sound switch defaults to `true`; neither this switch nor reference audio changes the price. Reference-to-Video requires at least one image or video; audio-only requests are not supported. Uploading reference videos doubles the generation charge, regardless of their number or duration. ## Response Format ### Initial Response All models return a `task_id` for polling: ```json { "code": 0, "message": "success", "data": { "task_id": "{task_id}", "response_url": "https://api.flaq.ai/api/v1/video/{task_id}", "task_status": "submitted" } } ``` ### Polling Response Poll `GET /api/v1/video/{taskId}` to check status: ```json { "code": 0, "message": "success", "data": { "task_id": "{task_id}", "response_url": "https://api.flaq.ai/api/v1/video/{task_id}", "task_status": "succeed", "task_status_msg": null, "task_result": { "credit": 0.2, "videos": [ { "url": "https://example.com/generated-video.mp4" } ] } } } ``` ### Status Values - `submitted`: Task accepted and waiting to be processed - `processing`: Video generation in progress - `succeed`: Video generation completed - `failed`: Video generation failed ## Processing Time Typical processing time is 2-6 minutes depending on duration and resolution. Poll every 5-10 seconds to check status. ## Best Practices 1. **Describe Motion Clearly**: Include specific movement descriptions in prompts 2. **Resolution Selection**: Use `480p` for faster processing, `720p` for higher quality 3. **Audio Enhancement**: Keep `sound` enabled for more immersive video experiences 4. **Image to Video**: Provide a clear first frame via `image_url`; use `image_end_url` when you need controlled start and end frames 5. **Reference Media**: Use supported image, video, and audio references, and ensure at least one image or video is included 6. **Reference Video Pricing**: Any Reference-to-Video request containing at least one reference video is charged at 2x, regardless of the number or duration of the uploaded videos 7. **Seed Parameter**: Do not send `seed`; Seedance 2.0 Mini models do not support it