Langkau ke dokumentasi
Pada halaman ini

Dokumentasi

Bina dengan API Seevio

Tambahkan ciri penjanaan video ke dalam produk anda. Pilih model, hantar permintaan dan dapatkan hasilnya melalui pengundian (polling) atau webhook.

Pilih model

Setiap rujukan model menyertakan parameter lengkap, harga dan contohnya yang tersendiri. Anda boleh melengkapkan integrasi terus dari satu halaman model.

Pengesahan

Cipta kunci API dalam papan pemuka. Kunci lengkap hanya akan dipaparkan sekali sahaja. Simpan kunci ini pada pelayan anda dan hantarkannya sebagai token Bearer dalam setiap permintaan.

URL asas

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

Tetapkan pemboleh ubah persekitaran SEEVIO_API_KEY sebelum menjalankan contoh ini. Contoh JavaScript dijalankan pada pelayan anda dengan Node.js; contoh Python menggunakan pakej requests.

Mula cepat

Contoh ini menjana video 720p berdurasi 5 saat menggunakan Seedance 2.5. Buka rujukan model untuk melihat semua mod penjanaan dan had parameter.

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
  }
}'

Contoh respons cipta tugasan

Selepas permintaan di atas diterima, API akan mengembalikan respons JSON ini. taskId ialah pengecam tugasan yang digunakan untuk pertanyaan status seterusnya; credits pula ialah jumlah kredit yang dikuntukkan bagi tugasan ini. Respons ini hanya mengesahkan penciptaan tugasan dan tidak bermakna video tersebut sudah sedia. Anda perlu menyemak status tugasan secara berkala atau menggunakan Webhook untuk menerima hasil video.

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

Tanya status tugasan

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

Gantikan ID contoh dengan taskId yang dikembalikan semasa penciptaan. Pertanyaan hanya mengembalikan tugasan milik pengguna kunci API tersebut; ID yang tidak boleh diakses atau tidak dikenali akan mengembalikan ralat HTTP 404.

Lakukan pengundian (polling) setiap 10–20 saat sebagai permulaan, kurangkan kekerapan jika menerima ralat HTTP 429, dan hentikan apabila status bertukar kepada completed atau failed. Sebaik-baiknya gunakan webhook untuk persekitaran pengeluaran. Setiap contoh kod di bawah melakukan satu pertanyaan.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
StatusPenerangan & had
queuedDiterima dan sedang menunggu untuk dihantar.
generatingPenjanaan sedang dijalankan.
completedBerjaya sepenuhnya. Muat turun data.results sebelum tamat tempoh.
failedGagal sepenuhnya. Periksa failed_reason dan billing_status.
MedanJenisPenerangan & had
idstring
Pengecam tugasan. Ini ialah taskId daripada respons cipta.
created_atnumber
Masa penciptaan tugasan dalam saat Unix.
modelstring
ID model awam yang digunakan untuk tugasan ini.
billing_statusstring
reserved, charged, refunded atau refund_failed.
creditsnumber
Kredit yang ditempah untuk tugasan ini. Nilai ini dikekalkan selepas bayaran balik; periksa billing_status untuk menentukan hasil pengebilan.
failed_reasonstring | null
Punca kegagalan bagi tugasan yang gagal; bernilai null jika sebaliknya. Respons pertanyaan yang gagal mengabaikan bahagian data.
dataobject
Ada pada pertanyaan tugasan yang tidak gagal. Mengandungi butiran output dan pemprosesan.
data.resultsstring[]
Tatasusunan URL video. Kosong sehinggalah tugasan selesai atau selepas video tamat tempoh.
data.video_expires_atstring | null
Masa tamat tempoh video sebagai penanda masa ISO 8601, atau null sebelum ia tersedia. Simpan hasil sebelum waktu ini.
data.last_frame_urlstring | null
URL bingkai terakhir apabila diminta dan tersedia, jika tidak nilainya adalah null.
data.processing_timenumber | null
Durasi pemprosesan penyedia dalam saat apabila tersedia, jika tidak nilainya adalah null.

