Seedance - Text to Video
Generate video directly from a text prompt using ByteDance's Seedance models, with native audio generation and aspect-ratio control. Optionally attach reference images, video clips and audio tracks to guide the result — a plain prompt with no references still generates a normal text-to-video clip.
Endpoint
Request Headers
| Field | Value |
|---|---|
| API-KEY | <api-key> |
| Content-Type | application/json |
Request Parameters
| Field Name | Type | Example | Description | Required |
|---|---|---|---|---|
| type | string | TEXT_TO_VIDEO | Feature identifier | ✔️ |
| model | string | bytedance/seedance-2.5 | AI model to use: bytedance/seedance-2.5, bytedance/seedance-2.0, bytedance/seedance-2.0-fast or bytedance/seedance-2.0-mini | ✔️ |
| conversationId | string | TEXT_TO_VIDEO | Conversation context | ✔️ |
| promptObject.prompt | string | A cat surfing on a neon wave, cinematic lighting | Text description of the video to generate. Max 5000 characters | ✔️ |
| promptObject.resolution | string | 720p | Output resolution. Allowed values depend on the model (see the table below) | ✔️ |
| promptObject.duration | number | 5 | Video duration in seconds. Allowed range depends on the model (see the table below) | ✔️ |
| promptObject.imageUrls | string[] | ["images/character.png"] | S3 object keys (not public URLs) returned by the Asset API — upload each file first, then pass the returned paths. Reference images guiding the subjects and style of the video. Up to the per-model cap (see the table below). Each image must be at least 300px wide — the provider rejects narrower images | ❌ |
| promptObject.videoUrls | string[] | ["videos/walk_cycle.mp4"] | S3 object keys (not public URLs) returned by the Asset API — upload each file first, then pass the returned paths. Reference video clips | ❌ |
| promptObject.audioUrls | string[] | ["audios/voice.mp3"] | S3 object keys (not public URLs) returned by the Asset API — upload each file first, then pass the returned paths. Reference audio tracks | ❌ |
| promptObject.ratio | string | 16:9 | Aspect ratio of the output video: 16:9, 4:3, 1:1, 3:4, 9:16 or 21:9, plus 9:21 on the bytedance/seedance-2.0 family. Omit the field to let the provider choose the ratio | ❌ |
| promptObject.generateAudio | boolean | true | Generate dialogue, ambience and sound effects alongside the video. Defaults to true | ❌ |
| promptObject.seed | number | 12345 | Random seed for reproducible generation. Integer from 0 to 4294967295, or -1 for random | ❌ |
| promptObject.watermark | boolean | false | Whether to add an AI-generated watermark to the output video | ❌ |
Four variants are available, and the accepted resolution, duration, seed and reference counts differ between them:
| Model | Resolutions | Duration (s) | Seed | Max ref. images / videos / audio | Combined ref. video/audio length |
|---|---|---|---|---|---|
bytedance/seedance-2.5 | 480p, 720p | 4-30 | supported | 30 / 10 / 10 | ≤ 30s |
bytedance/seedance-2.0 | 480p, 720p, 1080p, 4K | 4-15 | supported | 9 / 3 / 3 | ≤ 15s |
bytedance/seedance-2.0-fast | 480p, 720p | 4-15 | supported | 9 / 3 / 3 | ≤ 15s |
bytedance/seedance-2.0-mini | 480p, 720p | 4-15 | supported | 9 / 3 / 3 | ≤ 15s |
Code Examples
Text to Video (no references)
- cURL
- JavaScript
- Python
curl --location 'https://api.1min.ai/api/features' \
--header 'API-KEY: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"type": "TEXT_TO_VIDEO",
"model": "bytedance/seedance-2.5",
"conversationId": "TEXT_TO_VIDEO",
"promptObject": {
"prompt": "A cat surfing on a neon wave, cinematic lighting",
"resolution": "720p",
"duration": 5,
"generateAudio": true
}
}'
fetch('https://api.1min.ai/api/features', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'API-KEY': 'YOUR_API_KEY'
},
body: JSON.stringify({
type: 'TEXT_TO_VIDEO',
model: 'bytedance/seedance-2.5',
conversationId: 'TEXT_TO_VIDEO',
promptObject: {
prompt: 'A cat surfing on a neon wave, cinematic lighting',
resolution: '720p',
duration: 5,
generateAudio: true
}
})
})
import requests
url = "https://api.1min.ai/api/features"
headers = {
"Content-Type": "application/json",
"API-KEY": "YOUR_API_KEY"
}
data = {
"type": "TEXT_TO_VIDEO",
"model": "bytedance/seedance-2.5",
"conversationId": "TEXT_TO_VIDEO",
"promptObject": {
"prompt": "A cat surfing on a neon wave, cinematic lighting",
"resolution": "720p",
"duration": 5,
"generateAudio": True
}
}
response = requests.post(url, headers=headers, json=data)
Reference to Video
Attach reference images, video clips and/or audio tracks to guide the generation instead of relying on the prompt alone.
- cURL
- JavaScript
- Python
curl --location 'https://api.1min.ai/api/features' \
--header 'API-KEY: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"type": "TEXT_TO_VIDEO",
"model": "bytedance/seedance-2.0",
"conversationId": "TEXT_TO_VIDEO",
"promptObject": {
"prompt": "The character from the reference images walks through the same street",
"resolution": "1080p",
"duration": 10,
"ratio": "16:9",
"generateAudio": true,
"seed": 12345,
"imageUrls": ["images/character.png", "images/street.png"],
"videoUrls": ["videos/walk_cycle.mp4"],
"audioUrls": ["audios/voice.mp3"]
}
}'
fetch('https://api.1min.ai/api/features', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'API-KEY': 'YOUR_API_KEY'
},
body: JSON.stringify({
type: 'TEXT_TO_VIDEO',
model: 'bytedance/seedance-2.0',
conversationId: 'TEXT_TO_VIDEO',
promptObject: {
prompt: 'The character from the reference images walks through the same street',
resolution: '1080p',
duration: 10,
ratio: '16:9',
generateAudio: true,
seed: 12345,
imageUrls: ['images/character.png', 'images/street.png'],
videoUrls: ['videos/walk_cycle.mp4'],
audioUrls: ['audios/voice.mp3']
}
})
})
import requests
url = "https://api.1min.ai/api/features"
headers = {
"Content-Type": "application/json",
"API-KEY": "YOUR_API_KEY"
}
data = {
"type": "TEXT_TO_VIDEO",
"model": "bytedance/seedance-2.0",
"conversationId": "TEXT_TO_VIDEO",
"promptObject": {
"prompt": "The character from the reference images walks through the same street",
"resolution": "1080p",
"duration": 10,
"ratio": "16:9",
"generateAudio": True,
"seed": 12345,
"imageUrls": ["images/character.png", "images/street.png"],
"videoUrls": ["videos/walk_cycle.mp4"],
"audioUrls": ["audios/voice.mp3"]
}
}
response = requests.post(url, headers=headers, json=data)
Interactive Playground
API Playground
https://api.1min.ai/api/features1080p and 4K are only accepted by bytedance/seedance-2.0
bytedance/seedance-2.5 accepts 4-30s; every other variant accepts 4-15s
Leave unset to let the provider choose the ratio. 9:21 is accepted by the bytedance/seedance-2.0 family only
Comma-separated Asset API paths. Up to the per-model cap. Each image must be at least 300px wide
Comma-separated Asset API paths
Comma-separated Asset API paths
Generate dialogue, ambience and sound effects alongside the video
Fixed seed for reproducible generation
Add an AI-generated watermark to the output video
Generated cURL Command:
curl -X POST "https://api.1min.ai/api/features" \
-H "API-KEY: <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"type": "TEXT_TO_VIDEO",
"model": "bytedance/seedance-2.5",
"conversationId": "TEXT_TO_VIDEO",
"promptObject": {
"prompt": "A cat surfing on a neon wave, cinematic lighting",
"resolution": "720p",
"duration": 5,
"generateAudio": true
}
}'
Response
{
"aiRecord": {
"uuid": "b574969b-4992-4173-9e62-7ebd4782103e",
"userId": "2f57c2a4-1fff-48e7-972f-3c1d6c59bced",
"teamId": "eb48d89f-1bb7-4d82-9b25-481971a0e97a",
"model": "bytedance/seedance-2.5",
"type": "TEXT_TO_VIDEO",
"metadata": {
"credit": 12000000,
"duration": 5,
"resolution": "720p",
"executionTime": 48.201
},
"rating": null,
"feedback": null,
"conversationId": null,
"status": "SUCCESS",
"createdAt": "2026-08-13T16:47:28.018Z",
"aiRecordDetail": {
"promptObject": {
"prompt": "A cat surfing on a neon wave, cinematic lighting",
"ratio": "16:9",
"duration": 5,
"resolution": "720p",
"generateAudio": true
},
"resultObject": [
"development/videos/2026_08_13_23_48_59_722_158922.mp4"
],
"responseObject": {
"task_id": "3f2aK9mR",
"credits": 100,
"processing_time": 48
}
},
"additionalData": null,
"temporaryUrl": "https://s3.us-east-1.amazonaws.com/asset.1min.ai/development/videos/2026_08_13_23_48_59_722_158922.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=..."
}
}