Langsung ke konten utama
Banyak endpoint media bersifat asinkron. Permintaan pembuatan memulai pekerjaan dan mengembalikan identitas tugas TokenLab publik; aplikasi Anda melakukan polling hingga tugas tersebut mencapai status terminal. Jangan membangun alur kerja pelanggan di sekitar URL tugas upstream, ID routing, atau perilaku callback penyedia.

Kontrak Tugas Publik

Respon pembuatan dapat mencakup:
FieldArtiApa yang harus dilakukan
idID tugas TokenLab publikSimpan bersama catatan pekerjaan Anda sendiri
task_idAlias kompatibilitas untuk identitas tugas publik yang samaAnggap setara dengan id
statusStatus tugas publik saat iniMulai polling ketika tidak terminal
poll_urlURL status yang disukaiGunakan ini terlebih dahulu jika ada
modelModel yang diminta atau diselesaikan oleh endpointSimpan untuk dukungan dan rekonsiliasi penagihan
/v1/tasks/{id} adalah endpoint status tetap kanonik untuk pekerjaan media asinkron publik. Rute status spesifik media mungkin ada untuk kompatibilitas, tetapi integrasi baru harus lebih memilih poll_url atau /v1/tasks/{id}.

Alur yang Direkomendasikan

  1. Validasi permintaan pengguna dan kirim panggilan pembuatan dengan model yang eksplisit.
  2. Simpan id / task_id, poll_url, endpoint, model, ID pengguna, dan ID pekerjaan Anda sendiri sebelum mengembalikan kontrol ke UI.
  3. Lakukan polling setiap 5-10s untuk tugas media yang berjalan lama.
  4. Hentikan hanya ketika tugas sudah completed atau failed.
  5. Pada completed, baca bidang hasil spesifik media dan simpan URL atau metadata akhir.
  6. Pada failed, simpan kesalahan publik dan tawarkan pengulangan hanya sebagai pekerjaan baru yang terlihat oleh pengguna.
{
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "pending",
  "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "model": "veo3.1"
}

Contoh Polling

curl "https://api.tokenlab.sh/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
  -H "Authorization: Bearer sk-your-api-key"
Status publik yang diharapkan adalah pending, processing, completed, dan failed. Tugas yang dibatalkan diwakili sebagai failed dengan cancelled: true dan cancellation_status: "cancelled" sehingga penanganan status yang lebih lama tetap berfungsi.

Aturan Pengulangan Klien

Timeout jaringan adalah sumber paling umum dari pekerjaan duplikat. Gunakan aturan ini:
Di mana timeout terjadiPerilaku yang lebih aman
Sebelum server Anda menerima respon pembuatanPeriksa log server untuk request_id; ulangi hanya jika tidak ada tugas yang dibuat
Setelah respon pembuatan disimpanLanjutkan polling task_id yang disimpan
Selama pollingUlangi permintaan status dengan backoff
Setelah status terminalJangan polling lagi kecuali pengguna secara eksplisit menyegarkan catatan
Jangan kirim permintaan pembuatan kedua hanya karena browser diperbarui atau polling status gagal.

Penagihan dan Penyelesaian

Pekerjaan asinkron dapat memesan jumlah yang diperkirakan ketika permintaan pembuatan diterima. Penyelesaian akhir terjadi setelah status terminal. Ketika tersedia, respon status tugas dapat mengekspos billing_transaction_id dan header X-Billing-Transaction-ID. Untuk rekonsiliasi, gabungkan pengidentifikasi ini di log Anda:
  • request_id dari permintaan pembuatan.
  • task_id / id dari tugas.
  • billing_transaction_id jika ada.
  • ID pengguna Anda sendiri, ID proyek, atau ID pekerjaan.

Pembatalan

DELETE /v1/tasks/{id} sengaja sempit. Saat ini mendukung tugas video Volcengine Seedance yang antre seperti seedance-1.5-pro, seedance-2.0, dan seedance-2.0-fast. Tugas yang tidak didukung mengembalikan 400 unsupported_task_cancel. Tugas yang sudah berjalan atau terminal mengembalikan 409 task_not_cancellable. Bangun UI pembatalan sebagai “permintaan pembatalan” daripada tombol berhenti yang dijamin.

Pemecahan Masalah

GejalaPenyebab yang mungkinApa yang harus diperiksa
async_task_not_foundTugas tidak dikenal, kedaluwarsa, tidak dapat diakses dengan kunci API ini, atau bukan tugas asinkron publikKonfirmasi kepemilikan kunci API dan task_id publik yang disimpan
Tugas tidak pernah tampak selesaiKlien terus polling URL yang salah atau berhenti sebelum status terminalGunakan poll_url atau /v1/tasks/{id} dan periksa status terbaru
URL media akhir hilangTugas tidak selesai, atau pekerjaan upstream selesai tanpa output yang dapat digunakanTerus polling hingga terminal, lalu tangani output yang hilang sebagai gagal
Pengguna melihat duplikatJalur pengulangan membuat tugas baru setelah timeout atau penyegaranHapus duplikat berdasarkan ID pekerjaan Anda sendiri dan task_id yang disimpan
Ketidaksesuaian penagihanPenyelesaian bersifat asinkron atau klien membandingkan ID penyediaBandingkan request_id, task_id, dan billing_transaction_id

Paket Dukungan

Saat menghubungi dukungan, sertakan request_id, task_id, billing_transaction_id jika ada, endpoint, model, timestamp, dan bentuk permintaan yang telah disanitasi. Jangan sertakan kunci API, media pribadi, URL yang ditandatangani, atau prompt lengkap kecuali dukungan meminta contoh yang disunting.

Referensi API

TopikReferensi
Dapatkan Status TugasDapatkan Status Tugas
Batalkan TugasBatalkan Tugas
Generasi GambarGenerasi Gambar
Generasi VideoGenerasi Video
Generasi MusikGenerasi Musik
Generasi 3DGenerasi 3D
Penagihan & HargaPenagihan & Harga