Seedance 1.0 Lite API: Quick Video Generation Endpoint
Developer guide to the Seedance 1.0 Lite API — endpoint reference, authentication, parameters, code examples, and integration patterns for automated video generation.

A single POST request, a 30-60 second wait, and you get back a 1080p MP4. That's the whole Seedance 1.0 Lite API. For developers building automated video workflows — whether it's e-commerce product animations, ad creative pipelines, or content generation systems — this is the integration guide.
TL;DR
- Single POST endpoint takes image + motion prompt, returns a 1080p MP4
- Async job model: submit request, poll for completion, download result
- Per-call cost: $0.14-$0.84 based on duration (2-12 seconds)
- Typical end-to-end latency: 30-60 seconds
- 50 free credits on signup — enough to validate the integration before committing
- Same credit pool works across all Seedance and Seedream models
Why Developers Integrate the API
The UI version of Seedance 1.0 Lite is great for manual generation. The API unlocks the workflows that manual use can't support:
- Automated catalog animation — trigger a generation for every new SKU added to your e-commerce backend
- Ad creative pipelines — generate variants on a schedule, push to ad platforms via their APIs
- Content generation systems — feed CMS images into Seedance and get animated versions back
- Real-time user-generated workflows — let your own users upload an image and get an animated version
- Batch jobs — process 100s of source images overnight
At $0.14-$0.84 per call and 30-60 second turnaround, you can build production-grade video automation that would've been economically impossible 18 months ago.
Get your API key and start building
50 free credits cover a full integration test. 30-60 second generation per call, $0.14-$0.84 per video, no card required.
Try Seedance 1.0 Lite FreeGetting API Access
- Sign up on the platform — 50 free credits arrive immediately
- Navigate to API settings in your dashboard
- Generate an API key — store it securely (never commit to git)
- Optional: Buy a credit bundle at the pricing page — $10, $25, $50, or $100
Your 50 free credits work for API calls too. You can validate the full integration before paying anything.
The Request Model
The core interaction is a single POST to the Seedance 1.0 Lite generation endpoint.
Required parameters
| Parameter | Type | Description |
|---|---|---|
| image | string/file | Source image (URL or base64) |
| prompt | string | Motion description |
| duration | integer | Clip length in seconds (2-12) |
Optional parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| resolution | string | 1080p | 720p or 1080p |
| aspect_ratio | string | 16:9 | 16:9, 9:16, or 1:1 |
| camera_lock | boolean | true | Stabilize the camera |
| seed | integer | random | For reproducible output |
| webhook_url | string | null | POST here when job finishes |
Response model
The API returns a job ID and status. Generation is async — poll for completion or use a webhook.
{
"job_id": "sd1lite_abc123xyz",
"status": "processing",
"credits_charged": 42,
"estimated_time_seconds": 45,
"created_at": "2026-04-10T12:00:00Z"
}
When complete:
{
"job_id": "sd1lite_abc123xyz",
"status": "completed",
"video_url": "https://cdn.seedance.it.com/...",
"duration_seconds": 6,
"resolution": "1080p",
"credits_charged": 42,
"completed_at": "2026-04-10T12:00:45Z"
}
Authentication
All requests use bearer token authentication via the Authorization header:
Authorization: Bearer YOUR_API_KEY
API keys are tied to your account and charge against your credit balance. Rotate keys via the dashboard if you suspect a leak.
Code Example: Python
Here's a minimal Python integration that submits a job, polls for completion, and downloads the result.
import requests
import time
import os
API_KEY = os.environ["SEEDANCE_API_KEY"]
BASE_URL = "https://api.seedance.it.com/v1"
def generate_video(image_url, prompt, duration=6, aspect="9:16"):
# Submit the job
response = requests.post(
f"{BASE_URL}/seedance-1-lite/generate",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"image": image_url,
"prompt": prompt,
"duration": duration,
"resolution": "1080p",
"aspect_ratio": aspect,
"camera_lock": True,
},
)
job = response.json()
job_id = job["job_id"]
# Poll for completion
while True:
status_response = requests.get(
f"{BASE_URL}/jobs/{job_id}",
headers={"Authorization": f"Bearer {API_KEY}"},
)
status = status_response.json()
if status["status"] == "completed":
return status["video_url"]
if status["status"] == "failed":
raise Exception(f"Generation failed: {status.get('error')}")
time.sleep(5)
video_url = generate_video(
image_url="https://example.com/product.jpg",
prompt="Product rotates smoothly, highlights catch across the surface, camera completely locked",
duration=6,
aspect="1:1",
)
print(f"Video ready: {video_url}")
Code Example: Node.js
const axios = require('axios');
const API_KEY = process.env.SEEDANCE_API_KEY;
const BASE_URL = 'https://api.seedance.it.com/v1';
async function generateVideo(imageUrl, prompt, duration = 6, aspect = '9:16') {
// Submit the job
const { data: job } = await axios.post(
`${BASE_URL}/seedance-1-lite/generate`,
{
image: imageUrl,
prompt,
duration,
resolution: '1080p',
aspect_ratio: aspect,
camera_lock: true,
},
{
headers: { Authorization: `Bearer ${API_KEY}` },
}
);
// Poll for completion
while (true) {
const { data: status } = await axios.get(
`${BASE_URL}/jobs/${job.job_id}`,
{ headers: { Authorization: `Bearer ${API_KEY}` } }
);
if (status.status === 'completed') return status.video_url;
if (status.status === 'failed') throw new Error(status.error);
await new Promise((r) => setTimeout(r, 5000));
}
}
generateVideo(
'https://example.com/product.jpg',
'Product rotates smoothly, highlights catch across the surface, camera completely locked',
6,
'1:1'
).then((url) => console.log('Video ready:', url));
Webhook Pattern (Recommended for Production)
Polling works, but webhooks are cleaner at scale. Pass a webhook_url in your generation request and the API will POST the completion payload when the job finishes.
response = requests.post(
f"{BASE_URL}/seedance-1-lite/generate",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"image": image_url,
"prompt": prompt,
"duration": 6,
"webhook_url": "https://your-app.com/webhooks/seedance",
},
)
Your webhook handler receives the same completion JSON as the polling endpoint. No polling loop required.

