KelolaAja
REST API

Dokumentasi API Publik

Integrasikan sistem Anda dengan platform KelolaAja menggunakan API REST yang sederhana. Semua endpoint mengembalikan data dalam format JSON.

Base URLhttps://kelolaaja.com
🔓

Endpoint Publik & Admin

Endpoint publik dapat diakses tanpa autentikasi; endpoint admin memerlukan cookie sesi

📦

Format JSON

Request body dan response menggunakan format JSON

🔒

HTTPS

Semua request harus menggunakan HTTPS untuk keamanan data

POST/api/leads

Submit Lead / Kontak

Kirim data prospek atau kontak ke sistem KelolaAja. Endpoint ini digunakan untuk mendaftarkan calon pelanggan yang tertarik dengan produk KelolaAja.

Request Body

FieldTipeWajib
email

Alamat email kontak

stringYa
name

Nama lengkap kontak

stringOpsional
phone

Nomor telepon kontak

stringOpsional
product

Produk yang diminati (mis. restoran, sekolah)

stringOpsional
message

Pesan atau catatan tambahan

stringOpsional
source

Sumber lead (default: "contact")

stringOpsional

Contoh Request

JSONContent-Type: application/json
{
  "name": "Budi Santoso",
  "email": "budi@contoh.com",
  "phone": "08123456789",
  "product": "restoran",
  "message": "Ingin mencoba demo untuk restoran saya",
  "source": "website"
}

Response

201Berhasil
{ "id": 42 }
400Validasi Gagal
{ "error": "Email wajib diisi" }
500Server Error
{ "error": "Internal server error" }
POST/api/chat-logs

Simpan Log Chat

Simpan pesan percakapan dari chatbot ke sistem KelolaAja. Setiap pesan dari pengguna maupun asisten dapat dicatat untuk keperluan analitik dan tindak lanjut.

Request Body

FieldTipeWajib
role

Peran pengirim pesan: "user" atau "assistant"

stringYa
message

Isi pesan yang dikirim

stringYa
session_id

ID sesi percakapan untuk mengelompokkan pesan

stringOpsional
email

Email pengguna jika diketahui (otomatis ditambahkan ke leads)

stringOpsional

Contoh Request

JSONContent-Type: application/json
{
  "session_id": "sess_abc123",
  "email": "budi@contoh.com",
  "role": "user",
  "message": "Berapa harga paket untuk restoran?"
}

Response

201Berhasil
{ "id": 17 }
400Validasi Gagal
{ "error": "role dan message wajib diisi" }
500Server Error
{ "error": "Internal server error" }
POST/api/public/checkout

Buat Langganan (Checkout)

Buat langganan baru untuk paket yang dipilih. Endpoint ini memproses permintaan berlangganan dan mengembalikan detail langganan yang telah dibuat.

Request Body

FieldTipeWajib
name

Nama pelanggan

stringYa
email

Alamat email pelanggan

stringYa
plan_id

ID paket langganan yang dipilih

numberYa
billing_cycle

Siklus penagihan: "monthly" atau "annual"

stringYa
phone

Nomor telepon pelanggan

stringOpsional
company

Nama perusahaan atau bisnis

stringOpsional
notes

Catatan atau permintaan tambahan

stringOpsional

Contoh Request

JSONContent-Type: application/json
{
  "name": "Budi Santoso",
  "email": "budi@contoh.com",
  "phone": "08123456789",
  "company": "Restoran Maju Jaya",
  "plan_id": 1,
  "billing_cycle": "monthly",
  "notes": "Mohon bantu setup awal"
}

Response

201Berhasil
{
  "id": 5,
  "name": "Budi Santoso",
  "email": "budi@contoh.com",
  "phone": "08123456789",
  "company": "Restoran Maju Jaya",
  "product_id": "restoran",
  "product_name": "Kelola Restoran",
  "plan_id": 1,
  "plan_tier": "startup",
  "billing_cycle": "monthly",
  "amount": 299000,
  "status": "pending",
  "notes": "Mohon bantu setup awal",
  "created_at": "2024-01-15T10:30:00.000Z"
}
400Validasi Gagal
{ "error": "name, email, plan_id, dan billing_cycle wajib diisi" }
404Paket Tidak Ditemukan
{ "error": "Paket tidak ditemukan atau tidak aktif" }
POST/api/admin/articlesPerlu Autentikasi Admin

Tulis Artikel

Buat artikel baru di platform KelolaAja. Endpoint ini memerlukan autentikasi admin menggunakan cookie sesi. Artikel yang dibuat akan langsung tersedia di halaman blog.

Request Body

FieldTipeWajib
slug

URL slug unik artikel (hanya huruf kecil, angka, dan tanda hubung)

stringYa
title

Judul artikel

stringYa
date

Tanggal terbit artikel dalam format YYYY-MM-DD

stringYa
category

Kategori artikel (mis. "tips", "panduan", "berita")

stringYa
excerpt

Ringkasan singkat artikel yang ditampilkan di daftar blog

stringOpsional
content

Isi lengkap artikel dalam format HTML atau teks

stringOpsional
readTime

Estimasi waktu baca dalam menit (default: 3)

numberOpsional

Contoh Request

JSONContent-Type: application/json
{
  "slug": "tips-mengelola-keuangan-bisnis",
  "title": "Tips Mengelola Keuangan Bisnis dengan Mudah",
  "date": "2024-01-20",
  "category": "tips",
  "excerpt": "Pelajari cara mengelola keuangan bisnis Anda secara efisien.",
  "content": "<p>Mengelola keuangan bisnis adalah kunci keberhasilan...</p>",
  "readTime": 5
}

Response

201Berhasil
{
  "id": 10,
  "slug": "tips-mengelola-keuangan-bisnis",
  "title": "Tips Mengelola Keuangan Bisnis dengan Mudah",
  "date": "2024-01-20",
  "category": "tips",
  "excerpt": "Pelajari cara mengelola keuangan bisnis Anda secara efisien.",
  "content": "<p>Mengelola keuangan bisnis adalah kunci keberhasilan...</p>",
  "readTime": 5
}
400Validasi Gagal
{ "error": "slug, title, date, dan category wajib diisi" }
401Tidak Terautentikasi
{ "error": "Unauthorized" }
409Slug Duplikat
{ "error": "Slug sudah digunakan di kategori yang sama" }

Ada pertanyaan tentang API?

Tim kami siap membantu Anda mengintegrasikan sistem dengan KelolaAja. Hubungi kami untuk dukungan teknis.