Přejít na dokumentaci
Na této stránce

Dokumentace

Tvořte s API Seevio

Přidejte generování videa do svého produktu. Vyberte si model, odešlete požadavek a získejte výsledek pomocí dotazování (polling) nebo webhooku.

Výběr modelu

Referenční příručka každého modelu obsahuje kompletní parametry, ceny a příklady. Integraci můžete dokončit přímo ze stránky konkrétního modelu.

Ověření

Vytvořte si API klíč v administraci. Celý klíč se zobrazí pouze jednou. Uložte si ho na svém serveru a posílejte ho jako Bearer token v každém požadavku.

Základní URL

https://api.seevio.ai
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json

Před spuštěním těchto příkladů nastavte proměnnou prostředí SEEVIO_API_KEY. Příklady v JavaScriptu běží na vašem serveru v prostředí Node.js; příklady v Pythonu používají knihovnu requests.

Rychlý start

Tento příklad vygeneruje 5sekundové video v rozlišení 720p pomocí modelu Seedance 2.5. Otevřete si referenční dokumentaci modelu pro zobrazení všech režimů generování a limitů parametrů.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}'

Příklad odpovědi při vytvoření úlohy

Jakmile je výše uvedený požadavek přijat, API vrátí tuto odpověď ve formátu JSON. Hodnota taskId představuje identifikátor úlohy, který slouží k následnému dotazování na její stav. credits udává počet kreditů rezervovaných pro tuto úlohu. Tato odpověď pouze potvrzuje úspěšné vytvoření úlohy, nikoli to, že je video již hotové. Pro získání výsledného videa je nutné stav úlohy pravidelně kontrolovat (polling) nebo využít Webhook.

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 100
}

Dotaz na stav úlohy

GET https://api.seevio.ai/v1/tasks/{taskId}

Nahraďte ukázkové ID za taskId vrácené při vytvoření. Dotazy vracejí pouze úlohy patřící uživateli daného API klíče; nepřístupná nebo neznámá ID vrací HTTP 404.

Jako výchozí bod se dotazujte každých 10–20 sekund, při chybě HTTP 429 frekvenci snižte a dotazování ukončete, jakmile je stav completed nebo failed. V produkčním prostředí dejte přednost webhookům. Každá ukázka kódu níže provede jeden dotaz.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
StavPopis a omezení
queuedPřijato a čeká na zpracování.
generatingGenerování probíhá.
completedÚspěšně dokončeno. Stáhněte si data.results před vypršením platnosti.
failedTrvalé selhání. Zkontrolujte failed_reason a billing_status.
PoleTypPopis a omezení
idstring
Identifikátor úlohy. Jedná se o taskId z odpovědi na vytvoření.
created_atnumber
Čas vytvoření úlohy jako unixový čas v sekundách.
modelstring
Veřejné ID modelu použité pro tuto úlohu.
billing_statusstring
reserved (rezervováno), charged (zaúčtováno), refunded (vráceno) nebo refund_failed (vrácení selhalo).
creditsnumber
Kredity rezervované pro tuto úlohu. Tato hodnota zůstává zachována i po vrácení kreditů; pro zjištění konečného stavu platby zkontrolujte billing_status.
failed_reasonstring | null
Důvod selhání u neúspěšných úloh; v ostatních případech null. Odpovědi na dotazy u selhaných úloh neobsahují objekt data.
dataobject
Přítomno u úspěšně dotázaných úloh, které neselhaly. Obsahuje výstup a podrobnosti o zpracování.
data.resultsstring[]
Pole URL adres vygenerovaných videí. Prázdné do dokončení nebo po vypršení platnosti videa.
data.video_expires_atstring | null
Vypršení platnosti videa jako ISO 8601 časové razítko, nebo null, pokud ještě není k dispozici. Uložte si výsledek před tímto časem.
data.last_frame_urlstring | null
URL posledního snímku, pokud byl vyžádán a je k dispozici, jinak null.
data.processing_timenumber | null
Doba zpracování u poskytovatele v sekundách, pokud je k dispozici, jinak null.

Dokončená úloha: odpověď na dotaz s výsledným videem

Pokud dotaz vrátí status=completed, generování videa bylo dokončeno. Adresy URL videa si přečtěte v data.results a stáhněte si je před vypršením času v data.video_expires_at. billing_status=charged znamená, že vyhrazené kredity byly naúčtovány.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "completed",
  "billing_status": "charged",
  "credits": 100,
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

