REST API untuk mengintegrasikan AI LiveChat Pro ke aplikasi Anda: CRM, mobile app, e-commerce, atau custom UI. Seluruh endpoint data plane memakai header X-API-Key.
Base URL https://ailivechat.pro/api/v1/externalAuth X-API-KeyRate limit 60 req/minFormat JSON
Pengantar
External API membuka kapabilitas yang sama dengan dashboard, tanpa sesi browser. Di contoh cURL, ganti YOUR_DOMAIN dengan ailivechat.pro (produksi) atau domain staging Anda. Cocok untuk:
Headless chat di aplikasi iOS/Android atau custom web UI
Provisioning bot, widget, dan domain whitelist secara otomatis
Mendaftarkan REST tool agar AI bisa function-calling ke sistem Anda
Ingest dokumen & FAQ ke knowledge base (RAG)
Envelope sukses: semua response sukses memakai bentuk
{ "success": true, "data": ..., "message": "..." }
(kadang disertai meta).
Quick start (3 langkah)
Login & buat API KeyAuthentikasi sebagai Admin/Owner dengan JWT, lalu POST /api/v1/external/keys. Simpan nilai api_key — plaintext hanya muncul sekali.
Panggil endpoint dengan X-API-KeySertakan header X-API-Key: lc_live_... (atau lc_test_... di non-produksi).
Mulai dari headless chat atau widgetsContoh: buat sesi chat lalu kirim pesan, atau list bot dengan GET /widgets.
GET /api/v1/external/whatsapp/sessions / GET /api/v1/external/telegram/sessions
source_id3d4e5f6a-7b8c-…
Fungsi
Custom REST API source & tool calling
Dashboard
Custom API → kartu API
Via API
GET /api/v1/external/custom-apis
session_tokenses_…
Fungsi
Sesi obrolan pengunjung (headless chat) — history, visitor send, admin reply, handover, close
Dashboard
Otomatis diterbitkan saat inisialisasi chat
Via API
POST /api/v1/external/chat/sessions atau GET /api/v1/external/chat/sessions
💡 Tip Praktis: Buka tab Developer API & Keys di Dashboard. Di bawah tabel API Key terdapat "Resource IDs Directory" yang menampilkan seluruh daftar Bot, WhatsApp, dan Custom API milik organisasi Anda lengkap dengan tombol 1-Click Copy.
Autentikasi
1) Manajemen key — JWT Bearer
Endpoint /keys memakai token login dashboard (role tenant_owner atau admin).
Semua endpoint selain manajemen key memakai header:
X-API-Key: lc_live_<prefix8>_<entropy32>
Alternatif: Authorization: Bearer lc_live_... (nilai key, bukan JWT).
Server tidak pernah menyimpan plaintext key. Yang tersimpan hanya SHA-256 hash + prefix 16 karakter untuk UI.
Maksimal 2 key aktif per organisasi (dual-key rotation).
Scopes (izin granular)
Setiap key dibatasi scope. Gunakan "*" hanya untuk development. Scope :write / :admin juga mengizinkan :read pada resource yang sama.
Lifecycle saluran Telegram Bot API: provision token BotFather → auto-register webhook HTTPS → outbound messaging → status → delete. Ganti CHANNEL_ID dengan UUID saluran Telegram dari Resource IDs Directory.
POST/api/v1/external/telegram/sessions
telegram:write
Fungsi: Mengalokasikan saluran Telegram baru, memvalidasi bot token via getMe, mengenkripsi token dengan AES-256-GCM, mendaftarkan webhook internal secara otomatis (setWebhook), dan menautkan ke Bot AI.
Fungsi: Mengubah pengaturan saluran Telegram (reassign Bot AI lain, ganti parse mode HTML/Markdown, ubah allowed chat types, atau toggle status aktif).
AUTH / SSOKirim Username & Context ke LiveChat Widget & API
client-side / headless
Fungsi: Jika website/aplikasi Anda memiliki sistem login pengguna, teruskan identitas (username, customer_name, email, dan objek custom_context) ke sistem AI LiveChat Pro. AI akan secara otomatis mengenali profil pengguna dan memetakannya ke parameter Custom API Tools tanpa harus bertanya lagi ke user.
Metode 1: HTML Data Attributes pada <script> Tag (PHP / Blade / WordPress)
Sisipkan atribut data-username dan data-context pada tag script embed di template website:
Metode 2: JavaScript Client API (Single Page Application — React / Vue / Next.js)
Panggil fungsi window.AI_LiveChat.identify() kapan saja tepat setelah pengguna berhasil login:
JavaScript Frontend
// Panggil tepat setelah user login
if (window.AI_LiveChat) {
window.AI_LiveChat.identify({
username: "esterc", // Otomatis terhubung ke parameter tool AI & pre-chat
phone: "085856566565", // Otomatis terpetakan ke konteks & prefill form
name: "Ester Cornelia",
email: "[email protected]",
tier: "VIP Gold" // Parameter kustom lainnya otomatis masuk ke context
});
}
Metode 3: Script Siap Pakai (Async / Event-Safe Snippet)
Gunakan helper ringkas ini agar identitas tetap terkirim secara aman meskipun widget.js dimuat secara asynchronous atau masih dalam proses loading:
HTML Script (Ringkas & Event-Safe)
<script>
function setAIUser(user) {
if (window.AI_LiveChat) return window.AI_LiveChat.identify(user);
window.addEventListener("ai_livechat_ready", function () {
window.AI_LiveChat.identify(user);
}, { once: true });
}
// Panggil saat user aktif / login:
setAIUser({
username: "esterc",
phone: "085856566565"
});
</script>
Metode 4: Logout & Hapus Identitas Pengunjung (Clear Sesi)
Saat pengguna menekan tombol Logout di website/aplikasi Anda, panggil fungsi logout untuk menghapus seluruh data sesi di browser pengunjung:
JavaScript Logout / Clear Identity
// Panggil ini saat user logout dari aplikasi Anda
if (window.AI_LiveChat) {
window.AI_LiveChat.logout(); // Atau: window.AI_LiveChat.identify(null);
}
🔒 Proteksi Privasi Otomatis:
window.AI_LiveChat.logout() (atau identify(null)) secara instan menghapus token lokal (localStorage), mengosongkan riwayat pesan di layar, memutuskan koneksi WebSocket, dan mengembalikan widget ke mode tamu/anonim.
Auto-Wipe Halaman Publik: Jika pengguna telah logout dan membuka halaman publik tanpa script identitas, widget secara otomatis mendeteksi ketiadaan data user dan langsung membersihkan sesi lama agar percakapan tidak dapat diintip oleh orang lain di perangkat yang sama.
Isolasi Antar Akun: Jika pengguna lain login di komputer yang sama, sistem otomatis membuat sesi baru terpisah tanpa mencampurkan pesan pengguna sebelumnya.
Metode 5: Headless Chat External API (Mobile App / Custom Chat UI)
Kirimkan objek custom_context saat inisialisasi sesi percakapan:
💡 Otomatis Terhubung ke Custom API: Jika Bot Anda memiliki tool Custom API dengan parameter username, user, member, atau player, AI akan otomatis mengambil nilai username dari session context ini (misal saat user bertanya "cek sisa saldo saya") tanpa meminta user mengetikkan username lagi.
⚡ Smart Pre-Chat Bypass: Jika bot Anda mengaktifkan Pre-Chat Welcome Form, AI LiveChat Pro secara otomatis mengevaluasi kelengkapan data pre-defined script:
Lengkap (Semua field wajib terpenuhi): Pre-Chat Form otomatis dilewati (bypassed) dan percakapan langsung dimulai dengan salam sambutan tanpa popup formulir yang mengganggu.
Parsial (Sebagian field terpenuhi): Pre-Chat Form tetap ditampilkan, namun field yang sudah diketahui otomatis terisi (pre-filled) sehingga pengunjung hanya perlu mengisi field yang tersisa.
Anonim (Tanpa data pre-defined): Pre-Chat Form ditampilkan normal seperti biasa.
Fungsi: Mengecek ketersediaan & latency base URL API klien.
cURL
curl -X POST https://YOUR_DOMAIN/api/v1/external/custom-apis/SOURCE_ID/ping \
-H "X-API-Key: lc_live_YOUR_API_KEY"
E. Headless Chat
API chat tanpa widget — ideal untuk mobile app atau custom UI. Pipeline AI sama dengan widget (RAG + tool calling + guardrail). Batas pesan: 2.000 karakter.
GET/api/v1/external/chat/sessions
chat:read
Fungsi: Daftar sesi percakapan organisasi (chat aktif / terbuka). Setiap item di data[] menyertakan session_token yang bisa langsung dipakai untuk:
GET /api/v1/external/chat/sessions/{session_token}/messages — riwayat pesan (visitor / ai / agent / system), kronologis
POST .../messages — kirim pesan
POST .../handover / POST .../close
Query:filter (default open = bukan closed/resolved; juga active, ai, waiting, inbox, archive, all), public_bot_id, customer_id, limit (max 200), offset.
Fungsi: Admin / CRM membalas sebagai human agent (bukan AI). Pesan tersimpan dengan sender_type=agent, percakapan di-claim ke agent_active, dan visitor menerima via WebSocket / GET .../messages.
Body:content (wajib), agent_id (opsional — UUID AgentProfile atau User), agent_name (opsional — label display). Jika agent_id kosong, sistem memakai profil agen organisasi (fallback).
Alur:GET /chat/sessions atau POST /chat/sessions → ambil session_token → POST .../agent-messages.
cURL
curl -X POST https://YOUR_DOMAIN/api/v1/external/chat/sessions/SESSION_TOKEN/agent-messages \
-H "X-API-Key: lc_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Paket Anda sedang dalam perjalanan, estimasi taterima besok.",
"agent_name": "CS Budi"
}'
Response 201
{
"success": true,
"data": {
"message_id": "a1b2c3d4-...",
"session_token": "ses_a1b2c3d4e5f6...",
"conversation_id": "1a2b3c4d-5e6f-...",
"sender_type": "agent",
"content": "Paket Anda sedang dalam perjalanan, estimasi taterima besok.",
"agent_name": "CS Budi",
"auto_claimed": true,
"status": "agent_active",
"assigned_agent_id": "9f8e7d6c-...",
"created_at": "2026-04-11T08:20:00+00:00"
},
"message": "Pesan agen berhasil dikirim ke pengunjung"
}
Hormati 429 — implement exponential backoff bila terkena rate limit.
Headless chat — list sesi aktif via GET /chat/sessions (dapatkan session_token), ambil riwayat dengan GET .../messages, atau balas sebagai admin dengan POST .../agent-messages; persist token di sisi klien untuk melanjutkan percakapan.
Siap mencoba? Buat akun, generate API key dari endpoint /keys, lalu mulai dari headless chat atau list widgets.