Skip to main content
Fhddos gives you two ways to call Doubao Seedance video generation models: a familiar OpenAI-style interface at /v1/videos that mirrors the Sora/Veo API shape, and the native VolcArk interface at /volcark/api/v3/contents/generations/tasks that closely follows official VolcArk documentation. Both interfaces share the same task ID system and support text-to-video (T2V) and image-to-video (I2V) generation.
Both interfaces submit tasks asynchronously. Create a task, then poll for completion. Neither interface blocks while the video is being generated.
export BASE_URL="https://aiapi.fhddos.com"
export TOKEN="oh-xxxxxxxxxxxxxxxx"
Authorization: Bearer <TOKEN>
Content-Type: application/json

Available Models

Model NameTypeNotes
doubao-seedance-1-5-proText-to-videoHigh-quality Pro with audio support (generate_audio)
doubao-seedance-1-0-proText-to-videoHigh-quality, longer duration support
doubao-seedance-1-0-pro-fastText-to-videoFaster variant of Pro
doubao-seedance-1-0-lite-t2vText-to-videoLightweight, cost-efficient
doubao-seedance-1-0-lite-i2vImage-to-videoRequires a reference image in the request
Image-to-video models (doubao-seedance-1-0-lite-i2v) require an image reference in every request. Omitting it returns an error: image to video models require image in content.

Option A: OpenAI-Style Interface (/v1/videos)

Use this interface when you want to keep your codebase aligned with OpenAI Sora/Veo conventions. All task IDs are prefixed with video_.

Endpoints

ActionMethodPath
Create taskPOST/v1/videos
Query taskGET/v1/videos/{id}
Download videoGET/v1/videos/{id}/content

Text-to-Video (T2V)

curl -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-1-0-pro-fast",
    "prompt": "City street lights streaming at night, motion blur effect",
    "seconds": 8,
    "size": "1280x720"
  }'
Example response:
{
  "id": "video_01KB1Y6FT0QMDKS0Y1YYYSS4D0",
  "object": "video",
  "status": "queued",
  "model": "doubao-seedance-1-0-pro-fast",
  "seconds": 8,
  "size": "1280x720"
}
The id field always starts with video_ and is consistent across the task panel and all query endpoints.

Image-to-Video (I2V)

Pass a reference image URL in input_reference:
curl -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-1-0-lite-i2v",
    "prompt": "Oil painting style ocean sunset scene",
    "seconds": 6,
    "size": "720x1280",
    "input_reference": [
      "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_first_frame.png"
    ]
  }'
input_reference accepts a string array, a single string, or a stringified JSON array.

Query Task Status

Poll the task ID returned at creation:
export VIDEO_ID="video_01KB1Y6FT0QMDKS0Y1YYYSS4D0"

curl "$BASE_URL/v1/videos/$VIDEO_ID" \
  -H "Authorization: Bearer $TOKEN"
Completed task response:
{
  "id": "video_01KB1Y6FT0QMDKS0Y1YYYSS4D0",
  "object": "video",
  "status": "completed",
  "model": "doubao-seedance-1-0-pro-fast",
  "seconds": 8,
  "size": "1280x720",
  "video_url": "https://proxy.fhddos.cloud/video/01KB1Y6FT0QMDKS0Y1YYYSS4D0.mp4"
}
Status values: queuedin_progresscompleted / failed The video_url is Fhddos’s proxy URL — the upstream source domain is never exposed.

Download Video

curl -L "$BASE_URL/v1/videos/$VIDEO_ID/content" \
  -H "Authorization: Bearer $TOKEN" \
  -o seedance-output.mp4

VolcArk Field Compatibility

When using /v1/videos with Seedance models, you can also pass native VolcArk fields alongside the OpenAI fields:
VolcArk FieldNotes
durationAlias for seconds
ratioAspect ratio (e.g. 16:9)
resolutione.g. 720p, 1080p
watermarkBoolean watermark control
generate_audiokling-v2-6 style audio (only doubao-seedance-1-5-pro)
camera_fixedCamera motion lock
Model constraints:
Modelseconds RangeMax input_reference Imagesresolution Options
doubao-seedance-1-5-pro4–122480p, 720p
doubao-seedance-1-0-pro2–122480p, 720p, 1080p
doubao-seedance-1-0-pro-fast2–121480p, 720p, 1080p

Option B: Native VolcArk Interface

Use this interface when you want your request body to match the official VolcArk API documentation directly.

Endpoints

