REST API REFERENCE

WaveBot WhatsApp API Documentation

WaveBot menyediakan REST API berkecepatan tinggi yang memungkinkan Anda mengintegrasikan notifikasi WhatsApp otomatis, blast pesan massal, polling interaktif, pengingat tagihan, hingga interaksi AI ke dalam aplikasi web, mobile, sistem ERP, maupun CRM Anda.

Base URL Endpoint
https://api.wavebot.id/api/wa (atau host domain Anda)
Instant Send

Latensi pengiriman rendah di bawah 1 detik menggunakan websocket engine.

Multi-Device

Mendukung banyak nomor WhatsApp (session terpisah) dalam satu akun.

AI-Powered

Integrasi Groq LLM untuk auto-reply kontekstual dan customer service otomatis.

Autentikasi & Identifikasi Session

Setiap panggilan API memerlukan parameter sessionId. Session ID ini merupakan identitas unik dari nomor WhatsApp Anda yang terhubung pada menu Devices / Perangkat di Dashboard.

Tips Praktis: Buka Dashboard > Devices > Tambah Perangkat > Scan QR. Setelah status perangkat CONNECTED, gunakan nama atau ID sesi tersebut pada setiap request API.
POST/api/wa/send

Kirim Pesan Teks WhatsApp

Mengirimkan pesan teks personal, OTP, notifikasi order, atau broadcast ke nomor tujuan tertentu.

Request Body (JSON)

FieldTipeWajibKeterangan
sessionIdstringYaID sesi perangkat WhatsApp yang terhubung
numberstringYaNomor WhatsApp tujuan (format 628xxx atau 08xxx) atau Group ID ([email protected])
messagestringYaKonten pesan teks yang ingin dikirimkan
Contoh Request (cURL)
curl -X POST https://api.wavebot.id/api/wa/send \
  -H "Content-Type: application/json" \
  -d '{
    "sessionId": "session_628123456789",
    "number": "6289876543210",
    "message": "Halo! Kode verifikasi OTP Anda adalah: 948210"
  }'

Contoh Response Berhasil (200 OK)

{
  "success": true,
  "result": {
    "key": {
      "remoteJid": "[email protected]",
      "fromMe": true,
      "id": "BAE53819A2BC391A"
    },
    "messageTimestamp": "1728892400"
  }
}
POST/api/wa/send (Polling)

Kirim Polling WhatsApp Interaktif

Buat survei, voting, atau kuesioner interaktif langsung di chat WhatsApp dengan mengirimkan payload JSON polling pada field message.

Payload Polling (JSON)
curl -X POST https://api.wavebot.id/api/wa/send \
  -H "Content-Type: application/json" \
  -d '{
    "sessionId": "session_628123456789",
    "number": "6289876543210",
    "message": "{\"type\":\"poll\",\"name\":\"Bagaimana kepuasan belanja Anda?\",\"options\":[\"Sangat Puas\",\"Cukup Puas\",\"Kurang Puas\"]}"
  }'
GET/api/wa/status

Cek Status Koneksi Sesi Perangkat

Periksa apakah nomor WhatsApp sedang aktif terhubung (CONNECTED), terputus, atau sedang menunggu scan QR.

Request (cURL)
curl -X GET "https://api.wavebot.id/api/wa/status?sessionId=session_628123456789"
Response (200 OK)
{
  "success": true,
  "sessionId": "session_628123456789",
  "status": "CONNECTED",
  "user": {
    "id": "628123456789:[email protected]",
    "name": "WaveBot Business"
  }
}
GET/api/wa/groups

Ambil Daftar Grup WhatsApp

Mengambil semua daftar grup WhatsApp yang diikuti oleh nomor bot untuk keperluan broadcast ke grup atau otomasi komunitas.

{
  "success": true,
  "count": 2,
  "groups": [
    {
      "id": "[email protected]",
      "name": "Komunitas Pelanggan VIP"
    },
    {
      "id": "[email protected]",
      "name": "Customer Support Internal"
    }
  ]
}

HTTP Status & Error Codes

Format respon error standar yang dikembalikan oleh WaveBot API:

CodeStatusPenyebab & Solusi
200OKPesan atau permintaan berhasil diproses secara langsung.
400Bad RequestParameter wajib kurang (sessionId, number, atau message kosong).
404Not FoundPerangkat atau session ID tidak ditemukan di server.
500Server ErrorSesi WhatsApp terputus atau nomor tujuan belum terdaftar di WA.

Contoh Implementasi Multi-Bahasa

Salin kode di bawah untuk mengintegrasikan WaveBot langsung ke dalam aplikasi Node.js, PHP, atau Python Anda.

JavaScript / Node.js (Fetch)
const response = await fetch("https://api.wavebot.id/api/wa/send", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    sessionId: "YOUR_SESSION_ID",
    number: "6281234567890",
    message: "Halo dari Node.js!"
  })
});

const data = await response.json();
console.log(data);
PHP (cURL)
<?php
$curl = curl_init();
curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.wavebot.id/api/wa/send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => json_encode([
    "sessionId" => "YOUR_SESSION_ID",
    "number" => "6281234567890",
    "message" => "Halo dari PHP Backend!"
  ]),
  CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
]);

$response = curl_exec($curl);
curl_close($curl);
echo $response;
Python (Requests)
import requests

url = "https://api.wavebot.id/api/wa/send"
payload = {
    "sessionId": "YOUR_SESSION_ID",
    "number": "6281234567890",
    "message": "Halo dari Python!"
}

response = requests.post(url, json=payload)
print(response.json())