Widget Chat

Semua titik akhir yang digunakan oleh widget obrolan tertanam di situs web pelanggan.

Kelompok ini menggabungkan semua endpoint publik yang digunakan oleh widget chat tertanam pada situs web pelanggan: pemeriksaan ketersediaan (`GET /api/public/widget/health`), pengambilan konfigurasi widget publik (`GET /api/public/widget/config/:widget_code`), serta pengiriman dan riwayat pesan (`POST /api/public/widget/message`, `GET /api/public/widget/history`). Pengaturan asal domain (origin) dikelola oleh Zentor saat pembuatan widget; tidak ada antarmuka pengaturan untuk hal ini di dasbor penyewa (tenant). Jika asal domain tidak diizinkan, kode kesalahan `WIDGET_ORIGIN_DENIED` dapat muncul. Pembuatan widget itu sendiri merupakan hak istimewa Admin Utama, sementara penyewa hanya menerima kode embed yang sudah jadi.

Tidak ada sistem kunci API pengembang umum yang berlaku. Endpoint `health` dan `config` dapat diakses tanpa autentikasi karena ditujukan untuk inisialisasi widget di browser. Sebaliknya, `message` dan `history` memerlukan header `X-Widget-Token` dan additionally diperiksa terhadap daftar asal server yang diizinkan (origin allowlist). Token embed ditampilkan sekali dalam teks biasa saat pembuatan widget dan tidak boleh muncul di repositori publik, tangkapan layar dukungan, atau log browser.

Setiap halaman detail untuk kelompok ini menjelaskan secara terpisah metode, jalur, autentikasi, idempotensi, dan kode kesalahan yang didokumentasikan untuk masing-masing endpoint. Pemanggilan sukses pada satu endpoint tidak secara otomatis menjamin bahwa endpoint lain dalam kelompok yang sama juga akan berhasil — khususnya, pemeriksaan `health` yang berhasil tidak mengonfirmasi keberadaan widget yang valid, asal domain yang diizinkan, atau keterjangkauan penyedia AI.

Batas API platform yang telah dikonfirmasi adalah 2.000 permintaan dalam jangka waktu 15 menit. Batas yang berbeda untuk satu endpoint widget tertentu hanya disebutkan jika secara eksplisit dibuktikan untuk endpoint tersebut. `message` tidak bersifat idempoten; klien tidak boleh secara otomatis mengulang proses pengiriman yang terputus secara tidak jelas tanpa terlebih dahulu memeriksa apakah pesan pertama telah diproses.

Pemeriksaan teknis untuk kelompok ini didasarkan pada registri di `app/frontend/src/content/api-reference/groups/widget.ts` dan rute backend yang terkait. Setiap halaman detail menandakan apakah jalur sukses telah diuji secara langsung, apakah jalur negatif diuji, atau hanya analogi kode yang diperiksa — pembedaan ini berlaku untuk seluruh kelompok dan tidak boleh digantikan dengan pernyataan keberhasilan umum.

GET/api/public/widget/healthGET/api/public/widget/config/:widget_codePOST/api/public/widget/messageGET/api/public/widget/historyPOST/api/public/widget/pollPOST/api/public/widget/ratingPOST/api/public/widget/trackPOST/api/public/widget/voice-transcribePOST/api/public/widget/voice-speak
Referensi API