ActionMethodPath
Create taskPOST/volcark/api/v3/contents/generations/tasks
Query taskGET/volcark/api/v3/contents/generations/tasks/{task_id}
List tasksGET/volcark/api/v3/contents/generations/tasks
Cancel taskDELETE/volcark/api/v3/contents/generations/tasks/{task_id}

Text-to-Video (T2V)

The request body uses a content array of typed content items:
curl -X POST "$BASE_URL/volcark/api/v3/contents/generations/tasks" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-1-0-pro",
    "content": [
      {"type": "text", "text": "A boy playing with a puppy on a grass field"}
    ],
    "duration": 6,
    "ratio": "16:9",
    "resolution": "720p"
  }'
Example response:
{
  "id": "cgt-xxxx",
  "platform_id": "video_<PlatformTaskID>"
}
Two IDs are returned:
  • id: The native VolcArk task ID (e.g. cgt-2025...). Use this with VolcArk official documentation.
  • platform_id: Fhddos’s global tracking ID with video_ prefix. This matches the ID shown in the task panel.

Image-to-Video (I2V)

Include both a text and an image_url item in content:
curl -X POST "$BASE_URL/volcark/api/v3/contents/generations/tasks" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-1-0-lite-i2v",
    "content": [
      {
        "type": "text",
        "text": "Oil painting style ocean sunset scene"
      },
      {
        "type": "image_url",
        "image_url": {
          "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_first_frame.png"
        }
      }
    ],
    "duration": 5,
    "ratio": "9:16",
    "resolution": "720p"
  }'
Match the reference image aspect ratio to the target ratio for best results (e.g. use a portrait image for 9:16).

Query Task Status

Query using either the native Ark ID or the Fhddos platform ID:
# Using Ark native ID
curl "$BASE_URL/volcark/api/v3/contents/generations/tasks/cgt-xxxx" \
  -H "Authorization: Bearer $TOKEN"

# Using Fhddos platform ID (recommended)
curl "$BASE_URL/volcark/api/v3/contents/generations/tasks/video_<PlatformTaskID>" \
  -H "Authorization: Bearer $TOKEN"
Completed task response:
{
  "id": "cgt-xxxx",
  "platform_id": "video_<PlatformTaskID>",
  "model": "doubao-seedance-1-0-pro-250528",
  "status": "succeeded",
  "content": {
    "video_url": "https://xxx/xxx.mp4",
    "last_frame_url": "https://xxx/last_frame.png",
    "width": 1280,
    "height": 720
  },
  "duration": 6,
  "framespersecond": 16,
  "usage": {
    "video_tokens": 123456
  }
}
Status values: queuedrunningsucceeded / failed / cancelled

List and Cancel Tasks

# List tasks with pagination
curl "$BASE_URL/volcark/api/v3/contents/generations/tasks?page_num=1&page_size=20" \
  -H "Authorization: Bearer $TOKEN"

# Cancel a task
curl -X DELETE "$BASE_URL/volcark/api/v3/contents/generations/tasks/cgt-xxxx" \
  -H "Authorization: Bearer $TOKEN"
Supported list query parameters: page_num, page_size, filter.status, filter.task_ids, filter.model.

Interface Comparison

DimensionNative VolcArk /volcark/...OpenAI Style /v1/videos
Create path/volcark/api/v3/contents/generations/tasks/v1/videos
Request bodymodel + content[{type, text/image_url}]model + prompt + seconds + size + input_reference
Task ID formatArk id (no prefix) + platform_idvideo_<PlatformTaskID>
Query path/volcark/api/v3/contents/generations/tasks/{id}/v1/videos/{id}
Choose OpenAI style if you want alignment with Sora/Veo conventions. Choose native VolcArk if you want to follow the official VolcArk API documentation exactly.

Troubleshooting

The model is set to an I2V variant but no image was provided. Add an image_url content item (native interface) or pass input_reference (OpenAI interface).
Poll GET /volcark/api/v3/contents/generations/tasks/{id} and check the status and error fields. If the task doesn’t terminate, cancel it with DELETE and resubmit. The platform records all task durations and errors for debugging.
Text-to-video models: doubao-seedance-1-5-pro, doubao-seedance-1-0-pro, doubao-seedance-1-0-pro-fast, doubao-seedance-1-0-lite-t2v. Image-to-video models: doubao-seedance-1-0-lite-i2v. Dynamically check the model name suffix (t2v vs i2v) to enforce image requirements in your code.