Skip to main content

URL Dasar

Semua permintaan API harus dikirim ke:
https://api.csku.ai

Arsitektur API

CSKU AI API Publik mengikuti konvensi RESTful dan menyediakan endpoint untuk:
  • Pemeriksaan Kesehatan - Memantau status dan versi sistem
  • Pengelolaan Pesan - Mengirim dan mengambil pesan
  • Pengelolaan Catatan - Mengirim catatan internal
  • Pengelolaan Percakapan - Mengelola percakapan dan intervensi manusia

Format Permintaan

Content-Type

Semua permintaan POST harus menyertakan:
Content-Type: application/json

Autentikasi

Sertakan header autentikasi (lihat Autentikasi): Metode 1: Header Terpisah
Business: your_biz_id
Secret: your_secret_key
Metode 2: Header Authorization
Authorization: Bearer {base64_encoded_credentials}

Format Respons

Respons Sukses

Respons sukses mengikuti struktur ini:
{
  "status": 1,
  "message": "Sukses",
  "data": { ... }
}

Respons Error

Error mengikuti format yang konsisten:
{
  "status": 0,
  "rc": 400,
  "error_msg": "Deskripsi pesan error"
}
Selalu periksa field status. Nilai 1 menunjukkan sukses, sedangkan 0 menunjukkan error.

Kode Status HTTP

KodeDeskripsi
200Sukses - Permintaan berhasil diselesaikan
400Permintaan Buruk - Parameter atau data tidak valid
401Tidak Terotorisasi - Autentikasi tidak valid atau tidak ada
403Terlarang - Izin tidak mencukupi
404Tidak Ditemukan - Sumber daya tidak ditemukan
429Terlalu Banyak Permintaan - Batas rate terlampaui
500Kesalahan Server Internal - Error sisi server

Versi API

Versi API saat ini: v1.3 Endpoint versi:
GET /version

Tipe Media

API mendukung tipe media berikut:
TipeDeskripsiContoh Tipe MIME
imageFile gambarimage/jpeg, image/png, image/gif
videoFile videovideo/mp4, video/avi
audioFile audioaudio/mp3, audio/wav
documentFile dokumenapplication/pdf, application/msword

Paginasi

Saat ini, pengambilan pesan tidak mendukung paginasi. Semua pesan dalam percakapan dikembalikan dalam satu permintaan.
Versi mendatang akan menyertakan dukungan paginasi untuk percakapan yang besar.

Pembatasan Rate

API menerapkan pembatasan rate:
Tipe PermintaanBatas
Terautentikasi100 permintaan/menit
Tidak Terautentikasi10 permintaan/menit
Informasi batas rate disertakan dalam respons error ketika batas terlampaui.

Webhooks

Untuk notifikasi real-time, konfigurasikan webhooks di pengaturan bisnis Anda: Event yang Didukung:
  • message.incoming - Pesan baru diterima
  • message.sent - Pesan berhasil dikirim
  • conversation.assigned - Percakapan ditugaskan ke manusia
Konfigurasi webhook dilakukan melalui dashboard, bukan melalui API.

Penanganan Error

Memeriksa Error

Selalu periksa field status dalam respons:
const response = await fetch(...);
const data = await response.json();

if (data.status === 0) {
  console.error('Error:', data.error_msg);
  // Tangani error berdasarkan rc (kode respons)
  switch(data.rc) {
    case 401:
      // Tidak terotorisasi - periksa kredensial
      break;
    case 400:
      // Permintaan buruk - periksa parameter
      break;
    case 429:
      // Rate terbatas - terapkan backoff
      break;
    default:
      // Error lainnya
  }
}

Kode Error Umum

KodeDeskripsiTindakan
400Permintaan BurukPeriksa parameter permintaan
401Tidak TerotorisasiVerifikasi kredensial
403TerlarangPeriksa izin
404Tidak DitemukanVerifikasi sumber daya ada
429Terlalu Banyak PermintaanTerapkan backoff dan coba lagi
500Error InternalHubungi dukungan jika berlanjut

Praktik Terbaik

  1. Selalu periksa field status sebelum memproses data respons
  2. Terapkan logika retry untuk error 5xx dengan exponential backoff
  3. Gunakan timeout yang sesuai untuk permintaan API
  4. Validasi data input sebelum membuat permintaan
  5. Tangani batas rate dengan baik menggunakan strategi backoff
  6. Jaga keamanan kredensial - jangan pernah ekspos di kode sisi klien

Dukungan

Untuk dukungan teknis atau pertanyaan: