Seedance API
Zabudujte generování videa přímo do svého produktu s modely Seedance 2.5 nebo Seedance 2.0, asynchronními úlohami, webhooky a účtováním podle kreditů.
https://api.seevio.aiNa této stránce
Úvod
Rozhraní API umožňuje programaticky odesílat úlohy generování videa pro modely Seedance 2.5 a Seedance 2.0. Doporučeným modelem je Seedance 2.5, který podporuje převod textu na video, převod obrázku na video (z prvního snímku nebo z prvního a posledního snímku) a multimodální převod referencí na video. Generování probíhá asynchronně: vytvoříte úlohu, okamžitě obdržíte její ID a hotové video pak získáte buď dotazováním (polling) na koncový bod úlohy, nebo prostřednictvím webhooku.
Asynchronní úlohy
Dotazování (polling) se dobře hodí pro vývoj a jednoduché integrace.
Podpora webhooků
Pro produkční prostředí doporučujeme webhooky, protože eliminují agresivní dotazování a upozorní vaši službu, jakmile úloha dosáhne konečného stavu.
Správa kreditů
Kredity jsou rezervovány při odeslání požadavku. U úspěšných úloh se strhnou z této rezervace; u neúspěšných úloh nebo při vypršení časového limitu se automaticky vrátí.
Ověření
Vytvořte si API klíč v dashboardu a posílejte jej v každém požadavku jako Bearer token. Celý klíč se zobrazí pouze jednou při jeho vytvoření.
Authorization: Bearer sk_live_xxxxxxxxPro produkční provoz používejte klíče sk_live_.
Pro testování integrace v sandboxu se stejným chováním API používejte klíče sk_test_.
Chybějící, neplatné nebo zneplatněné klíče vrátí chybu invalid_api_key s kódem HTTP 401.
Rychlý start
Nejprve odešlete úlohu. Po jejím přijetí zvolte jeden ze způsobů doručení výsledku: dotazujte se na koncový bod úlohy, nebo přijměte konečný výsledek přes webhook.
Vytvořte asynchronní video úlohu a okamžitě obdržíte ID úlohy.
curl https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5",
"callback_url": "https://your-domain.com/api/seedance/webhook",
"input": {
"prompt": "a cat surfing on a neon wave, cinematic lighting",
"generation_type": "text-to-video",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p",
"generate_audio": true,
"watermark": false,
"web_search": false,
"return_last_frame": false
}
}'Dotazujte se na stavový koncový bod úlohy, pokud vaše integrace preferuje explicitní polling.
curl https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
-H "Authorization: Bearer sk_live_xxx"Při odesílání úlohy předejte parametr callback_url a následně přijímejte zpětná volání o dokončení či selhání, podle kterých aktualizujete své vlastní záznamy.
export async function POST(request: Request) {
const callbackData = await request.json();
if (callbackData.status === "completed") {
const videoUrl = callbackData.data.results[0];
// Save the video URL or update your own task record here.
}
if (callbackData.status === "failed") {
const errorMessage = callbackData.data.failed_reason;
// Mark your own task record as failed here.
}
return new Response(null, { status: 200 });
}Vytvořit video úlohu
Vytvořte video úlohu pomocí POST /v1/videos/generations. Tělo požadavku obsahuje parametr model na nejvyšší úrovni, volitelný callback_url a objekt input s promptem a nastavením generování.
/v1/videos/generationscurl https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5",
"callback_url": "https://your-domain.com/api/seedance/webhook",
"input": {
"prompt": "a cat surfing on a neon wave, cinematic lighting",
"generation_type": "text-to-video",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p",
"generate_audio": true,
"watermark": false,
"web_search": false,
"return_last_frame": false
}
}'Režimy generování
Parametr generation_type určuje, jaké mediální vstupy jsou přijímány a jak je model interpretuje.
Nastavte parametr model na seedance-2-5 pro generování výstupu v rozlišení 480p nebo 720p o délce od 4 do 30 sekund.
- Převod textu na video s adaptivním poměrem stran nebo poměry 16:9, 9:16, 1:1, 4:3, 3:4 či 21:9
- Převod obrázku na video z jednoho počátečního snímku nebo ze dvou snímků (počátečního a koncového); poměr stran musí být nastaven na adaptive
- Referenční video s využitím až 30 obrázků, 10 videí a 10 audio souborů (maximálně 50 materiálů celkem)
- Každá video nebo audio reference musí mít délku 2 až 30 sekund; celková délka videí i celková délka audia nesmí překročit 30 sekund
- Podporován je čistě zvukový referenční vstup a parametr return_last_frame; parametr seed podporován není
| Režim | Vyžadovaná média | Volitelná média | Poznámky |
|---|---|---|---|
text-to-video | prompt | duration, aspect_ratio, resolution, seed | Pouze textový prompt. Parametry image_urls, video_urls a audio_urls nejsou potřeba. |
image-to-video | prompt + pole image_urls (1-2 URL obrázků) | duration, aspect_ratio, resolution, seed | image_urls musí být pole. Zadejte 1 URL obrázku pro první snímek, nebo 2 URL pro první a poslední snímek. Video a audio jsou ignorovány. |
reference-to-video | prompt + alespoň jedna reference obrázku, videa nebo zvuku | obrázky, videa a audio v rámci limitů materiálů | Seedance 2.5 podporuje čistě zvukové reference. U modelu Seedance 2.0 přidejte při zadání zvuku alespoň jeden obrázek nebo video. |
text-to-videoPoužijte převod textu na video, pokud je prompt jediným kreativním vstupem.
curl https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5",
"callback_url": "https://your-domain.com/api/seedance/webhook",
"input": {
"prompt": "a cinematic drone shot over a futuristic coastal city at sunrise",
"generation_type": "text-to-video",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p",
"generate_audio": true,
"watermark": false,
"web_search": false,
"return_last_frame": false
}
}'image-to-videoPoužijte převod obrázku na video, pokud je input.image_urls pole s 1 až 2 URL adresami obrázků: jedna URL určí první snímek, dvě URL určí první a poslední snímek. Video a audio reference jsou v tomto režimu ignorovány.
curl https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5",
"input": {
"prompt": "the subject turns toward camera, soft studio motion",
"generation_type": "image-to-video",
"image_urls": ["https://your.cdn.com/first-frame.jpg"],
"duration": 5,
"resolution": "720p"
}
}'reference-to-videoPoužijte referenční video pro detailnější režii s využitím referenčních obrázků, videí a zvuku. Seedance 2.5 přijímá audio jako jediný typ reference; Seedance 2.0 vyžaduje při zadání audia alespoň jeden obrázek nebo video.
Limity materiálů
- Seedance 2.5: až 30 referenčních obrázků
- Seedance 2.5: až 10 referenčních videí, každé 2-30 sekund, celková délka <= 30 sekund
- Seedance 2.5: až 10 referenčních audio souborů, každý 2-30 sekund, celková délka <= 30 sekund
- Seedance 2.5: maximálně 50 materiálů celkem napříč všemi typy
- Varianty Seedance 2.0 si zachovávají své stávající limity: 9 obrázků, 3 videa, 3 audia a maximálně 15 sekund na skupinu videí/audia
Podporované kombinace vstupů
curl https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5",
"input": {
"prompt": "use the product from image 1 and the camera motion from the reference video",
"generation_type": "reference-to-video",
"image_urls": ["https://your.cdn.com/product.jpg"],
"video_urls": ["https://your.cdn.com/camera-motion.mp4"],
"audio_urls": [],
"duration": 8,
"resolution": "720p"
}
}'Parametry požadavku
Názvy parametrů, hodnoty enumů, cesty ke koncovým bodům a příklady jsou pevnou součástí API kontraktu. Níže uvedené popisy vysvětlují chování jednotlivých polí.
Hlavičky
| Hlavička | Vyžadováno | Popis | Příklad |
|---|---|---|---|
Authorization | Ano | Bearer API klíč použitý k ověření požadavku. | Bearer sk_live_xxx |
Content-Type | Ano | Všechny zápisové požadavky používají JSON. | application/json |
Pole nejvyšší úrovně
| Pole | Typ | Vyžadováno | Výchozí | Rozsah / Enum | Režimy | Příklad |
|---|---|---|---|---|---|---|
modelVarianta modelu použitá pro generování. Použijte seedance-2-5 pro Seedance 2.5, seedance-2-0 pro Seedance 2.0, seedance-2-0-fast pro Seedance 2.0 Fast nebo seedance-2-0-mini pro Seedance 2.0 Mini. | string | Ano | - | seedance-2-5 | seedance-2-0 | seedance-2-0-fast | seedance-2-0-mini | vše | seedance-2-5 |
callback_urlHTTPS koncový bod, který obdrží zpětné volání při dokončení nebo selhání úlohy. | string | Ne | - | HTTPS URL, privátní sítě nejsou povoleny | vše | https://your-domain.com/hook |
inputNastavení generování a mediální reference. | object | Ano | - | - | vše | - |
input.* pole
| Pole | Typ | Vyžadováno | Výchozí | Rozsah / Enum | Režimy | Příklad |
|---|---|---|---|---|---|---|
input.promptTextový popis (prompt) videa, které se má vytvořit. | string | Ano | - | neprázdný text | vše | a cat surfing |
input.generation_typeRežim generování. Výchozí hodnota je text-to-video. | string | Ne | text-to-video | text-to-video | image-to-video | reference-to-video | - | image-to-video |
input.image_urlsVeřejně dostupné URL adresy obrázků. Pro režim obrázek na video odešlete 1 obrázek pro první snímek nebo 2 obrázky pro první a poslední snímek. Pro referenční video přijímá Seedance 2.5 až 30 obrázků a Seedance 2.0 až 9. | string[] | Podmíněně | [] | Obrázek na video: 1 nebo 2 obrázky. Referenční video: až 30 pro Seedance 2.5; až 9 pro Seedance 2.0. | image-to-video / reference-to-video | ["https://.../a.jpg"] |
input.video_urlsVeřejně dostupné referenční video soubory (pouze pro referenční video). Seedance 2.5 přijímá až 10 videí, každé o délce 2-30 sekund s celkovou délkou přehrávání <= 30 sekund. Seedance 2.0 přijímá až 3 videa s celkovou délkou přehrávání <= 15 sekund. | string[] | Ne | [] | Seedance 2.5: až 10 videí, každé 2-30 sekund, celková délka <= 30 sekund. Seedance 2.0: až 3 videa, celková délka <= 15 sekund. | reference-to-video | [] |
input.audio_urlsVeřejně dostupné referenční audio soubory (pouze pro referenční video). Seedance 2.5 přijímá až 10 audio souborů, každý o délce 2-30 sekund s celkovou délkou přehrávání <= 30 sekund, a umožňuje i čistě zvukové reference. Seedance 2.0 přijímá až 3 soubory s celkovou délkou přehrávání <= 15 sekund. | string[] | Ne | [] | Seedance 2.5: až 10 audio souborů, každý 2-30 sekund, celková délka <= 30 sekund. Seedance 2.0: až 3 soubory, celková délka <= 15 sekund. | reference-to-video | [] |
input.durationDélka výstupního videa v sekundách. | int | Ne | 5 | Seedance 2.5: 4-30 sekund. Seedance 2.0: 4-15 sekund. | vše | 5 |
input.aspect_ratioPoměr stran výstupu. Hodnota adaptive umožní službě odvodit nejlepší poměr. Režim obrázek na video u Seedance 2.5 podporuje pouze adaptive. | string | Ne | adaptive | 16:9 | 4:3 | 1:1 | 3:4 | 9:16 | 21:9 | adaptive | vše | 16:9 |
input.resolutionÚroveň rozlišení výstupu. | string | Ne | 720p | Seedance 2.5: 480p | 720p. Seedance 2.0: 480p | 720p | 1080p | 4k (podle varianty). | vše | 720p |
input.generate_audioZda má model generovat zvuk, pokud je podporován. | boolean | Ne | true | true | false | vše | true |
input.watermarkZda se má přidat vodoznak. | boolean | Ne | false | true | false | vše | false |
input.web_searchZda se má povolit dohledávání informací na webu, pokud je podporováno. | boolean | Ne | false | true | false | vše | false |
input.return_last_frameZda se má vrátit URL posledního snímku, pokud je k dispozici. | boolean | Ne | false | true | false | vše | false |
input.seedDeterministický seed pro varianty Seedance 2.0. Model Seedance 2.5 toto pole nepodporuje; nevyplňujte jej. | int | Ne | -1 | -1 nebo 0-4294967295 | vše | -1 |
Cena v kreditech se liší podle rozlišení, délky, modelu a toho, zda referenční video obsahuje video reference. Hodnota credits vrácená v odpovědi na vytvoření úlohy představuje skutečnou rezervovanou částku pro danou úlohu.
Zobrazit ceny v kreditechOdpověď
Toto je úspěšná odpověď z POST /v1/videos/generations. Znamená to, že úloha byla přijata a kredity byly rezervovány. Použijte vrácené taskId pro dotazování přes GET /v1/tasks/:id nebo pro párování se zpětným voláním o dokončení či selhání.
Úspěšná odpověď z POST /v1/videos/generations
{
"taskId": "3f2aK9mR...",
"credits": 100
}Získat stav úlohy
Pro získání aktuálního stavu úlohy použijte GET /v1/tasks/:id. Dotazujte se maximálně jednou za 10 sekund. V produkčních systémech dávejte přednost webhookům.
curl https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
-H "Authorization: Bearer sk_live_xxx"Odpověď u dokončené úlohy
{
"id": "3f2aK9mR...",
"status": "completed",
"created_at": 1781234567,
"model": "seedance-2-5",
"billing_status": "charged",
"credits": 100,
"failed_reason": null,
"data": {
"results": ["https://cdn.seevio.ai/.../x.mp4"],
"video_expires_at": "2026-06-13T10:00:00Z",
"last_frame_url": null,
"processing_time": 48
}
}Odpověď u neúspěšné úlohy
{
"id": "3f2aK9mR...",
"status": "failed",
"created_at": 1781234567,
"model": "seedance-2-5",
"billing_status": "refunded",
"credits": 100,
"failed_reason": "provider_failed"
}| Hodnota | Význam |
|---|---|
status=queued | Úloha byla přijata a čeká na odeslání nebo zpracování. |
status=generating | Poskytovatel zpracovává generování. |
status=completed | Video bylo úspěšně vygenerováno a data.results obsahuje výslednou URL adresu. |
status=failed | Generování selhalo nebo vypršel časový limit. |
billing_status=reserved | Kredity jsou rezervovány po celou dobu zpracování úlohy. |
billing_status=charged | Úloha byla úspěšná a rezervace byla zúčtována. |
billing_status=refunded | Úloha selhala nebo vypršel časový limit a kredity byly vráceny. |
billing_status=refund_failed | Transakce vrácení kreditů selhala a vyžaduje manuální vyřešení. |
Po uplynutí času v video_expires_at je pole data.results prázdné. Soubor si stáhněte a uložte ještě před koncem doby platnosti.
Webhooky
Pokud je nastaven parametr callback_url, Seedance po dokončení nebo selhání úlohy zavolá váš koncový bod a odešle JSON data s výsledkem. Pokud váš koncový bod vrátí jiný kód než 2xx nebo neodpoví do 15 sekund, pokus o doručení se opakuje až 5krát. Opakované pokusy používají stejné task id, proto odstraňujte duplicity podle ID. Jakmile data z webhooku bezpečně uložíte, ihned vraťte odpověď s kódem 200.
Zpětné volání při dokončení úlohy
{
"id": "3f2aK9mR...",
"status": "completed",
"created_at": 1781234567,
"model": "seedance-2-5",
"data": {
"results": ["https://cdn.seevio.ai/.../x.mp4"],
"video_expires_at": "2026-06-13T10:00:00Z",
"last_frame_url": null,
"processing_time": 48
}
}Zpětné volání při selhání úlohy
{
"id": "3f2aK9mR...",
"status": "failed",
"created_at": 1781234567,
"model": "seedance-2-5",
"data": {
"failed_reason": "provider_failed",
"credits_refunded": 100
}
}export async function POST(request: Request) {
const callbackData = await request.json();
if (callbackData.status === "completed") {
const videoUrl = callbackData.data.results[0];
// Save the video URL or update your own task record here.
}
if (callbackData.status === "failed") {
const errorMessage = callbackData.data.failed_reason;
// Mark your own task record as failed here.
}
return new Response(null, { status: 200 });
}Ověřte strukturu dat webhooku, odstraňte duplicity podle ID, aktualizujte vlastní záznam o úloze a rychle odpovězte.
callback_url musí používat protokol HTTPS a nesmí směřovat do privátních, loopbackových nebo lokálních síťových rozsahů.
Chyby
POST /v1/videos/generations a GET /v1/tasks/:id vrací tuto chybovou strukturu v případě, že selže samotný požadavek na API (např. neplatné parametry, neplatný API klíč, nedostatek kreditů, překročení limitu požadavků nebo nenalezení úlohy). Některé chyby obsahují další pole jako required, available nebo retry_after v závislosti na situaci.
{
"error": {
"code": "insufficient_credits",
"message": "Not enough credits for this task.",
"required": 100,
"available": 12
}
}| Kód | HTTP | Význam | Opakovat? |
|---|---|---|---|
invalid_request | 400 | Chybějící nebo neplatné parametry. | Ne, opravte požadavek. |
invalid_api_key | 401 | API klíč chybí, je neplatný nebo byl zneplatněn. | Ne, použijte platný klíč. |
insufficient_credits | 402 | Nedostatek kreditů. Úloha nebyla přijata ani naúčtována. | Po dobití. |
forbidden | 403 | API klíč nemá požadované oprávnění (scope). | Ne. |
not_found | 404 | Úloha neexistuje nebo nepatří majiteli klíče. | Ne. |
rate_limited | 429 | Byl překročen limit četnosti požadavků. | Ano, postupujte podle hlavičky Retry-After. |
internal_error | 500 | Chyba serveru. | Ano, zkuste to znovu později. |
Limity četnosti
Limity četnosti se uplatňují na každý API klíč v klouzavém okně. Pro generování je výchozí limit 100 požadavků za minutu; dotazy na stav jsou benevolentnější. Odpovědi HTTP 429 obsahují hlavičku Retry-After.
Generování
100/min
Dotazy na stav
Benevolentnější
Hlavička 429
Retry-After
Platby a kredity
API využívá systém rezervace při odeslání, zaúčtování při úspěchu a vrácení kreditů při selhání. Stránky s využitím v dashboardu zobrazují historii API kreditů, protokoly úloh a časové statistiky využití.
Rezervováno
Kredity jsou zkontrolovány a rezervovány v okamžiku přijetí úlohy.
Zaúčtováno
Dokončené úlohy vypořádají stávající rezervaci.
Vráceno
U selhaných úloh nebo při vypršení časového limitu se rezervované kredity automaticky vrátí.
Kontrola využití v dashboardu
Zobrazte si protokoly API, časové osy úloh, historii kreditů a metriky využití v čase.