Tugasan selesai: respons pertanyaan dengan hasil video

Apabila pertanyaan mengembalikan status=completed, ini bermakna penjanaan video telah selesai. Baca URL video daripada data.results dan muat turun video tersebut sebelum data.video_expires_at. billing_status=charged menunjukkan bahawa kredit yang diketepikan telah ditolak.

{
  "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
  }
}

Tugasan gagal: respons pertanyaan dengan butiran kegagalan dan pengebilan

Apabila pertanyaan mengembalikan status=failed, ini bermakna penjanaan telah tamat tetapi gagal. Rujuk failed_reason untuk mengetahui punca kegagalan dan billing_status untuk status bayaran balik. Dalam contoh ini, refunded bermakna kredit telah dikembalikan semula. credits mengekalkan amaun asal yang diketepikan, dan respons ini tidak mengandungi data.

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

Webhook

Untuk integrasi pengeluaran, sediakan callback_url semasa mencipta tugasan. Setiap rujukan model menyertakan data muatan (payload) panggilan semula dan contoh penerima.

Tetapkan callback_url dalam permintaan cipta untuk menerima POST JSON apabila tugasan selesai atau gagal. Kembalikan respons 2xx dalam masa 15 saat. Penghantaran yang gagal akan dicuba semula; proses penghantaran berulang secara idempotensi menggunakan ID tugasan.

Pangkalan akhir (endpoint) panggilan balik anda mesti menerima permintaan POST dengan badan permintaan JSON (Content-Type: application/json).

Cipta tugasan dengan panggilan semula

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"
}'

Muatan webhook berbeza daripada respons pertanyaan tugasan: ia mengabaikan billing_status dan credits; butiran kegagalan berada di dalam data.failed_reason dan data.credits_refunded. Nilai created_at webhook ialah masa penciptaan acara dalam saat Unix.

Tugasan selesai: muatan panggilan balik yang berjaya

Apabila penjanaan berjaya, panggilan balik akan mengandungi status=completed. Gunakan id untuk mengenal pasti tugasan dan data.results untuk mendapatkan URL video. Muat turun dan simpan keputusan sebelum 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
  }
}

Tugasan gagal: muatan panggilan balik yang gagal

Apabila penjanaan gagal, panggilan balik akan mengandungi status=failed. Gunakan id untuk mengenal pasti tugasan, data.failed_reason untuk mengetahui punca kegagalan dan data.credits_refunded untuk jumlah kredit yang dikembalikan.

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

Contoh penerima

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 });
}

Contoh Next.js ini membaca badan panggilan balik JSON dan mengendalikan tugasan yang selesai serta gagal secara terus. Tambahkan fungsi persistensi dan penyahduplikasian ID tugasan untuk aplikasi anda; masukkan kerja yang lambat ke dalam giliran (queue) sebelum mengesahkan panggilan balik.

Ralat

Ralat HTTP mengandungi objek ralat dengan kod dan mesej. Tugasan yang berjaya diterima masih boleh gagal kemudian; tanya status tugasan atau kendalikan panggilan semula kegagalannya.

{
  "error": {
    "code": "invalid_request",
    "message": "input.prompt is required."
  }
}
HTTPMedanTindakan yang perlu diambil
400invalid_request
Betulkan fail JSON, prom yang hilang, julat parameter atau URL media sebelum mencuba semula.
401invalid_api_key
Semak token Bearer dan pastikan kunci API adalah aktif.
402insufficient_credits
Tambah kredit atau kurangkan kos tugasan. Respons mungkin menyertakan amaun yang diperlukan dan amaun yang tersedia.
403forbidden
Sila semak sekatan peringkat akaun yang dinyatakan dalam mesej ralat.
404not_found
Semak ID tugasan dan pastikan kunci tersebut milik pengguna tugasan berkenaan.
429rate_limited
Tunggu selang masa Retry-After sebelum mencuba semula.
500internal_error
Periksa mesej ralat dan log API. Cuba semula dengan berhati-hati; menghantar semula permintaan cipta boleh mencipta satu lagi tugasan yang boleh dicaj.