Seedance 3.0 Geliştirici API'si / v1

Seedance 2.5.
Kendi ürününüzde.

Tek bir API ile metin, görsel ve referans medyayı videoya dönüştürün. Seedance 3.0 kredilerinizi ve mevcut iş akışınızı kullanın; istekten sonuca kadar açıkça tanımlanmış bir yapıyla entegrasyonunuzu geliştirin.

Ortak hesap kredileriAsenkron video görevleriİdempotent istekler
POST /api/v1/videos
{
  "model": "seedance-2.5",
  "mode": "text-to-video",
  "prompt": "A paper boat drifting into the morning light",
  "duration": 5,
  "resolution": "720p",
  "aspectRatio": "16:9"
}
Anahtarınız. Kredileriniz. Uygulamanız.
01 / GELİŞTİRMEYE BAŞLAYIN

Birkaç istekle ilk videonuz.

Anahtarınızı sunucunuzda SEADANCE_API_KEY olarak saklayın. SEADANCE_REQUEST_KEY değerini bu videoya özgü benzersiz bir değerle ayarlayın (örneğin uuidgen ile) ve yeniden denemelerde bu değeri koruyun. Hesabınızda yeterli kredi olduğundan emin olun. Bu örnek, 5 saniyelik 720p video için 350 kredi rezerve eder. Durumu sorgulamak için dönen id değerini kopyalayın.

Terminal
export SEADANCE_API_KEY="sd_live_your_key"
# Keep this value for retries; choose a new value for a new video.
export SEADANCE_REQUEST_KEY="${SEADANCE_REQUEST_KEY:-$(uuidgen)}"

curl --fail-with-body "https://seedance3ai.dev/api/v1/videos" \
  -H "Authorization: Bearer $SEADANCE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $SEADANCE_REQUEST_KEY" \
  --data '{
  "model": "seedance-2.5",
  "mode": "text-to-video",
  "prompt": "A paper boat floating through a sunlit stream, gentle camera movement",
  "aspectRatio": "16:9",
  "resolution": "720p",
  "duration": 5
}'

Bu dokümantasyon hiçbir zaman otomatik olarak üretim başlatmaz. Oluşturma isteği göndermek kredilerinizi kullanır.

Sunucunuzdan kimlik doğrulayın.

Her API çağrısında Authorization: Bearer sd_live_… kullanılır. Anahtarları tarayıcılara, mobil uygulamalara, herkese açık depolara veya istemci tarafı paketlere koymayın. Tam anahtar yalnızca bir kez gösterilir; API panelinden iptal edebilirsiniz.

Temel URLhttps://seedance3ai.dev/api/v1

Varsayılan anahtar yetkileri: yükleme ve üretim için videos:write; modeller ve görev durumu için videos:read; krediler için account:read. Hesap erişimi ve limitleri tüm anahtarlar için ortak geçerlidir.

Bir video görevi oluşturun.

POST/api/v1/videos

Content-Type: application/json kullanın ve planlanan her üretim için benzersiz bir Idempotency-Key belirleyin. Sunucunun görevi sağlayıcıya kabul ettirmesi zaman alabilir. Bağlantı zaman aşımına uğrarsa aynı gövdeyi aynı anahtarla tekrar gönderin. HTTP 202, tamamlandığını değil kabul edildiğini belirtir. Idempotency-Key, boşluk içermeyen 1–128 yazdırılabilir ASCII karakteri kabul eder.

ParametreDeğerler ve gereksinimler
modelstringseedance-2.5

Zorunlu. API şu anda Seedance 2.5 modelini destekler.

modestringtext-to-video | image-to-video | reference-to-video

Zorunlu. Girdi modunu seçin; medya alanları bu modla uyumlu olmalıdır.

promptstring3–30.000 karakter

Zorunlu. Sahneyi, hareketi ve sesi tarif edin.

durationinteger4, 5, 6, 8, 10, 12, 15, 20, 25, 29, 30

Zorunlu, saniye cinsindendir. Düzenlemede kaynak videonun süresi kullanılır ve ücretlendirme için tam saniyeye yukarı yuvarlanır.

resolutionstring480p | 720p | 1080p

Zorunlu. Kredi birim ücretini belirler.

aspectRatiostring1:1 | 4:3 | 3:4 | 16:9 | 9:16 | 21:9

Zorunlu. Görselden videoya üretim, ilk karenin en boy oranını kullanır.

firstFrameUrl / lastFrameUrlstringYüklenen dosyanın publicObjectUrl değeri

Görselden videoya üretim için ilk kare zorunludur. Son kare isteğe bağlıdır.

referenceImageUrlsstring[]En fazla 30 görsel

reference-to-video için kullanılır. Önce her dosyayı hesabınıza yükleyin.

referenceVideoUrls / referenceAudioUrlsstring[]En fazla 10 video / 10 ses dosyası

Her grubun toplam süresi en fazla 30 saniyedir. Sunucu, üretimden önce medyayı doğrular.

