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ů.

Základní URL
https://api.seevio.ai
Na 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_xxxxxxxx
sk_live_

Pro produkční provoz používejte klíče sk_live_.

sk_test_

Pro testování integrace v sandboxu se stejným chováním API používejte klíče sk_test_.

401

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.

Odeslat úlohu

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
    }
  }'
Možnost výsledku: Dotazování

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"
Možnost výsledku: Webhook

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í.

POST
/v1/videos/generations
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
    }
  }'

Režimy generování

Parametr generation_type určuje, jaké mediální vstupy jsou přijímány a jak je model interpretuje.

Možnosti Seedance 2.5
seedance-2-5

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žimVyžadovaná médiaVolitelná médiaPoznámky
text-to-videopromptduration, aspect_ratio, resolution, seedPouze textový prompt. Parametry image_urls, video_urls a audio_urls nejsou potřeba.
image-to-videoprompt + pole image_urls (1-2 URL obrázků)duration, aspect_ratio, resolution, seedimage_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-videoprompt + alespoň jedna reference obrázku, videa nebo zvukuobrá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-video

Použ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-video

Použ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-video

Použ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ů

Text + obrázek
Text + video
Text + audio (Seedance 2.5)
Text + obrázek + video
Text + obrázek + audio
Text + video + audio
Text + obrázek + video + audio
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čkaVyžadovánoPopisPříklad
AuthorizationAnoBearer API klíč použitý k ověření požadavku.Bearer sk_live_xxx
Content-TypeAnoVšechny zápisové požadavky používají JSON.application/json

Pole nejvyšší úrovně

PoleTypVyžadovánoVýchozíRozsah / EnumRežimyPříklad
model

Varianta 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.

stringAno-seedance-2-5 | seedance-2-0 | seedance-2-0-fast | seedance-2-0-minivšeseedance-2-5
callback_url

HTTPS koncový bod, který obdrží zpětné volání při dokončení nebo selhání úlohy.

stringNe-HTTPS URL, privátní sítě nejsou povolenyvšehttps://your-domain.com/hook
input

Nastavení generování a mediální reference.

objectAno--vše-

input.* pole

PoleTypVyžadovánoVýchozíRozsah / EnumRežimyPříklad
input.prompt

Textový popis (prompt) videa, které se má vytvořit.

stringAno-neprázdný textvšea cat surfing
input.generation_type

Režim generování. Výchozí hodnota je text-to-video.

stringNetext-to-videotext-to-video | image-to-video | reference-to-video-image-to-video
input.image_urls

Veř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_urls

Veř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_urls

Veř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.duration

Délka výstupního videa v sekundách.

intNe5Seedance 2.5: 4-30 sekund. Seedance 2.0: 4-15 sekund.vše5
input.aspect_ratio

Pomě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.

stringNeadaptive16:9 | 4:3 | 1:1 | 3:4 | 9:16 | 21:9 | adaptivevše16:9
input.resolution

Úroveň rozlišení výstupu.

stringNe720pSeedance 2.5: 480p | 720p. Seedance 2.0: 480p | 720p | 1080p | 4k (podle varianty).vše720p
input.generate_audio

Zda má model generovat zvuk, pokud je podporován.

booleanNetruetrue | falsevšetrue
input.watermark

Zda se má přidat vodoznak.

booleanNefalsetrue | falsevšefalse
input.web_search

Zda se má povolit dohledávání informací na webu, pokud je podporováno.

booleanNefalsetrue | falsevšefalse
input.return_last_frame

Zda se má vrátit URL posledního snímku, pokud je k dispozici.

booleanNefalsetrue | falsevšefalse
input.seed

Deterministický seed pro varianty Seedance 2.0. Model Seedance 2.5 toto pole nepodporuje; nevyplňujte jej.

intNe-1-1 nebo 0-4294967295vš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 kreditech

Odpověď

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"
}
HodnotaVýznam
status=queuedÚloha byla přijata a čeká na odeslání nebo zpracování.
status=generatingPoskytovatel zpracovává generování.
status=completedVideo bylo úspěšně vygenerováno a data.results obsahuje výslednou URL adresu.
status=failedGenerování selhalo nebo vypršel časový limit.
billing_status=reservedKredity 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_failedTransakce 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ódHTTPVýznamOpakovat?
invalid_request400Chybějící nebo neplatné parametry.Ne, opravte požadavek.
invalid_api_key401API klíč chybí, je neplatný nebo byl zneplatněn.Ne, použijte platný klíč.
insufficient_credits402Nedostatek kreditů. Úloha nebyla přijata ani naúčtována.Po dobití.
forbidden403API klíč nemá požadované oprávnění (scope).Ne.
not_found404Úloha neexistuje nebo nepatří majiteli klíče.Ne.
rate_limited429Byl překročen limit četnosti požadavků.Ano, postupujte podle hlavičky Retry-After.
internal_error500Chyba 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.

Protokoly API