Skip to content

Seedance 2.0 Pro API

Seedance 2.0 at full quality, up to 1080p.

  • 4 to 15 second clips
  • A last-frame image needs a first-frame image. Reference audio needs an image to go with it.
Pricing
ResolutionText or imagesWith video input
480pText or images16.8 Credits/s ($0.084/s)40% less than fal fal price $0.141 per secondWith video input10 Credits/s ($0.05/s)
720pText or images36.4 Credits/s ($0.182/s)40% less than fal fal price $0.303 per secondWith video input21.8 Credits/s ($0.109/s)
1080pText or images81.8 Credits/s ($0.409/s)40% less than fal fal price $0.682 per secondWith video input49 Credits/s ($0.245/s)
4kText or images157 Credits/s ($0.785/s)With video input97 Credits/s ($0.485/s)

With video input, both the input and output seconds are billed.

Full pricing ↓All Seedance models

Add a first frame before a last frame.

Audio needs at least one image.

Resolution
Between 4 and 15 seconds, or turn on Auto.
The model picks the length, up to 15 s. You pay for the length it makes.
Aspect ratio
Auto matches the shape of your input media.
Adds a synchronized soundtrack.
Advanced
The same seed and settings give a similar result. Leave it empty for a random seed.
Also returns the last frame of the video as an image.

Checking whether you’re signed in.

Sign in to generate. What you enter here, including chosen files, is kept for when you come back.

Your result appears here

Pricing

Prices as of 2026-11-09

TierPrice
480p
16.8 Credits/s ($0.084/s)Note 14–15 s
720p
36.4 Credits/s ($0.182/s)Note 14–15 s
1080p
81.8 Credits/s ($0.409/s)Note 14–15 s
4K
157 Credits/s ($0.785/s)Note 14–15 s
480p with video input
480p-video
10 Credits/s ($0.05/s)Notes 2, 34–15 s
720p with video input
720p-video
21.8 Credits/s ($0.109/s)Notes 2, 34–15 s
1080p with video input
1080p-video
49 Credits/s ($0.245/s)Notes 2, 34–15 s
4K with video input
4k-video
97 Credits/s ($0.485/s)Notes 2, 34–15 s
  1. Holds Credits for up to 15 seconds and charges the actual length.
  2. The rate applies to input and output seconds.
  3. Holds Credits for up to 15 seconds of output plus up to 15 seconds of input, and charges the actual length.

1 Credit ≈ $0.005. At the standard pack price. Larger packs include bonus Credits, so each Credit costs less.

For 720p, fal charges $0.303/s; VizoAPI charges $0.182/s, 40% less.

Delivery and billing

Output
Finished files are listed in the task result with an asset ID and type for each.
Download
Files are kept for 7 days and downloaded through short-lived signed links. You can delete them any time.
Billing
Credits are held when a task is accepted and charged on delivery. If generation fails, or nothing is delivered within 24 hours, the held Credits are released in full.
Notifications
Poll the task by ID, or use signed webhooks and deduplicate by event_id.
How is it billed?
By output second.
Do failed generations cost anything?
No. If generation fails, or nothing is delivered within 24 hours of acceptance, the held Credits are released in full.

API reference

Create the task once, then poll it by its ID. Full script with upload and download · API reference

Request
API=https://api.vizoapi.com/v1
AUTH="Authorization: Bearer $VIZO_API_KEY"

# Create the task once and keep its ID.
ID=$(curl -fsS $API/generations -H "$AUTH" -H "Content-Type: application/json" \
  -d '{
  "model": "seedance-2-0-pro",
  "input": {
    "content": [
      {
        "type": "text",
        "text": "A slow dolly shot through a rainy neon street"
      }
    ],
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5
  },
  "metadata": {
    "client_reference": "my-unique-reference-1"
  }
}' | jq -r .id)

# Poll until the task closes, then read its status and result.
until curl -fsS $API/generations/$ID -H "$AUTH" | jq -e '.closed_at != null' > /dev/null; do sleep 5; done
curl -fsS $API/generations/$ID -H "$AUTH" | jq '{status, result}'
All fields

Send these fields in input. A field the table does not list is refused with HTTP 422 invalid_input.

  • content needs at least one text, image or video item.
  • Every image, video and audio item in content names its role.
  • Input limits: up to 9 images, 3 videos and 3 audio items in content, with no limit on the total. Each video and audio item runs 2 to 15 seconds. Videos add up to at most 15 seconds, and audio to at most 15 seconds. Lengths are checked before the task is created when the file can be measured (422 input_duration_out_of_range). Task type and drafts are not supported.
  • Image pixel size and aspect ratio, and video resolution and frame rate, are not checked when the request is made: the model checks them when the task runs, and a file it refuses usually fails the task with input_media_invalid (otherwise generation_failed); the task is not charged.
  • first_frame and last_frame images (at most one each) cannot be combined with reference images, videos or audio, and a last_frame needs a first_frame.
  • Audio items need at least one image or video in content.
  • Prompt text must not contain inline --flag parameters.