referenceTaskTypestringreference | edit | extend

İsteğe bağlıdır, varsayılanı reference değeridir. edit ve extend için reference-to-video modu ve tam olarak bir kaynak video gerekir.

generateAudiobooleantrue

İsteğe bağlıdır. Seedance 2.5 yerleşik ses üretimini içerir; false kabul edilmez.

batchCountinteger1

İsteğe bağlıdır. Her istekte bir video üretilir.

Seedance 2.5 bu alanlarla metin, ilk ve son kareler, çok modlu referanslar, video düzenleme ve uzatmayı destekler. Kullanılabilir özellikler ve fiyatlar için güncel ve esas alınacak kaynak GET /models yanıtıdır.

Görselden videoya istek örneği
request.json
{
  "model": "seedance-2.5",
  "mode": "image-to-video",
  "prompt": "A paper boat floating through a sunlit stream, gentle camera movement",
  "aspectRatio": "16:9",
  "resolution": "720p",
  "duration": 5,
  "firstFrameUrl": "YOUR_UPLOADED_PUBLIC_OBJECT_URL"
}
Referanstan videoya istek örneği
request.json
{
  "model": "seedance-2.5",
  "mode": "reference-to-video",
  "prompt": "A paper boat floating through a sunlit stream, gentle camera movement",
  "aspectRatio": "16:9",
  "resolution": "720p",
  "duration": 5,
  "referenceImageUrls": [
    "YOUR_UPLOADED_IMAGE_URL"
  ],
  "referenceVideoUrls": [
    "YOUR_UPLOADED_VIDEO_URL"
  ]
}
KENDİ REFERANSLARINIZI KULLANIN

Bir kez yükleyin. URL ile kullanın.

POST /uploads isteğine fileName, contentType, size (bayt) ve kind (image, video veya audio) gönderin. expiresAt süresinden önce requiredHeaders başlıklarını kullanarak ham dosya baytlarını PUT ile uploadUrl adresine yükleyin. Yükleme başarılı olduktan sonra üretim isteğinde publicObjectUrl kullanın. Referanslar aynı hesaba ait olmalıdır; rastgele harici URL'ler ve base64 girdileri kabul edilmez.

upload.mjs
// Node.js 20+ · upload once, then use publicObjectUrl
import { readFile } from "node:fs/promises";

const bytes = await readFile("./first-frame.jpg");
const signed = await fetch("https://seedance3ai.dev/api/v1/uploads", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SEADANCE_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    fileName: "first-frame.jpg", contentType: "image/jpeg",
    size: bytes.length, kind: "image",
  }),
});
const upload = await signed.json();
if (!signed.ok) throw new Error(JSON.stringify(upload));
const stored = await fetch(upload.uploadUrl, {
  method: "PUT", headers: upload.requiredHeaders, body: bytes,
});
if (!stored.ok) throw new Error("Upload failed");
console.log(upload.publicObjectUrl);
// Use this URL as firstFrameUrl in an image-to-video request.

Belirtilen boyut ve içerik türü yüklenen dosyayla eşleşmelidir. Yükleme URL'lerinin süresi dolar; gerektiğinde yeni bir URL isteyin. Medya süresi, boyutları ve biçimi üretimden önce doğrulanır.

Görevi tamamlanana kadar takip edin.

GET /videos/:id güncel görevi döndürür. Her 5–10 saniyede bir sorgulayın, succeeded veya failed durumunda durun ve Retry-After varsa bekleme süresine uyun. Yalnızca hesabınıza ait API görevleri sorgulanabilir. Mevcut entegrasyon periyodik sorgulama kullanır.

GET /api/v1/videos/:id
curl --fail-with-body "https://seedance3ai.dev/api/v1/videos/TASK_ID" \
  -H "Authorization: Bearer $SEADANCE_API_KEY"
queuedprocessingsucceeded / failed
Başarılı görev örneği
{
  "id": "a1b2c3d4-1234-4567-8901-abcdef123456",
  "status": "succeeded",
  "credits_reserved": 350,
  "created_at": "2026-10-27T00:00:00.000Z",
  "output": {
    "url": "https://your-result-host.example/video.mp4"
  },
  "error": null,
  "refund_status": "not_applicable"
}

Video hazır olana kadar output değeri null olur. Başarısız görev bir hata içerir; kredi iadesinin durumunu refund_status alanından kontrol edin. Başarılı sonuçları gecikmeden indirin. Videoyu silmek isteği sıfırlamaz: aynı Idempotency-Key ile tekrar gönderim 410 video_deleted döndürür ve videoyu yeniden oluşturamaz.

TEK HESAP, TEK BAKİYE

Geliştirmeden önce kredi maliyetini öğrenin.

