Dokumentasjon
Bygg med Seevio API
Legg til videogenerering i produktet ditt. Velg en modell, send en forespørsel, og hent resultatet via polling eller en webhook.
Velg en modell
Hver modellreferanse inneholder komplette parametere, priser og eksempler. Du kan fullføre hele integrasjonen fra siden til den enkelte modellen.
Autentisering
Opprett en API-nøkkel i dashbordet. Den fullstendige nøkkelen vises bare én gang. Oppbevar den trygt på serveren din, og send den med som et Bearer-token i alle forespørsler.
Base-URL
https://api.seevio.aiAuthorization: Bearer sk_live_your_api_key
Content-Type: application/jsonDefiner miljøvariabelen SEEVIO_API_KEY før du kjører disse eksemplene. Eksemplene i JavaScript kjøres på serveren din med Node.js, mens Python-eksemplene bruker requests-pakken.
Hurtigstart
Dette eksempelet genererer en 5 sekunder lang video i 720p med Seedance 2.5. Gå til en modellreferanse for å se alle genereringsmoduser og parametergrenser.
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
}
}'Eksempel på svar ved opprettelse av oppgave
Når forespørselen ovenfor er godkjent, returnerer API-et dette JSON-svaret. taskId er oppgaveidentifikatoren som brukes til påfølgende statusforespørsler; credits er antall kreditter som er reservert for denne oppgaven. Dette svaret bekrefter kun at oppgaven er opprettet, ikke at videoen er klar. Du må polle oppgavestatusen eller bruke en Webhook for å motta videoresultatene.
{
"taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"credits": 100
}Spør om en oppgave
GET https://api.seevio.ai/v1/tasks/{taskId}Erstatt eksempel-ID-en med den taskId du fikk ved opprettelse. Statusspørringer returnerer kun oppgaver som tilhører brukeren av den gitte API-nøkkelen; utilgjengelige eller ukjente ID-er returnerer HTTP 404.
Start med å gjøre en spørring (poll) hvert 10.–20. sekund. Ved HTTP 429 bør du øke intervallet, og stoppe når statusen er completed eller failed. Vi anbefaler webhooks i produksjon. Hvert kodeeksempel nedenfor utfører én enkelt spørring.
curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
-H "Authorization: Bearer $SEEVIO_API_KEY"| Status | Beskrivelse og begrensninger |
|---|---|
queued | Mottatt og venter på å bli sendt til behandling. |
generating | Generering pågår. |
completed | Fullført med suksess. Last ned data.results før filene utløper. |
failed | Feilet. Undersøk failed_reason og billing_status. |
| Felt | Type | Beskrivelse og begrensninger |
|---|---|---|
id | string | Oppgave-ID. Dette tilsvarer taskId fra opprettelsesresponsen. |
created_at | number | Tidspunkt for opprettelse av oppgaven, oppgitt i Unix-sekunder. |
model | string | Den offentlige modell-ID-en som ble brukt for denne oppgaven. |
billing_status | string | reserved, charged, refunded eller refund_failed. |
credits | number | Kreditter reservert for denne oppgaven. Denne verdien beholdes etter en refusjon; sjekk billing_status for å se det endelige faktureringsresultatet. |
failed_reason | string | null | Årsak til feilen på oppgaver som har feilet; ellers null. Svar på statusspørringer som har feilet, utelater data. |
data | object | Inkludert på vellykkede statusspørringer. Inneholder detaljer om resultat og behandling. |
data.results | string[] | En array med video-URL-er. Tom frem til oppgaven er fullført, eller etter at videoen har utløpt. |
data.video_expires_at | string | null | Tidspunktet videoen utløper, oppgitt som ISO 8601-tidsstempel, eller null før den er tilgjengelig. Lagre resultatet lokalt før dette tidspunktet. |
data.last_frame_url | string | null | URL til den siste rammen hvis forespurt og tilgjengelig, ellers null. |
data.processing_time | number | null | Leverandørens behandlingstid i sekunder når tilgjengelig, ellers null. |
Fullført oppgave: statussvar med videoresultater
Når statusforespørselen returnerer status=completed, er videogenereringen fullført. Hent video-URL-ene fra data.results og last dem ned før data.video_expires_at. billing_status=charged viser at de reserverte kredittene har blitt trukket.
{
"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
}
}Mislykket oppgave: statussvar med feil- og faktureringsinformasjon
Når statusforespørselen returnerer status=failed, ble ikke genereringen fullført. Se failed_reason for årsaken, og billing_status for refusjonsstatusen. I dette eksempelet betyr refunded at kredittene har blitt refundert. credits viser det opprinnelige reserverte beløpet, og svaret inneholder ikke data.
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1788652800,
"model": "seedance-2-5",
"status": "failed",
"billing_status": "refunded",
"credits": 100,
"failed_reason": "provider_failed"
}Webhooks
For integrasjoner i produksjon bør du oppgi callback_url når du oppretter en oppgave. Hver modellreferanse inneholder eksempler på webhook-data og en mottaker.
Angi callback_url i opprettelsesforespørselen for å motta en JSON POST når oppgaven er fullført eller feiler. Returner en 2xx-respons innen 15 sekunder. Meldinger som ikke blir levert, prøves på nytt; håndter gjentatte leveringer idempotent basert på oppgave-ID.
Ditt endepunkt for tilbakesending må godta POST-forespørsler med en JSON-meldingskropp (Content-Type: application/json).
Opprett en oppgave med callback
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"
}'Webhook-data skiller seg fra svarene på statusspørringer: de utelater billing_status og credits, og feildetaljer ligger i data.failed_reason og data.credits_refunded. Webhook-feltet created_at er tidspunktet for selve hendelsen i Unix-sekunder.
Oppgave fullført: payload for vellykket tilbakesending
Når genereringen lykkes, inneholder tilbakesendingen status=completed. Bruk id for å identifisere oppgaven og data.results for å hente video-URL-ene. Last ned og lagre resultatene før 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
}
}Oppgave mislyktes: payload for mislykket tilbakesending
Når genereringen mislykkes, inneholder tilbakesendingen status=failed. Bruk id for å identifisere oppgaven, data.failed_reason for årsaken til feilen, og data.credits_refunded for antall refunderte kreditter.
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1788652800,
"model": "seedance-2-5",
"status": "failed",
"data": {
"failed_reason": "provider_failed",
"credits_refunded": 100
}
}Eksempel på mottaker (receiver)
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 });
}Dette Next.js-eksempelet leser JSON-tilbakesendingskroppen og håndterer fullførte og mislykkede oppgaver direkte. Legg til datalagring og deduplisering av oppgave-ID-er i applikasjonen din, og legg tidkrevende oppgaver i kø før tilbakesendingen bekreftes.
Feilmeldinger
HTTP-feil returnerer et error-objekt med code og message. En oppgave som ble mottatt uten feil, kan fortsatt mislykkes senere; sjekk status på oppgaven eller håndter feil via callback.
{
"error": {
"code": "invalid_request",
"message": "input.prompt is required."
}
}| HTTP | Felt | Løsning |
|---|---|---|
| 400 | invalid_request | Rett opp feil i JSON-strukturen, manglende prompt, feil parameterverdier eller ugyldige medie-URL-er før du prøver igjen. |
| 401 | invalid_api_key | Kontroller Bearer-tokenet og sjekk om API-nøkkelen er aktiv. |
| 402 | insufficient_credits | Fyll på kreditter eller reduser kostnaden for oppgaven. Svaret kan inneholde opplysninger om nødvendig og tilgjengelig saldo. |
| 403 | forbidden | Sjekk kontobegrensningen som er beskrevet i feilmeldingen. |
| 404 | not_found | Kontroller oppgave-ID-en og at nøkkelen tilhører eieren av oppgaven. |
| 429 | rate_limited | Vent i tidsrommet angitt i Retry-After før du prøver igjen. |
| 500 | internal_error | Undersøk feilmeldingen og API-loggene. Prøv igjen med forsiktighet; en ny innsending av forespørselen kan opprette en ny, betalbar oppgave. |