Seedance 2.0 API: Documentation, Pricing & Quick Start Guide

E
Emma Chen·6 min read·Feb 22, 2026
Share on X
Seedance 2.0 API: Documentation, Pricing & Quick Start Guide

Seedance 2.0 API: A Practical Guide for Developers

Quick Answer: The Seedance API lets developers integrate AI video generation into their apps via a simple REST interface. It is available through ByteDance's API platform with pay-per-use pricing. Full guide and code samples below.

Last Updated: March 2026

The Seedance 2.0 API lets developers integrate AI video generation directly into their applications. This guide covers what the API actually does, how it compares to alternatives, and how to get started.

What the Seedance 2.0 API Does

The Seedance 2.0 API gives you programmatic access to generate videos from text prompts and images. Instead of using the web interface, you submit generation jobs via HTTP requests, poll for completion, and retrieve video URLs.

Ready to try it yourself?

Free credits on signup. Plans from $20/month.

Try Seedance free

Core capabilities:

  • Text-to-video generation (Seedance 2.0 model)
  • Image-to-video generation (animate a reference image)
  • Async job submission with status polling
  • Output in MP4 format, 1080p HD
  • Up to ~10 seconds per generation

What it does not do:

  • No real-time streaming output (generation takes time)
  • No built-in video editing
  • No audio generation (unlike Google Veo 3)
  • Generation queue times vary under load

Seedance API vs Competing APIs

Before building, it's worth comparing your options honestly.

API Output Quality Audio Pricing Model Access
Seedance 2.0 Strong (1080p) ❌ No Credits-based Available now
Runway API Cinematic ❌ No $0.05-0.10/sec Developer access
Kling API Good motion ❌ No Credits-based Available
Google Veo 3 (Vertex) Best quality ✅ Yes ~$0.35/sec Google Cloud
Pika API Lower quality ❌ No Credits-based Limited

When Seedance API makes sense:

  • You want good quality without Google Cloud setup complexity
  • You're building a product that needs reliable credits-based pricing
  • You want access to multiple models in one API (Seedance 1.5 for speed, 2.0 for quality)

When to consider alternatives:

  • Need highest possible quality → Google Veo 3 (Vertex AI)
  • Need native audio generation → Google Veo 3
  • Need advanced camera controls → Runway API

Getting Started

Step 1: Get Your API Key

Sign up at seedance.tv and navigate to your account settings. API access is available on paid plans starting at $9.9/month.

Store your API key as an environment variable — never hardcode it in source files:

export SEEDANCE_API_KEY="your-api-key-here"

Step 2: Submit a Generation Job

The API uses an asynchronous pattern: you submit a job and poll for completion.

import requests
import time
import os

API_KEY = os.environ["SEEDANCE_API_KEY"]
BASE_URL = "https://api.seedance.tv/v1"

def generate_video(prompt: str, model: str = "seedance-2.0"):
    """Submit a text-to-video generation job."""
    response = requests.post(
        f"{BASE_URL}/videos",
        headers={
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json"
        },
        json={
            "prompt": prompt,
            "model": model,
            "aspect_ratio": "16:9",
            "resolution": "1080p"
        }
    )
    response.raise_for_status()
    return response.json()["job_id"]

Step 3: Poll for Completion

def wait_for_completion(job_id: str, poll_interval: int = 5, timeout: int = 300):
    """Poll until the video generation completes."""
    start_time = time.time()
    
    while time.time() - start_time < timeout:
        response = requests.get(
            f"{BASE_URL}/videos/{job_id}",
            headers={"Authorization": f"Bearer {API_KEY}"}
        )
        response.raise_for_status()
        data = response.json()
        
        status = data["status"]
        
        if status == "completed":
            return data["output_url"]
        elif status == "failed":
            raise Exception(f"Generation failed: {data.get('error', 'Unknown error')}")
        
        # Still processing
        print(f"Status: {status} ({int(time.time() - start_time)}s elapsed)")
        time.sleep(poll_interval)
    
    raise TimeoutError(f"Generation did not complete within {timeout} seconds")

# Usage
job_id = generate_video("A slow dolly shot through a neon-lit Tokyo street at night, rain reflections on wet pavement, cinematic 1080p")
video_url = wait_for_completion(job_id)
print(f"Video ready: {video_url}")

Step 4: Image-to-Video

For animating a reference image:

def generate_from_image(image_url: str, prompt: str):
    """Animate a reference image."""
    response = requests.post(
        f"{BASE_URL}/videos",
        headers={
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json"
        },
        json={
            "prompt": prompt,
            "model": "seedance-2.0",
            "image_url": image_url,
            "type": "image-to-video",
            "aspect_ratio": "16:9"
        }
    )
    response.raise_for_status()
    return response.json()["job_id"]

Prompt Engineering for the API

The quality of your output depends heavily on prompt structure. Here are patterns that consistently work:

Good text-to-video prompt structure:

[Shot type], [Subject description], [Action/motion], [Environment], [Lighting], [Style]

Example:

Close-up tracking shot, woman walking through a sun-drenched olive grove, hair catching the breeze, warm afternoon light through leaves, cinematic shallow depth of field

Common mistakes that waste API credits:

Too vague:

A beautiful video

Too many competing elements:

A man and a woman and a dog at the beach and also a sunset and waves and mountains in the background

Missing motion description:

A coffee cup on a table

Better: A coffee cup on a wooden table, steam rising slowly, soft natural window light from the left, macro lens

Choosing the right model:

Model Use when Credit cost
seedance-2.0 Final output, client deliverables, brand video Higher
seedance-1.5 Drafting, iteration, testing concepts Lower
kling-3.0 Action scenes, character movement Medium
veo-3.1 Reference-heavy scenes, high detail Medium

Recommended workflow: Draft with seedance-1.5, refine prompt, then generate final with seedance-2.0. This cuts API costs during iteration.

Aspect Ratios

ASPECT_RATIOS = {
    "landscape": "16:9",   # YouTube, desktop, ads
    "portrait": "9:16",    # TikTok, Instagram Reels, Shorts
    "square": "1:1",       # Instagram posts
    "cinema": "21:9"       # Cinematic widescreen
}

Error Handling

def safe_generate(prompt: str, max_retries: int = 3):
    """Generate with retry logic for transient failures."""
    for attempt in range(max_retries):
        try:
            job_id = generate_video(prompt)
            return wait_for_completion(job_id)
        except requests.HTTPError as e:
            if e.response.status_code == 429:
                # Rate limited — back off
                wait = 30 * (attempt + 1)
                print(f"Rate limited. Waiting {wait}s...")
                time.sleep(wait)
            elif e.response.status_code == 402:
                raise Exception("Insufficient credits. Top up your account at seedance.tv")
            else:
                raise
        except TimeoutError:
            if attempt < max_retries - 1:
                print(f"Timeout on attempt {attempt + 1}, retrying...")
            else:
                raise
    raise Exception("Max retries exceeded")

Rate Limits and Credit Usage

  • Rate limit: Varies by plan. Check your dashboard for current limits.
  • Credits per generation: Depends on model, duration, and resolution. Dashboard shows live credit balance.
  • Best practice for production: Implement a job queue rather than submitting many simultaneous requests. Staggered submissions avoid rate limit errors and are more cost-effective.

Use Cases This API Is Well-Suited For

Product video automation: E-commerce platforms generating video from product images at scale. Feed a product image + brand voice prompt → automated video clips for each SKU.

Social media pipelines: Scheduled content systems that generate a week's video content from an approved prompt list. Combine with a video queue tool for hands-off publishing.

Ad creative testing: Marketing tools that generate multiple visual interpretations of the same concept for A/B testing. Generate 5 variations of an ad concept in one batch.

Prototype generation: Design and product teams generating concept videos before committing to production. Far cheaper than traditional production for early-stage visualization.

Building a Simple Video Generation Pipeline

import json
from pathlib import Path

def batch_generate(prompts: list[dict], output_dir: str = "./videos"):
    """Generate multiple videos from a list of prompt configs."""
    Path(output_dir).mkdir(exist_ok=True)
    results = []
    
    for i, config in enumerate(prompts):
        print(f"Generating {i+1}/{len(prompts)}: {config['name']}")
        
        try:
            # Use fast model for drafts, premium for finals
            model = "seedance-2.0" if config.get("final") else "seedance-1.5"
            job_id = generate_video(config["prompt"], model=model)
            url = wait_for_completion(job_id)
            
            results.append({
                "name": config["name"],
                "url": url,
                "status": "success"
            })
            print(f"  ✓ {url}")
            
        except Exception as e:
            results.append({
                "name": config["name"],
                "error": str(e),
                "status": "failed"
            })
            print(f"  ✗ Failed: {e}")
        
        # Small delay between submissions
        time.sleep(2)
    
    # Save results
    with open(f"{output_dir}/results.json", "w") as f:
        json.dump(results, f, indent=2)
    
    return results

# Example usage
prompts = [
    {"name": "hero-shot", "prompt": "...", "final": True},
    {"name": "product-demo", "prompt": "...", "final": False},
]
results = batch_generate(prompts)

Frequently Asked Questions

Does Seedance 2.0 have an official public API?

Seedance offers API access as part of paid plans. Check the developer documentation on seedance.tv for current access details and endpoint specifications.

How does pricing work?

API usage draws from your credit balance. Different models cost different credit amounts per generation. Check your dashboard for current credit rates per model.

What is the generation time per video?

Typically 30 seconds to 3 minutes depending on model complexity and queue load. Seedance 1.5 is faster; Seedance 2.0 takes longer but produces higher quality.

Can I generate videos longer than 10 seconds?

Not with a single API call currently. For longer content, generate multiple clips and stitch them together in your application using a video processing library like moviepy or ffmpeg.

Is the output suitable for commercial use?

Check the current terms of service on seedance.tv for commercial licensing details. Generally, content generated on paid plans is licensed for commercial use.

How does the Seedance API compare to Runway's API?

Runway's API ($0.05-0.10/second) offers more advanced camera controls and the Gen-3 Alpha model. Seedance API uses credits-based pricing which is more predictable for budget planning. Runway wins on cinematic polish and camera control; Seedance wins on model variety and pricing clarity. For most developers, try both on your specific use case — results vary significantly by content type.


Start Building

Ready to integrate AI video into your application?

Sign up at Seedance → — get free credits to test the API, paid plans from $9.9/month.


Conclusion: Our Seedance Verdict

After extensive testing, our recommendation is clear: Seedance is one of the top AI video generators in 2025, particularly excelling at character consistency and smooth motion. For creators who need reliable, high-quality AI video generation, Seedance is a strong choice alongside Veo 3.

Best choice for: Narrative content, character-driven videos, marketing content, and social media creators who need consistent visual identity.

Bottom line: Seedance delivers professional-quality AI video generation with a generous free tier. We recommend starting with a free account and testing your first video today at seedance.tv.

Ready to try it yourself?

Put the steps from this guide into practice with Seedance and turn prompts or images into polished videos in minutes.

Free credits on signup. Plans from $20/month.