Skip to main content
POST
/
api
/
v3
/
contents
/
generations
/
tasks
doubao-seedance-1-0-pro-250528 (Text to Video)
curl --request POST \
  --url https://api.example.com/api/v3/contents/generations/tasks

API Key Authentication

GPTProto API uses Bearer token authentication. All API requests must include your API key (sk-xxxxx) in the Authorization header.

Getting Your API Key

  1. Sign up for a GPTProto account at https://gptproto.com
  2. Navigate to the API Keys section in your dashboard
  3. Generate a new API key
  4. Copy and securely store your API key For authentication details, please refer to the Authentication section.

Initiate Request

curl --location --request POST 'https://gptproto.com/api/v3/contents/generations/tasks' \
--header 'Authorization: GPTPROTO_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "model": "doubao-seedance-1-0-pro-250528",
    "content": [
        {
            "type": "text",
            "text": "Multiple shots. A detective enters a dimly lit room. He examines the clues on the table and picks up an item. The camera shifts to him deep in thought."
        }
    ],
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 12
}'

Response Example

{
    "id": "cgt-20251225201056-abc"
}

Query Result

curl -X GET "https://gptproto.com/api/v3/contents/generations/tasks/{id}" \
  -H "Authorization: GPTPROTO_API_KEY" \
  -H "Content-Type: application/json"

Response

{
    "id": "cgt-20251225195352-123",
    "model": "doubao-seedance-1-5-pro-251215",
    "status": "succeeded",
    "content": {
        "video_url": "https://example.com/video.mp4"
    },
    "usage": {
        "completion_tokens": 260100,
        "total_tokens": 260100
    },
    "seed": "16108",
    "resolution": "720p",
    "duration": 12,
    "ratio": "16:9",
    "created_at": "1766663633",
    "updated_at": "1766663715",
    "framespersecond": 24
}

Parameters

Core Parameters

ParameterTypeRequiredDefaultRangeDescription
modelstring✅ Yes--The ID of the model you want to call. You need to enable model service and query the Model ID. You can also call the model through Endpoint ID to get advanced capabilities such as rate limiting, billing type (prepaid/postpaid), running status query, monitoring, and security.
contentarray✅ Yes--Information input to the model for video generation, supporting text and image information.
>content.typestring✅ Yes-text
image_url
Type of input content. Use text for text input, image_url for image input (supports image URL or Base64 encoding).
>content.textstring✅ Yes (if type is text)--Text content input to the model, describing the expected video to be generated.
>content.image_urlobject✅ Yes (if type is image_url)--Image object input to the model.
>>content.image_url.urlstring✅ Yes (if image_url is used)--Image information, which can be an image URL or Base64 encoded image.
>content.rolestring❌ No-first_frame
last_frame
reference_image
Position or purpose of the image. Different roles correspond to different video generation scenarios. See Video Generation Scenarios for details.
generate_audioboolean❌ Notrue-Whether to include synchronized sound with the video. Only supported by Seedance 1.5 pro.

Advanced Parameters

Note: Different models may support different parameter options. For more details, please refer to the Model Field Compatibility table.
ParameterTypeRequiredDefaultRangeDescription
resolution (rs)string❌ No720p/1080p480p
720p
1080p
Video resolution. Default values vary by model.
ratio (rt)string❌ No16:9/adaptive16:9
4:3
1:1
3:4
9:16
21:9
adaptive
Aspect ratio of the generated video.
duration (dur)integer❌ No5[2, 12]Duration of the generated video in seconds.
frames (frames)integer❌ No-[29, 289] (25+4n)Number of frames of the generated video.
framespersecond (fps)integer❌ No2424Frame rate of the video in frames per second.
seed (seed)integer❌ No-1[-1, 2^32-1]Seed integer for controlling randomness.
camerafixed (cf)boolean❌ Nofalse-Whether to fix the camera.
watermark (wm)boolean❌ Nofalse-Whether to include watermark in the generated video.

Model Field Compatibility


