BytedanceSeedance 2.5 Video API
v2.5 Livebytedance/seedance-2-5

Bytedance Seedance 2.5 API

High-performance cinematic AI video generation API. Supports text-to-video, dual-frame transitions, multi-modal audio generation, and up to 30-second single takes with dynamic camera movements.

POST/api/v1/jobs/createTask

Query Task Status & Webhook

After submitting a generation task, query the unified endpoint to check progress, or provide a callBackUrl to receive an instant webhook payload when rendering finishes.

GET/api/v1/jobs/recordInfo?taskId={taskId}
Poll or Webhook

Production Recommendation: Use the callBackUrl parameter in production to receive automated push notifications upon render completion, rather than high-frequency polling.

Important Architecture Guidelines
  • Image-to-Video (First Frame), Image-to-Video (First & Last Frames), and Multimodal Reference-to-Video (reference images, videos, and audios) are three mutually exclusive modes and cannot be supplied simultaneously.
  • If you pass last_frame_url, you must supply first_frame_url along with it.

Key Features

Text-to-Video

Generate cinematic 1080p videos directly from descriptive text prompts up to 30,000 characters.

Dual Frame Morphing

Provide first and last frame URLs for precision continuity and seamless looping transitions.

Dynamic Camera Control

Advanced orbital, dolly, pan, zoom motions with lens stabilization and lock modes.

Native Sound FX & Lip Sync

Automated environmental audio synthesis and speech matching directly baked into the MP4 file.

Authentication

All requests to /api/v1/* require a Bearer token in the Authorization header.

Authorization: Bearer <YOUR_API_KEY>

Request Parameters (JSON)

application/json
modelenum<string>Required

Target AI generation engine. Must be bytedance/seedance-2-5 for this endpoint.

Allowed: "bytedance/seedance-2-5", "seedance-2.5"
callBackUrlstring <uri>Optional

Webhook URL to receive POST completion callbacks when the video render completes or fails.

inputobjectRequired

Video generation parameters container holding prompt, reference assets, and render settings.

promptstringMax 30,000 chars

Text prompt describing visual scene, action, subject motion, camera directions, lighting, and sound atmosphere.

first_frame_urlstring <uri>

Opening frame URL (jpeg, png, webp). Mutually exclusive with reference arrays.

last_frame_urlstring <uri>

Ending frame image URL. Must be paired with first_frame_url.

reference_image_urlsarray[string <uri>]Max 30 items

List of image URLs for character, style, or subject continuity references.

resolutionenum<string>Default: "720p"

Target render resolution. Allowed: "480p", "720p", "1080p".

aspect_ratioenum<string>Default: "16:9"

Video dimensions. Allowed: "16:9", "9:16", "1:1", "4:3", "3:4", "21:9", "adaptive".

durationintegerRange: 4 - 30

Video length in seconds. Use -1 for auto-duration matching reference materials.

generate_audiobooleanDefault: true

Whether to synthesize matching ambient sound effects, speech, and soundtrack.

HTTP Status Codes

200 OKTask queued successfully with taskId
401 UnauthorizedInvalid or missing API key token
402 Insufficient QuotaCredits balance too low for render duration
422 Validation ErrorParameters violated schema or exclusivity rules
429 Rate LimitedRequest rate limit exceeded

Interactive Playground

Live API
curl -X POST "https://vidflux.org/api/v1/jobs/createTask" \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "bytedance/seedance-2-5",
    "callBackUrl": "https://your-domain.com/api/callback",
    "input": {
      "prompt": "A serene beach at sunset with waves gently crashing on the shore, palm trees swaying in the breeze, and seagulls flying across the orange sky",
      "resolution": "720p",
      "aspect_ratio": "16:9",
      "duration": 5,
      "generate_audio": true,
      "output_format": "mp4"
}
  }'
Response200 OK
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "task_seedance_25_example_894103"
  }
}