UlazAI developer docs

Developer documentation

Seedance 1.5 Pro API

Generate cinematic audio-video clips with Seedance 1.5 Pro. Supports text-to-video and image-to-video with optional native audio.

🎬 Audio-Video: Create 4-12 second clips in 480p or 720p with optional sound effects, music, and dialogue.

✨ Seedance 1.5 Pro Features

βœ… Text-to-Video generation

βœ… Image-to-Video guidance (up to 2 images)

βœ… 4s, 8s, or 12s durations

βœ… 480p or 720p resolution

βœ… Optional native audio

βœ… Stable characters and smooth motion

Authentication

All API requests require a Bearer token:

Authorization: Bearer YOUR_API_KEY

Get an API key from your dashboard under API Keys (go to /dashboard/).

POST /seedance/upload/

Upload Input Image

Upload an image for image-to-video guidance. Returns a permanent URL to use in generation requests.

Request Headers

Authorization: Bearer YOUR_API_KEY
Content-Type: multipart/form-data

Form Data Parameters

file * (file)

JPG, PNG, WebP (max 10MB).

Success Response (200)

{
  "success": true,
  "url": "https://media.ulazai.com/seedance_images/u1_abc123.jpg",
  "filename": "seedance_images/u1_abc123.jpg"
}

Example Usage (cURL)

curl -X POST https://api.ulazai.com/seedance/upload/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@/path/to/image.jpg"
POST /seedance/generate/

Create Generation Task

Create a Seedance 1.5 Pro video generation. You can send a simplified payload or use the model + input structure.

Request Body (Simple)

{
  "prompt": "A cinematic close-up of a chef flipping noodles in slow motion",
  "input_urls": ["https://media.ulazai.com/seedance_images/u1_abc123.jpg"],
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "duration": "8",
  "fixed_lens": true,
  "generate_audio": true,
  "prompt_directory_optin": true
}

Request Body (Model/Input Style)

{
  "model": "bytedance/seedance-1.5-pro",
  "input": {
    "prompt": "A cinematic close-up of a chef flipping noodles in slow motion",
    "input_urls": ["https://media.ulazai.com/seedance_images/u1_abc123.jpg"],
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "duration": "8",
    "fixed_lens": true,
    "generate_audio": true
  }
}

Parameters

prompt * (string)

3-2500 characters describing the video.

input_urls (array)

Optional. Up to 2 image URLs for image-to-video.

aspect_ratio (string)

One of: 1:1, 21:9, 4:3, 3:4, 16:9, 9:16.

resolution (string)

480p or 720p.

duration (string)

4, 8, or 12 seconds.

fixed_lens (boolean)

Enable for a stable camera view.

generate_audio (boolean)

Enable to generate audio. Adds credits.

prompt_directory_optin (boolean)

Optional. Share to the prompt directory (available for high-tier options only). Discount applies when eligible.

Success Response (200)

{
  "success": true,
  "generation_id": "abc12345-1234-1234-1234-123456789012",
  "task_id": "seedance_task_xyz789",
  "credits_used": 42,
  "directory_discount_applied": true,
  "message": "Video generation started. This may take a few minutes."
}
GET /seedance/status/{generation_id}/

Query Task Status

Poll for the status of a Seedance 1.5 Pro generation.

Processing Response

{
  "success": true,
  "status": "processing",
  "message": "Video is being generated..."
}

Success Response (200)

{
  "success": true,
  "status": "completed",
  "video_url": "https://media.ulazai.com/seedance_outputs/video.mp4"
}

Usage Flow

  1. Call /seedance/generate/ with your prompt and parameters.
  2. Store the generation_id from the response.
  3. Poll /seedance/status/{generation_id}/ until status is completed.
  4. Use the video_url to download or embed the result.

Error Codes

400 Invalid request parameters

401 Authentication failed (missing or invalid API key)

402 Insufficient credits

429 Rate limit exceeded

500 Internal server error