Neúspěšná úloha: odpověď na dotaz s podrobnostmi o chybě a účtování

Pokud dotaz vrátí status=failed, generování skončilo neúspěšně. Důvod chyby najdete v failed_reason a výsledek vrácení peněz v billing_status. V tomto příkladu hodnota refunded znamená, že kredity byly vráceny. V credits zůstává původní vyhrazená částka a odpověď neobsahuje žádná data.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "failed",
  "billing_status": "refunded",
  "credits": 100,
  "failed_reason": "provider_failed"
}

Webhooky

U produkčních integrací uveďte při vytváření úlohy parametr callback_url. Referenční příručka každého modelu obsahuje ukázky dat webhooku a příklad přijímače.

Nastavením callback_url v požadavku na vytvoření obdržíte JSON POST požadavek při dokončení nebo selhání úlohy. Odpovězte stavovým kódem 2xx do 15 sekund. Neúspěšná doručení se opakují; opakovaná doručení zpracovávejte idempotentně podle ID úlohy.

Koncový bod pro zpětné volání (callback) musí přijímat požadavky typu POST s tělem ve formátu JSON (Content-Type: application/json).

Vytvoření úlohy s callbackem

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  },
  "callback_url": "https://example.com/webhooks/seevio"
}'

Data ve webhooku se liší od odpovědí na dotaz na stav úlohy: neobsahují billing_status a credits; podrobnosti o selhání jsou uvnitř data.failed_reason a data.credits_refunded. Hodnota created_at ve webhooku představuje čas vytvoření události v unixových sekundách.

Úloha byla dokončena: callback s úspěšným výsledkem

Pokud generování proběhne úspěšně, callback vrátí status=completed. K identifikaci úlohy použijte id a k získání adres URL vygenerovaného videa data.results. Výsledky si stáhněte a uložte před vypršením času v data.video_expires_at.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "completed",
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

Úloha selhala: callback s chybovým hlášením

Pokud generování selže, callback vrátí status=failed. K identifikaci úlohy použijte id, pro zjištění důvodu selhání data.failed_reason a pro počet vrácených kreditů data.credits_refunded.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "failed",
  "data": {
    "failed_reason": "provider_failed",
    "credits_refunded": 100
  }
}

Příklad přijímače

export async function POST(request: Request) {
  const callbackData = await request.json();

  if (callbackData.status === "completed") {
    const videoUrls = callbackData.data.results;
    // Save the video URLs and mark this task as completed in your application.
    console.log(callbackData.id, videoUrls);
  }

  if (callbackData.status === "failed") {
    const { failed_reason, credits_refunded } = callbackData.data;
    // Record the failure reason and refunded credits for this task.
    console.error(callbackData.id, failed_reason, credits_refunded);
  }

  return new Response(null, { status: 200 });
}

Tento příklad v Next.js načítá tělo callbacku ve formátu JSON a rovnou zpracovává dokončené i neúspěšné úlohy. Do své aplikace přidejte perzistentní ukládání a deduplikaci podle ID úloh. Náročnější operace zařazujte do fronty ještě před potvrzením přijetí callbacku.

Chyby

Chyby HTTP obsahují objekt error s poli code a message. Úspěšně přijatá úloha může přesto později selhat; dotazujte se na stav úlohy nebo ošetřete callback o jejím selhání.

{
  "error": {
    "code": "invalid_request",
    "message": "input.prompt is required."
  }
}
HTTPPoleCo dělat
400invalid_request
Před dalším pokusem opravte JSON, chybějící prompt, rozsah parametrů nebo URL adresu média.
401invalid_api_key
Zkontrolujte token Bearer a zda je API klíč aktivní.
402insufficient_credits
Dobijte si kredity nebo snižte náročnost úlohy. Odpověď může obsahovat požadované a dostupné množství kreditů.
403forbidden
Zkontrolujte omezení na úrovni účtu popsané v chybové zprávě.
404not_found
Zkontrolujte ID úlohy a zda klíč patří uživateli, který úlohu vytvořil.
429rate_limited
Před dalším pokusem vyčkejte po dobu uvedenou v intervalu Retry-After.
500internal_error
Zkontrolujte chybovou zprávu a protokoly API. Opakujte pokus opatrně; opětovné odeslání požadavku na vytvoření může vytvořit další zpoplatněnou úlohu.