Seedance 2.0
Seedance 2.0
DocumentationGetting Started

Image to Video

Generate videos from images and reference media with the Seedance 2.0 Open API.

Image to Video

Generate videos from reference media with the Seedance 2.0 Open API. In this mode, you submit one or more public media URLs through mediaUrls together with your prompt.

This endpoint supports first-frame generation, first-and-last-frame control, and richer reference-based workflows. The generation mode is inferred from the number and type of materials you provide.

Endpoint

POST /api/open/v1/video/generations

Supported Reference Types

TypeCommon formatsTypical usage
Image.jpg, .jpeg, .png, .webp, .gif, .bmpFirst frame, last frame, style reference
Video.mp4, .mov, .m4vMotion and shot reference
Audio.mp3, .wavRhythm or timing reference
  • You can pass up to 5 items in mediaUrls.
  • Use publicly accessible HTTPS URLs.
  • For best stability, keep reference media clean, direct, and tightly aligned with the prompt.

First Frame Example

curl --request POST \
  --url https://www.seedance2.ink/api/open/v1/video/generations \
  --header 'Authorization: Bearer sd2_live_your_api_key' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "seedance-2.0",
    "prompt": "A young woman blows out birthday candles, warm indoor lighting, shallow depth of field",
    "mediaUrls": [
      "https://example.com/photo.jpg"
    ],
    "aspectRatio": "16:9",
    "duration": 5,
    "resolution": "720p"
  }'

First and Last Frame Example

curl --request POST \
  --url https://www.seedance2.ink/api/open/v1/video/generations \
  --header 'Authorization: Bearer sd2_live_your_api_key' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "seedance-2.0",
    "prompt": "A cinematic transition from sunrise over the ocean to a glowing night skyline",
    "mediaUrls": [
      "https://example.com/first-frame.jpg",
      "https://example.com/last-frame.jpg"
    ],
    "aspectRatio": "16:9",
    "duration": 6,
    "resolution": "1080p"
  }'

Multimodal Reference Example

curl --request POST \
  --url https://www.seedance2.ink/api/open/v1/video/generations \
  --header 'Authorization: Bearer sd2_live_your_api_key' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "seedance-2.0-fast",
    "prompt": "A fashion film with energetic camera motion synced to the beat",
    "mediaUrls": [
      "https://example.com/reference-image.jpg",
      "https://example.com/reference-audio.mp3"
    ],
    "aspectRatio": "9:16",
    "duration": 8,
    "resolution": "720p",
    "webhookUrl": "https://your-app.com/webhooks/seedance"
  }'

Success Response

{
  "success": true,
  "requestId": "req_1234567890",
  "status": "queued",
  "creditsCharged": 64
}

Request Body

FieldTypeRequiredDescription
modelstringYesOne of seedance-2.0, seedance-2.0-fast, seedance-1.5-pro.
promptstringYesText instruction describing the target video.
mediaUrlsstring[]YesOne to five public media URLs used as reference material.
aspectRatiostringNoOne of 16:9, 9:16, 1:1.
durationintegerNoFor seedance-2.0 and seedance-2.0-fast: 4-15. For seedance-1.5-pro: 5 or 10.
resolutionstringNoOne of 480p, 720p, 1080p.
webhookUrlstringNoCallback URL that receives the final task result.
metadataobjectNoCustom metadata stored with the request.

Query Result

Query the result with the task ID returned at submission time:

curl https://www.seedance2.ink/api/open/v1/video/generations/req_1234567890 \
  --header 'Authorization: Bearer sd2_live_your_api_key'
{
  "success": true,
  "requestId": "req_1234567890",
  "status": "succeeded",
  "model": "seedance-2.0",
  "prompt": "A young woman blows out birthday candles, warm indoor lighting, shallow depth of field",
  "duration": 5,
  "aspectRatio": "16:9",
  "output": {
    "type": "video",
    "url": "https://pub-your-bucket.r2.dev/open-api-results/req_1234567890.mp4"
  },
  "error": null
}

The output URL is only returned when the task reaches succeeded.

Cancel Task

curl --request POST \
  --url https://www.seedance2.ink/api/open/v1/video/generations/req_1234567890/cancel \
  --header 'Authorization: Bearer sd2_live_your_api_key'
{
  "success": true,
  "requestId": "req_1234567890",
  "status": "cancelled"
}

Notes

  • Use seedance-2.0 or seedance-2.0-fast for richer multimodal reference workflows.
  • seedance-1.5-pro is best reserved for simpler image-guided generation.
  • If you do not need reference media, use Text to Video instead.

Table of Contents

Image to VideoEndpointSupported Reference TypesFirst Frame ExampleFirst and Last Frame ExampleMultimodal Reference ExampleSuccess ResponseRequest BodyQuery ResultCancel TaskNotes