Skip to main content
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: /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.

Contoh Polling

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: 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 dibatasi. Ketika task yang dipilih mendukung pembatalan, endpoint ini berlaku untuk task video 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

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