Video Generation

Generate short videos from text prompts using ByteDance Seedance 2.0 Fast. Video generation is asynchronous: submit a job, poll its status, then download the finished MP4.

What you get

Each generation produces one video with fixed settings, billed at a flat price per video:

  • Model: ByteDance Seedance 2.0 Fast
  • Duration: 8 seconds
  • Resolution: 1280×720 (16:9) with audio
  • Price: flat ¥250 per video, charged when your submission is accepted
POST
/openrouter/videos/create

1. Submit a job

POST your prompt (and an optional integer seed). A successful submission returns HTTP 202 with a job id.

Request
curl https://api.fastmetal.ai/openrouter/videos/create \
  -X POST \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d {"prompt": "A paper crane folds itself on a wooden desk, soft morning light"}
Response (202)
{
  "id": "AbCdEf123456",
  "status": "pending",
  "poll_path": "/openrouter/videos/jobs/AbCdEf123456"
}
GET
/openrouter/videos/jobs/{id}

2. Poll for completion

Poll the job every 15–30 seconds. Generation typically takes one to three minutes. Statuses: pending, in_progress, completed, failed.

Request
curl https://api.fastmetal.ai/openrouter/videos/jobs/AbCdEf123456 \
  -H "Authorization: Bearer YOUR_API_KEY"
Response
{
  "id": "AbCdEf123456",
  "status": "completed",
  "poll_path": "/openrouter/videos/jobs/AbCdEf123456",
  "content_path": "/openrouter/videos/jobs/AbCdEf123456/content"
}
GET
/openrouter/videos/jobs/{id}/content

3. Download the video

Once completed, download the MP4 from the content path. Download promptly — generated videos are retained upstream only for a limited time.

Request
curl https://api.fastmetal.ai/openrouter/videos/jobs/AbCdEf123456/content?index=0 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o video.mp4

Billing

  • The flat price is deducted from your key's balance once per accepted submission (HTTP 202).
  • Polling and downloading are free, as are rejected submissions (HTTP 4xx/5xx).
  • Do not retry after receiving a 202 — each accepted submission is billed. If you never received a 202, the request was not billed and is safe to retry.
  • If a job is accepted but later reaches status "failed", contact support with the job id for a service credit.

Limits

  • Duration, resolution, and model are fixed; requests with other values are rejected with HTTP 400.
  • Prompts are limited to 2,000 characters.
  • Video generation is rate-limited platform-wide; HTTP 429 means retry shortly.