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

# Seedance 1.5 Pro Text-to-Video

This is an asynchronous API that returns a task\_id. Use the task\_id with the Query Task Result API to obtain the video generation result. It supports text-to-video, image-to-video (first frame), and image-to-video (first and last frames) generation.

<Tip>
  This is an **asynchronous** API and will only return the task\_id of the asynchronous task. You should use this task\_id to request the [Query Task Result API](/en/docs/models/reference-get-async-task-result) to retrieve the generation result.
</Tip>

## Request Headers

<ParamField header="Content-Type" type="string" required={true}>
  Enum value: `application/json`
</ParamField>

<ParamField header="Authorization" type="string" required={true}>
  Bearer authentication format: Bearer \{\{API key}}.
</ParamField>

## Request Body

<ParamField body="fps" type="integer" default={24}>
  Frame rate (frames per second). Only 24 fps is supported.

  Allowed value: `24`
</ParamField>

<ParamField body="seed" type="integer" default={-1}>
  Seed integer used to control randomness. Range: \[-1, 2^32-1]. -1 means using a random seed. The same seed and the same request will produce similar (but not exactly identical) results.

  Value range: \[-1, 4294967295]
</ParamField>

<ParamField body="ratio" type="string" default="adaptive">
  Aspect ratio of the generated video. 'adaptive': for text-to-video, the model intelligently selects the best ratio based on the prompt; for image-to-video, it is automatically selected based on the aspect ratio of the uploaded first-frame image.

  Allowed values: `16:9`, `4:3`, `1:1`, `3:4`, `9:16`, `21:9`, `adaptive`
</ParamField>

<ParamField body="prompt" type="string" required={true}>
  Text prompt describing the expected video content. Chinese and English are supported. We recommend keeping it under 500 characters. If you need to generate audio with dialogue, place the speech content inside double quotes for better audio generation results.
</ParamField>

<ParamField body="duration" type="integer" default={5}>
  Video duration, in seconds. Specified durations within the range \[4, 12] are supported. Note: duration affects billing.

  Value range: \[4, 12]
</ParamField>

<ParamField body="watermark" type="boolean" default={false}>
  Whether the generated video includes a watermark. true: with watermark. false: without watermark.
</ParamField>

<ParamField body="resolution" type="string" default="720p">
  Video resolution. Seedance 1.5 pro supports 480p, 720p, and 1080p.

  Allowed values: `480p`, `720p`, `1080p`
</ParamField>

<ParamField body="camera_fixed" type="boolean" default={false}>
  Whether to fix the camera position. true: the platform appends a fixed-camera instruction to the prompt (effect not guaranteed). false: do not fix the camera.
</ParamField>

<ParamField body="service_tier" type="string" default="default">
  Service tier for processing the request. 'default': online inference mode, with lower RPM and concurrency quotas, suitable for latency-sensitive scenarios. 'flex': offline inference mode, with a higher TPD quota and pricing at 50% of the online mode, suitable for scenarios that are not latency-sensitive.

  Allowed values: `default`, `flex`
</ParamField>

<ParamField body="generate_audio" type="boolean" default={true}>
  Whether the generated video includes synchronized audio. true: the video includes speech, sound effects, and background music automatically generated based on the prompt and visual content. false: output a silent video.
</ParamField>

<ParamField body="execution_expires_after" type="integer" default={172800}>
  Task timeout threshold, in seconds, calculated from the created\_at timestamp. Default: 172800 (48 hours). Range: \[3600, 259200]. Tasks exceeding this time will be automatically terminated and marked as 'expired'.

  Value range: \[3600, 259200]
</ParamField>

## Response Information

<ResponseField name="task_id" type="string" required={true}>
  The task\_id of the asynchronous task. You should use this task\_id to request the [Query Task Result API](/en/docs/models/reference-get-async-task-result) to obtain the generation result
</ResponseField>