resolution (rs): Video resolution
Seedance 1.5 pro, Seedance 1.0 lite default value: 720p Seedance 1.0 pro&pro-fast default value: 1080p
Enumeration values:
  • 480p
  • 720p
  • 1080p: Not supported in reference image scenario; temporarily not supported by Seedance 1.5 pro

ratio (rt): Aspect ratio of the generated video. See Aspect Ratio & Resolution for pixel values corresponding to different aspect ratios.
Default for Text-to-Video is generally 16:9 Default for Image-to-Video is generally adaptive. Note: Default for Reference Image Video Generation is 16:9 Seedance 1.5 pro default is adaptive
Enumeration values:
  • 16:9
  • 4:3
  • 1:1
  • 3:4
  • 9:16
  • 21:9
  • adaptive: Automatically selects the most appropriate aspect ratio based on the ratio of the uploaded first frame image.

duration (dur) or frames (frames):
Seedance 1.5 pro does not support frames temporarily Choose either duration or frames; frames has higher priority than duration. If you want to generate videos with fractional seconds, it is recommended to specify frames.

Video Generation Scenarios

First frame video generation, first and last frame video generation, and reference image video generation are three mutually exclusive scenarios and cannot be mixed.
{
    "content": [
        {
            "type": "text",
            "text": "Multiple shots. A detective enters a dimly lit room. He examines the clues on the table and picks up an item. The camera shifts to him deep in thought. --ratio 16:9"
        }
    ]
}
Scenariocontent.roleSupported ModelsDescription
Text-to-VideoNot applicable (text only)Seedance 1.5 pro
Seedance 1.0 pro
Seedance 1.0 pro fast
Seedance 1.0 lite (doubao-seedance-1-0-lite-t2v)
Generate video from text prompts only.
Image-to-Video (First Frame)Optional, or first_frameAll image-to-video modelsGenerate video from a first frame image. Requires 1 image_url object.
Image-to-Video (First & Last Frame)First frame: first_frame
Last frame: last_frame
Seedance 1.5 pro
Seedance 1.0 pro
Seedance 1.0 lite (doubao-seedance-1-0-lite-i2v)
Generate video from first and last frame images. Requires 2 image_url objects with both roles specified.
Image-to-Video (Reference Images)reference_imageSeedance 1.0 lite (doubao-seedance-1-0-lite-i2v)Generate video from reference images. Requires 1-4 image_url objects, all with reference_image role.
For First & Last Frame scenario
  • You can pass the same image for both first and last frame.
  • If the aspect ratios of first and last frame images are inconsistent, the system will prioritize the first frame and automatically crop the last frame to match.

Aspect Ratio & Resolution

ResolutionAspect RatioWidth x Height (Seedance 1.0)Width x Height (Seedance 1.5 pro)
480p16:9864×480864×496
480p4:3736×544752×560
480p1:1640×640640×640
480p3:4544×736560×752
480p9:16480×864496×864
480p21:9960×416992×432
720p16:91248×7041280×720
720p4:31120×8321112×834
720p1:1960×960960×960
720p3:4832×1120834×1112
720p9:16704×1248720×1280
720p21:91504×6401470×630
1080p16:91920×1088-
1080p4:31664×1248-
1080p1:11440×1440-
1080p3:41248×1664-
1080p9:161088×1920-
1080p21:92176×928-

Text Command Parameters

You can append --[parameters] after the text prompt to control video output specifications, including aspect ratio, frame rate, resolution, etc.
{
  "content": [
    {
      "type": "text",
      "text": "A kitten yawning at the camera. --rs 720p --rt 16:9 --dur 5 --fps 24 --wm true --seed 11 --cf false"
    }
  ]
}

Error Codes

Common Error Codes

Error CodeError NameDescription
401UnauthorizedAPI key is missing or invalid
403ForbiddenYour API key doesn’t have permission to access this resource, or insufficient balance for the requested operation
429Too Many RequestsYou’ve exceeded your rate limit
500Internal server errorAn internal server error occurred
503Content policy violationContent blocked due to safety concerns (actual status code is 400)