---
title: "Create an asynchronous Seedance video task"
method: POST
path: "/v1/videos"
tags: ["Generation"]
---

# Create an asynchronous Seedance video task

`POST /v1/videos`

## Request

- Base URL: `https://infer.flow7.org`
- URL: `https://infer.flow7.org/v1/videos`
- Auth: HTTP bearer

Reserves the full per-second Stable price ceiling before native submission. Returns an Infer-owned task id. A five-minute maintenance reconciler polls terminal state even if the client never does. No automatic paid retry is performed.

## Headers

- `Idempotency-Key` string

## Request body

- VideoCreateRequest
  - `model` string, required: seedance-2.0 / seedance-2.5, optionally using infer/<model>:stable.
  - `prompt` string, required
  - `duration` integer, required: Generated seconds. Seedance 2.0 is capped at 15 seconds; 2.5 at 30 seconds.
  - `seconds` integer: Alias for duration.
  - `resolution` '480p' | '720p', required
  - `image` string, uri: Optional public HTTPS reference image for image-to-video.
  - `idempotency_key` string

## Response `202`

Video task accepted

- VideoObject
  - `id` string, required: Infer-owned task id.
  - `task_id` string, required: Same Infer-owned task id; upstream task ids remain private.
  - `object` 'video', required
  - `model` string, required
  - `status` 'queued' | 'pending' | 'processing' | 'in_progress' | 'completed' | 'failed', required
  - `progress` unknown
  - `metadata` object
    - `url` string, uri: Authenticated Infer content endpoint after completion.
  - `relay` GenerationRelayMetadata
    - `request_id` string
    - `receipt_id` string
    - `price_version` string: Opaque reference (pv_…) to the immutable price version that priced this generation.
    - `tier` 'stable'
    - `customer_cost_usd` number
    - `reserved_cost_usd` number
    - `provider_disclosed` false

## Other responses

- `400`: The request could not be processed.
- `401`: A valid Bearer API key is required.
- `402`: The wallet cannot cover the request's reservation.
- `403`: The key, organization, environment, or scope cannot perform this operation.
- `404`: No active price exists for the requested selector in this environment.
- `409`: The idempotency key is in progress, expired, or otherwise cannot be replayed.
- `413`: The input or request body exceeds a configured limit.
- `422`: A selector, input, output limit, session identifier, or routing option is invalid.
- `429`: The request rate limit or an API-key spend ceiling was reached.
- `500`: Infer could not complete the operation.
- `503`: Live inference is disabled, no eligible route has capacity, or no route completed within the retry budget.

---

[API](https://skmtc.dev/flow7/apis/infer-by-flow7-public-api.md) · [All operations](https://skmtc.dev/flow7/apis/infer-by-flow7-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flow7/apis/infer-by-flow7-public-api/revisions/e73ecffd3cf3?raw)
