AI GPT ImageAI GPT Image
Video ModelsSeedance

Seedance 2.0 Text to Video

Get API Keyseedance-2.0-text-to-video

Seedance 2.0 Text to Video API Documentation

Generate video content using the seedance-2.0-text-to-video model

Overview

This document describes how to use the seedance-2.0-text-to-video model for text-to-video generation.

The integration flow consists of two steps:

  1. Create a generation task
  2. Query task status and results

Authentication

All API requests require a Bearer Token in the request header:

Authorization: Bearer YOUR_API_KEY

Get API Key:

  1. Open the API Keys page
  2. Click Create API Key
  3. Add the key to the request header: Authorization: Bearer YOUR_API_KEY

1. Create Generation Task

API Information

  • URL: POST https://aigptimage.com/api/v1/jobs/createTask
  • Content-Type: application/json

Request Parameters

ParameterTypeRequiredDescription
modelstringYesPublic model ID. Must be exactly seedance-2.0-text-to-video
inputobjectYesInput parameters object

Model Parameter

The model parameter specifies which public video model to use.

PropertyValueDescription
Formatseedance-2.0-text-to-videoExact public model identifier
TypestringMust be passed as a string
RequiredYesMandatory for all create task requests

Note: The model value must match exactly and use the public model ID shown on this page.

input Object Parameters

prompt

  • Type: string
  • Required: Yes
  • Description: Text prompt describing the video to generate
  • Max Length: 20000 characters

aspect_ratio

  • Type: string
  • Required: No
  • Description: Convenience field accepted by the public API and internally mapped to ratio
  • Common Options: 16:9, 9:16, 1:1

ratio

  • Type: string
  • Required: No
  • Description: Output video ratio. If both ratio and aspect_ratio are provided, ratio takes priority
  • Common Options: 16:9, 9:16, 1:1

resolution

  • Type: string
  • Required: No
  • Description: Output resolution used for generation and billing
  • Options: 480p, 720p, 1080p

duration

  • Type: number
  • Required: No
  • Description: Video duration in seconds

generate_audio

  • Type: boolean
  • Required: No
  • Description: Whether to generate audio for the output video
  • Default Value: false
  • Type: boolean
  • Required: No
  • Description: Whether to enable web search assistance before generation
  • Default Value: false

nsfw_checker

  • Type: boolean
  • Required: No
  • Description: Controls platform-side content filtering for the generated result
  • Default Value: false
  • Behavior: If set to false, platform-side content filtering is disabled and the model result is returned directly

Credit Consumption

The current public credit rule for seedance-2.0-text-to-video is:

ResolutionCredits per second
480p20
720p40
1080p80

Request Example

{
  "model": "seedance-2.0-text-to-video",
  "input": {
    "prompt": "A slow dolly shot through a futuristic botanical lab with soft volumetric light",
    "ratio": "16:9",
    "resolution": "720p",
    "duration": 5,
    "generate_audio": false,
    "nsfw_checker": false
  }
}

Response Example

{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "task_xxxxxxxxxxxxx"
  }
}

Response Parameters

ParameterTypeDescription
codeintegerResponse status code. 200 means success
msgstringResponse message
data.taskIdstringTask ID used to query task status

2. Query Task Status

API Information

  • URL: GET https://aigptimage.com/api/v1/jobs/recordInfo
  • Parameter: taskId (URL query parameter)

Request Example

GET https://aigptimage.com/api/v1/jobs/recordInfo?taskId=task_xxxxxxxxxxxxx

Response Example

{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "task_xxxxxxxxxxxxx",
    "model": "seedance-2.0-text-to-video",
    "state": "waiting",
    "param": "{\"model\":\"seedance-2.0-text-to-video\",\"input\":{\"prompt\":\"A slow dolly shot through a futuristic botanical lab with soft volumetric light\",\"ratio\":\"16:9\",\"resolution\":\"720p\",\"duration\":5,\"generate_audio\":false}}",
    "resultJson": null,
    "failCode": null,
    "failMsg": null,
    "costTime": null,
    "completeTime": null,
    "createTime": 1757584164490
  }
}

Response Parameters

ParameterTypeDescription
codeintegerResponse status code. 200 means success
msgstringResponse message
data.taskIdstringTask ID
data.modelstringPublic model ID
data.statestringTask status: waiting, success, fail
data.paramstringOriginal create task request parameters as JSON string
data.resultJsonstring | nullResult JSON string. For video tasks it contains resultUrls when successful
data.failCodestring | nullFailure code when the task fails
data.failMsgstring | nullFailure message when the task fails
data.costTimeinteger | nullTask duration in milliseconds after completion
data.completeTimeinteger | nullCompletion timestamp in milliseconds
data.createTimeintegerCreation timestamp in milliseconds

Success Result Structure

For video generation tasks, resultJson usually has this structure:

{
  "resultUrls": ["https://your-cdn.example.com/result-1.mp4"]
}

Usage Flow

  1. Call POST /api/v1/jobs/createTask
  2. Extract taskId from the response
  3. Poll GET /api/v1/jobs/recordInfo?taskId=...
  4. Wait until state becomes success or fail
  5. Read output video URLs from resultJson when the task succeeds

Notes

  • API calls use the same credit balance and billing rules as the web app
  • resolution, duration, and audio settings affect credit consumption
  • ratio takes precedence over aspect_ratio when both are provided

Error Codes

Status CodeDescription
200Request successful
400Invalid request parameters
401Authentication failed or API key is invalid
402Insufficient credits
404Task or resource not found
409Active task limit exceeded or request conflict
422Parameter validation failed
429Request rate limit exceeded
500Internal server error
Seedance 2.0 Text to Video