Want to make this yourself? Try Seedance 1.0 Lite free →
Ready to try Seedance 1.0 Lite? Start creating free →
Rate Limits and Concurrency
| Tier | Concurrent Jobs | Daily Job Limit | |---|---|---| | Free | 2 | 20 | | Starter/Popular | 5 | 500 | | Pro/Enterprise | 10 | 2,000 | | Custom | Negotiable | Negotiable |
For higher concurrency or volume, contact support. The platform can support batch workloads of 10,000+ jobs/day on dedicated setups.
Error Handling
Standard HTTP status codes apply:
| Code | Meaning | What to do |
|---|---|---|
| 200 | Success | Process response |
| 400 | Bad request | Check parameters |
| 401 | Unauthorized | Verify API key |
| 402 | Insufficient credits | Top up balance |
| 429 | Rate limited | Back off and retry |
| 500 | Server error | Retry with exponential backoff |
For production integrations, always implement:
- Exponential backoff for 429 and 500 errors
- Credit balance checks before large batch runs
- Webhook signature validation if using webhooks
- Idempotency keys to prevent duplicate charges on network errors
Cost Management in Production
Every call charges credits at the standard rate: 7 credits per second of video.
| Duration | Credits | USD | |---|---|---| | 2 sec | 14 | $0.14 | | 6 sec | 42 | $0.42 | | 12 sec | 84 | $0.84 |
Production cost-control tips:
- Test prompts at 2 seconds before committing to 12-second batch runs
- Set a monthly credit budget and have your code halt when it's hit
- Monitor the
credits_chargedfield in each response to track spending per workflow - Use webhooks to avoid burning time on polling
- Cache successful results when possible so identical requests don't regenerate
Build automated video pipelines for pennies
$0.14 per API call, 30-60 second latency, 10+ concurrent jobs. The budget math that makes video automation viable.
Get Your API Key FreeReal Integration Patterns
E-commerce catalog animation
Trigger a Seedance 1.0 Lite job every time a new SKU is added to your catalog. Write the resulting MP4 URL to your product database. Display on PDPs automatically.
Ad creative pipeline
Daily cron job generates 10 new ad variants from different source images. Pushes MP4s directly to Meta Ads API as new creatives. Closes the loop between content generation and ad delivery.
User-generated content apps
Let users upload a photo in your app. Your backend calls Seedance 1.0 Lite with a templated prompt. Return the animated version to the user in under a minute. Charge users enough to cover the ~$0.30 API cost with healthy margin.
CMS enhancement
Hook into your CMS so that any new featured image gets a Seedance 1.0 Lite animated version generated automatically. Store both versions — static for fallback, animated for hero placements.
Batch catalog refresh
Nightly job regenerates animated versions of your top 500 products with seasonal motion prompts. Fresh creative without human intervention.
Upgrading to Pro or 2.0 via API
When a specific job needs premium quality, switch endpoints:
/seedance-1-lite/generate— $0.14-$0.84, fast, volume workhorse/seedance-1-pro/generate— $0.48-$2.88, premium motion, end-frame control/seedance-2.0/generate— $2.43-$9.10, cinema quality + native audio
Same API key, same credit pool, same auth. Switch models by calling a different endpoint. See the Pro comparison guide for when to upgrade.
Start Integrating Today
Sign up, grab your API key from the dashboard, and make your first call with the 50 free credits. The Python example above runs end-to-end in about 45 seconds and gives you a working integration pattern to build on.
Get your API key free → — 50 credits on signup, no card required, production-ready integration in under an hour.