API üretimi, web sitesiyle aynı hesap kredilerini ve Seedance 2.5 birim ücretlerini kullanır. İstek kabul edildiğinde krediler rezerve edilir. Başarısız üretimlerde bu krediler tek seferlik kredi bakiyenize iade edilir. Görev oluşturulmadan önceki doğrulama hatası, ücretli bir video oluşturmaz.

480p

30kredi / çıktı saniyesi

+ 20 kredi / referans video saniyesi

720p

70kredi / çıktı saniyesi

+ 50 kredi / referans video saniyesi

1080p

160kredi / çıktı saniyesi

+ 90 kredi / referans video saniyesi

Maliyet = çıktı süresi × çıktı birim ücreti + varsa referans video süresi × referans birim ücreti. Referans video süresi sunucuda ölçülür; toplam süre ücretlendirme için tam saniyeye aşağı yuvarlanır. Yerleşik ses dahildir. Örneğin 720p'de 5 saniye 350 kredi, 5 saniyelik referans videoyla birlikte ise 600 kredidir.

Modelleri, fiyatları ve bakiyenizi sorgulayın
curl --fail-with-body "https://seedance3ai.dev/api/v1/models" \
  -H "Authorization: Bearer $SEADANCE_API_KEY"

curl --fail-with-body "https://seedance3ai.dev/api/v1/credits" \
  -H "Authorization: Bearer $SEADANCE_API_KEY"

Kullanılabilir kredileri, istek geçmişini ve hesap limitlerini API panelinden görüntüleyin. Aynı hesabı kullanarak web sitesinin fiyatlandırma sayfasından kredi ekleyin; ayrı bir API bakiyesi veya API kredi yükleme uç noktası yoktur. Yeterli kullanılabilir krediniz varsa aktif abonelik gerekmez. Abonelik sona erme ve tek seferlik kredi kuralları web sitesi kullanımıyla aynıdır.

Kredi eklemek API istek sıklığı, eşzamanlılık veya günlük limitleri artırmaz ve devre dışı bırakılmış hesabı yeniden etkinleştirmez. Günlük limit, başarısız görevlerden iade edilenler dahil tüm rezerve kredileri sayar ve 00:00 UTC'de sıfırlanır. Uygulamanız daha yüksek limitlere ihtiyaç duyuyorsa destek ekibiyle iletişime geçin.

Planları görüntüle ve kredi ekle

Güvenle yeniden deneyin. Çift ücretlendirmeyi önleyin.

Planlanan her video için bir Idempotency-Key kullanın ve sonuç belli olana kadar bunu tam olarak aynı istek gövdesiyle birlikte saklayın. Yeni anahtarlar yeni üretimler anlamına gelir. Hata yanıtı error.code, error.message ve request_id içerir; destek ekibiyle iletişime geçerken istek kimliğini belirtin.

HTTPAnlamıSonraki adım
400Geçersiz istekYeniden denemeden önce hata mesajını, alanları ve medya kısıtlamalarını kontrol edin.
401Geçersiz API anahtarıBearer başlığını kontrol edin. İptal edilen anahtarlar yeniden kullanılamaz.
402Yetersiz krediAynı Seedance 3.0 hesabına kredi ekleyin.
403Erişim reddedildiAPI erişimi devre dışı veya anahtar gerekli yetkiye sahip değil.
404Video bulunamadıHesabınızın bu API üzerinden oluşturduğu bir görevin kimliğini kullanın.
409İstek çakışmasırequest_in_progress durumunda bekleyin ve aynı gövde ve anahtarla yeniden deneyin. idempotency_conflict, anahtarın farklı bir gövde için yeniden kullanıldığı anlamına gelir. request_expired veya request_previously_failed, video görevinin gönderilmediğini doğrular: bildirilen sorunu giderin, ardından yeni bir anahtar kullanın.
410Video silindivideo_deleted, ilk isteğin işlendiği ancak videosunun silindiği anlamına gelir. Aynı anahtarla yeniden üretim yapılamaz. Yeniden denemeyi durdurun; yalnızca bilinçli olarak yeni ve ücretli bir üretim başlatmak istediğinizde yeni bir anahtar kullanın.
429Hesap limitine ulaşıldıRetry-After değerine uyun. İstek sıklığı, eşzamanlı görev ve günlük kredi limitleri tüm anahtarlar için ortak geçerlidir. Günlük bütçeler 00:00 UTC'de sıfırlanır.
500 / 503Geçici hizmet hatasıIdempotency-Key değerini koruyun. Aynı isteği yeniden gönderin; sonucu belirsiz bir işlemden sonra yeni anahtar oluşturmayın.

Gönderim request_in_progress döndürürse bekleyin ve aynı isteği tekrarlayın. Sırf zaman aşımını aşmak için asla yeni bir anahtara geçmeyin. Başarısız bir görevin iadesi hâlâ beklemedeyse görev kimliğini saklayın ve destek ekibiyle iletişime geçin.

Entegrasyona hazır mısınız?

Bir anahtar oluşturun ve ilk entegrasyonunuzu geliştirin.

API panelini aç