> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aireserve.com/llms.txt
> Use this file to discover all available pages before exploring further.

# seedance-2.0-bytedance

> Text-to-video, first/last-frame image-to-video and reference-to-video on one model id.

**Text-to-video** · ByteDance · served by ByteDance Ark · China-hosted

> [!WARNING]
>
> **Requires an organization opt-in:** China-hosted opt-in. Until an administrator enables it from the admin console the model is hidden from pickers and API requests to it are refused. See [organization consent gates](/models#organization-consent-gates).

## Call it

Endpoint: `POST /v1/videos/generations` — set `model` to `seedance-2.0-bytedance`.

```bash cURL theme={"dark"}
# Submit — answers 202 with a job id, then poll GET /v1/videos/generations/{id}
curl https://api.aireserve.com/v1/videos/generations \
  -H "Authorization: Bearer $AIRESERVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-bytedance",
    "prompt": "A drone shot over a misty pine forest at sunrise",
    "duration_seconds": 5
  }'
```

```bash cURL (submit, poll, download) theme={"dark"}
# 1) Submit — returns 202 with the job id
JOB=$(curl -s https://api.aireserve.com/v1/videos/generations \
  -H "Authorization: Bearer $AIRESERVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-bytedance",
    "prompt": "A drone shot over a misty pine forest at sunrise",
    "duration_seconds": 5
  }')
JOB_ID=$(echo "$JOB" | jq -r .id)

# 2) Poll every few seconds until the job is terminal
while :; do
  JOB=$(curl -s "https://api.aireserve.com/v1/videos/generations/$JOB_ID" \
    -H "Authorization: Bearer $AIRESERVE_API_KEY")
  STATUS=$(echo "$JOB" | jq -r .status)
  echo "status: $STATUS"
  case "$STATUS" in succeeded|failed) break ;; esac
  sleep 3
done

# 3) Download the result
curl -o clip.mp4 "$(echo "$JOB" | jq -r .result.video.url)"
```

Full request and response reference: [Video generation guide](/capabilities/video-generation).

## IDs & aliases

| Send as `model` | What it is |
| - | - |
| `seedance-2.0-bytedance` | Canonical gateway id |

## Specs

| Spec | Detail |
| - | - |
| Modality | Video — Text-to-video |
| Model maker | ByteDance |
| Served by | ByteDance Ark |
| Pricing | 480p \$0.067/s, 720p \$0.151/s, 1080p \$0.374/s, 4k \$0.778/s |
| Capabilities | Image input, Reference media |
| Hosting | China-hosted provider ([what that means](/models#china-hosted-models)) |
| Opt-ins | China-hosted opt-in |

Prices are public list rates at generation time and may lag the provider card; `GET /v1/models` and the portal's pricing page are authoritative for billing.

## Same weights, other providers

| Model id | Served by | Pricing |
| - | - | - |
| [`seedance-2.0`](/models/catalog/seedance-2.0) | fal | 480p \$0.141/s, 720p \$0.303/s, 1080p \$0.682/s, 4k \$1.56/s |

Same weights, different machines: speed, time to first token and cache behavior are the serving provider's. The unsuffixed id is the default we picked for reliability; pick a suffix when you need a specific provider's [data-handling terms](https://privacy.aireserve.com/data-handling).

> **[Browse all models](/models)**
>
> Search and filter every model by modality, maker, capability and price.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.