Request parameters
FieldDescription
bitrate_modestringOptional

Encoding quality. Only standard.

Only standard

contentarray of objectsRequired

Prompt text and media items. Each image, video and audio item names its role.

At least 1 items

content[].typestringRequired

Item kind.

Allowed valuestextimage_urlvideo_urlaudio_url
Items where type is text
content[].textstringRequired

Prompt text, up to 4000 characters per item.

At most 4000 characters

Items where type is image_url
content[].image_urlobjectRequired
content[].image_url.urlstringRequired

An https URL or an uploaded asset id (ast_...).

At most 4000 characters · Pattern^(https://|ast_)

content[].rolestringRequired

Image roles: first_frame, last_frame, reference_image. Video: reference_video. Audio: reference_audio.

Items where type is video_url
content[].rolestringRequired

Image roles: first_frame, last_frame, reference_image. Video: reference_video. Audio: reference_audio.

content[].video_urlobjectRequired
content[].video_url.urlstringRequired

An https URL or an uploaded asset id (ast_...).

At most 4000 characters · Pattern^(https://|ast_)

Items where type is audio_url
content[].audio_urlobjectRequired
content[].audio_url.urlstringRequired

An https URL or an uploaded asset id (ast_...).

At most 4000 characters · Pattern^(https://|ast_)

content[].rolestringRequired

Image roles: first_frame, last_frame, reference_image. Video: reference_video. Audio: reference_audio.

durationintegerOptional

Output length in seconds, 4 to 15, or -1 to let the model choose. Defaults to 5.

Default 5

4 to 15, or -1

execution_expires_afterintegerOptional

Execution and delivery deadline in seconds from acceptance. Defaults to 86400. Credits remain held until completion or this deadline.

Default 86400

Minimum 3600 · Maximum 259,200

generate_audiobooleanOptional

Adds a synchronized soundtrack. Defaults to true.

Default true

output_formatstringOptional

Container format. Only mp4.

Only mp4

ratiostringOptional

Output aspect ratio. Defaults to adaptive.

Allowed values16:94:31:13:49:1621:9adaptive

Default adaptive

resolutionstringOptional

Output resolution. Defaults to 720p.

Allowed values480p720p1080p4k

Default 720p

return_last_framebooleanOptional

Also returns the last frame of the video as an image.

seedintegerOptional

Random seed. -1 or omitted picks one at random.

Minimum -1 · Maximum 4,294,967,295

watermarkbooleanOptional

Add a visible watermark. Defaults to false; the tier price is unchanged.

Default false

Full example request and response

A complete create request, the 202 answer and the task once it has succeeded. This input selects the 720p tier at 36.4 Credits per second. For 5 seconds the API holds 182.000 Credits.

Request

{
  "model": "seedance-2-0-pro",
  "input": {
    "content": [
      {
        "type": "text",
        "text": "A paper boat drifting on a pond at dawn, slow dolly in"
      }
    ],
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5
  },
  "metadata": {
    "client_reference": "my-unique-reference-1"
  }
}

202 Accepted

{
  "id": "gen_01JD8Z5QW3XR",
  "model": "seedance-2-0-pro",
  "source": "api",
  "created_at": "2026-11-08T09:00:00Z",
  "customer_resolution_deadline": "2026-11-09T09:00:00Z",
  "late_result_available": false,
  "metadata": {
    "client_reference": "my-unique-reference-1"
  },
  "status": "processing",
  "execution_status": "processing",
  "delivery_status": "pending",
  "billing_status": "pending",
  "version": 1,
  "price": {
    "unit": "credit",
    "estimated": "182.000",
    "reserved": "0.000",
    "charged": "0.000",
    "refunded": "0.000"
  },
  "allowed_actions": [],
  "closed_at": null,
  "error": null,
  "result": null
}

200 Succeeded

{
  "id": "gen_01JD8Z5QW3XR",
  "model": "seedance-2-0-pro",
  "source": "api",
  "created_at": "2026-11-08T09:00:00Z",
  "customer_resolution_deadline": "2026-11-09T09:00:00Z",
  "late_result_available": false,
  "metadata": {
    "client_reference": "my-unique-reference-1"
  },
  "status": "succeeded",
  "execution_status": "succeeded",
  "delivery_status": "ready",
  "billing_status": "settled",
  "version": 4,
  "price": {
    "unit": "credit",
    "estimated": "182.000",
    "reserved": "0.000",
    "charged": "182.000",
    "refunded": "0.000"
  },
  "allowed_actions": [],
  "closed_at": "2026-11-08T09:01:31Z",
  "error": null,
  "result": {
    "asset_id": "ast_01JD8Z9M2C4V",
    "outputs": [
      {
        "index": 0,
        "asset_id": "ast_01JD8Z9M2C4V",
        "content_type": "video/mp4"
      }
    ]
  }
}

Full API reference for Seedance 2.0 Pro