Appearance
Quickstart — kirim pesan pertama <10 menit
Panduan end-to-end dari nol: daftar akun → hubungkan WhatsApp → kirim pesan via API. Semua contoh pakai cURL, tinggal copy-paste (ganti nilai contoh dengan punyamu).
Base URL: https://waq.karyawah.id
1. Daftar akun
bash
curl -X POST https://waq.karyawah.id/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"email": "kamu@contoh.com",
"password": "passwordku123",
"fullName": "Nama Kamu"
}'Respons 201:
json
{ "id": "…", "email": "kamu@contoh.com", "email_verified": false }2. Verifikasi email
Status saat ini
Pengiriman email verifikasi otomatis belum aktif — setelah daftar, hubungi admin (kontak ada di Billing & Paket) untuk aktivasi akunmu. Langkah ini akan otomatis via email begitu integrasi email selesai.
Kalau kamu sudah pegang token verifikasi:
bash
curl -X POST https://waq.karyawah.id/v1/auth/verify-email \
-H "Content-Type: application/json" \
-d '{ "token": "<token-verifikasi>" }'3. Login → dapat JWT
bash
curl -X POST https://waq.karyawah.id/v1/auth/login \
-H "Content-Type: application/json" \
-d '{ "email": "kamu@contoh.com", "password": "passwordku123" }'Respons 200 (simpan access_token):
json
{
"access_token": "eyJhbGciOi…",
"refresh_token": "eyJhbGciOi…",
"token_type": "Bearer",
"user": { "id": "…", "email": "kamu@contoh.com", "role": "user" }
}Akun baru otomatis dapat Free Trial 7 hari (1 device, 100 pesan/hari).
bash
# simpan sebagai variabel biar contoh berikutnya ringkas
export TOKEN="eyJhbGciOi…"4. Buat device & scan QR
Device = 1 nomor WhatsApp yang terhubung.
bash
curl -X POST https://waq.karyawah.id/v1/devices \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "WA Utama" }'Respons 201 berisi id device (simpan). Lalu ambil QR code:
bash
curl https://waq.karyawah.id/v1/devices/<device_id>/qr \
-H "Authorization: Bearer $TOKEN"Respons berisi qr (PNG base64). Tampilkan & scan dari HP: WhatsApp → Perangkat Tertaut → Tautkan Perangkat. QR kedaluwarsa cepat — kalau gagal, panggil endpoint yang sama lagi untuk QR baru.
Setelah scan, sinkronkan status:
bash
curl -X POST https://waq.karyawah.id/v1/devices/<device_id>/sync \
-H "Authorization: Bearer $TOKEN"Tunggu sampai "status": "connected".
5. Kirim pesan pertama 🎉
bash
curl -X POST https://waq.karyawah.id/v1/messages/send \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"device_id": "<device_id>",
"to": "628123456789",
"type": "text",
"text": "Halo dari WAQ! 🚀"
}'Respons 201 dengan "status": "queued" — pesan masuk antrean dan dikirim dengan delay acak (anti-ban). Cek statusnya:
bash
curl https://waq.karyawah.id/v1/messages/<message_id> \
-H "Authorization: Bearer $TOKEN"Lifecycle status: queued → sending → sent (atau failed + error_message).
6. (Opsional) API key untuk servermu
Untuk integrasi dari backend (bukan dashboard), buat API key — lebih aman daripada menyimpan JWT yang cepat kedaluwarsa:
bash
curl -X POST https://waq.karyawah.id/v1/api-keys \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "Server Produksi" }'Simpan key-nya sekarang
Field key di respons hanya ditampilkan sekali. Hilang = cabut dan buat baru.
Selanjutnya kirim pesan pakai header X-API-Key (tanpa perlu login):
bash
curl -X POST https://waq.karyawah.id/v1/messages/send \
-H "X-API-Key: <api-key-kamu>" \
-H "Content-Type: application/json" \
-d '{ "device_id": "<device_id>", "to": "628123456789", "type": "text", "text": "Via API key!" }'Selanjutnya
- Semua endpoint + coba langsung dari browser: API Reference
- Terima event masuk (pesan diterima, status delivery): Webhooks
- Naikkan limit (device & pesan/hari): Billing & Paket
- Kena error? Troubleshooting