Pengantar WAPulse API

Selamat datang di dokumentasi resmi WAPulse API. Integrasikan fitur pengiriman pesan WhatsApp secara otomatis ke dalam aplikasi atau sistem Anda dengan mudah, cepat, dan aman.

Persiapan Awal

Sebelum melakukan pemanggilan API, pastikan Anda telah memiliki:

  • Akun aktif di platform WAPulse.
  • Token API (API Key) yang dapat diambil melalui halaman Dashboard Anda.
  • Nomor WhatsApp yang telah terhubung (Scan QR Code di panel perangkat).

Autentikasi

Semua pemanggilan API WAPulse wajib menyertakan API Key Anda di dalam Header HTTP untuk verifikasi keamanan.

Format Header
HTTP Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Jangan pernah membagikan API Key Anda di sisi client-side (frontend publik) untuk mencegah penyalahgunaan.

Kirim Pesan Teks

Gunakan endpoint ini untuk mengirim pesan teks standar ke nomor WhatsApp tujuan.

POST /message/text
Parameter Request (JSON Body)
Field Tipe Status Keterangan
target string Wajib Nomor tujuan berformat internasional (contoh: 6281234567890).
message string Wajib Isi pesan teks yang ingin dikirimkan.
delay_min string Wajib Jeda minimal untuk menunggu mengirim.
delay_max string Wajib Jeda maximal untuk menunggu mengirim, delay min & max menghasilkan angka acak.
schedule string Opsional Jadwal untuk mengirim pesan - format 24 Jam.
Contoh Implementasi Request
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "http://wa-api.smartbio.link/api/v1/message/text",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    "target" => "628xxxxxxxxx",
	"message" => "kirim pesan via API",
	"delay_min" => 3,
	"delay_max" => 5,
	//"schedule" => "2030-06-20 06:00:00" //Opsional
  ]),
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer ".$YOUR_API_KEY,
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const axios = require('axios');

async function sendMessage() {
  try {
    const response = await axios.post('http://wa-api.smartbio.link/api/v1/message/text', {
      target: "628xxxxxxxxx",
      message: "kirim pesan via API",
      delay_min: 3,
      delay_max: 5,
      //schedule: "2030-06-20 06:00:00" // Opsional
    }, {
      headers: {
        'Authorization': `Bearer ${YOUR_API_KEY}`,
        'Content-Type': 'application/json'
      },
      timeout: 30000 // 30 seconds timeout
    });

    console.log(response.data);
  } catch (error) {
    if (error.response) {
      console.error(`Error #${error.response.status}:`, error.response.data);
    } else if (error.request) {
      console.error("cURL Error #: No response received", error.request);
    } else {
      console.error("cURL Error #:", error.message);
    }
  }
}
Contoh Response (JSON Success)
Response 200 OK
{
  "status": 'success',
  "from": "628xxxxxxxxx,
  "to": "628xxxxxxxxx,
  "message": "Message has been added to the queue!."
}

Kirim Pesan Gambar

Gunakan endpoint ini untuk mengirimkan file gambar (JPEG/PNG) beserta caption.

POST /message/media
Parameter Request (JSON Body)
Field Tipe Status Keterangan
target string Wajib Nomor tujuan berformat internasional (contoh: 6281234567890).
message string Wajib Isi pesan teks yang ingin dikirimkan.
image string Wajib Data gambar bisa dilihat dicontoh request.
delay_min string Wajib Jeda minimal untuk menunggu mengirim.
delay_max string Wajib Jeda maximal untuk menunggu mengirim, delay min & max menghasilkan angka acak.
schedule string Opsional Jadwal untuk mengirim pesan - format 24 Jam.
Contoh Implementasi Request
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "http://wa-api.smartbio.link/api/v1/message/image",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => [
    "target" => "628xxxxxxxxx",
	"message" => "testing kirim gambar via API",
	"image" => new CURLFile('test.jpg'),
	"delay_min" => 3,
	"delay_max" => 5,	
	//"schedule" => "2030-06-20 06:00:00" //Opsional
  ],
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer ".$YOUR_API_KEY
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

async function sendImageMessage() {
  const data = new FormData();
  data.append('target', '628xxxxxxxxx');
  data.append('message', 'testing kirim gambar via API');
  data.append('image', fs.createReadStream('test.jpg'));
  data.append('delay_min', '3');
  data.append('delay_max', '5');
  // data.append('schedule', '2030-06-20 06:00:00'); //Opsional

  const config = {
    method: 'post',
    maxBodyLength: Infinity,
    url: 'http://wa-api.smartbio.link/api/v1/message/image',
    headers: { 
      'Authorization': `Bearer ${YOUR_API_KEY}`,
      ...data.getHeaders()
    },
    data: data
  };

  try {
    const response = await axios.request(config);
    console.log(response.data);
  } catch (error) {
    if (error.response) {
      console.log("API Error:", error.response.data);
    } else {
      console.log("cURL Error #:", error.message);
    }
  }
}

Status Koneksi / QR

Cek status koneksi perangkat WhatsApp dan ambil QR Code jika perangkat belum terhubung.

GET /device/status
Contoh Implementasi Request
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "http://wa-api.smartbio.link/api/v1/device/status",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer ".$YOUR_API_KEY,
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const axios = require('axios');

async function getDeviceStatus() {
  try {
    const response = await axios.post('http://wa-api.smartbio.link/api/v1/device/status', {}, {
      headers: {
        'Authorization': `Bearer ${YOUR_API_KEY}`,
        'Content-Type': 'application/json'
      },
      timeout: 30000 // 30 seconds timeout
    });

    console.log(response.data);
  } catch (error) {
    if (error.response) {
      console.error(`Error #${error.response.status}:`, error.response.data);
    } else if (error.request) {
      console.error("cURL Error #: No response received", error.request);
    } else {
      console.error("cURL Error #:", error.message);
    }
  }
}

getDeviceStatus();

Konfigurasi Webhook

Terima pesan masuk (incoming message) dan laporan status pengiriman pesan secara realtime langsung ke server Anda.

Anda dapat menggunakan URL webhook Anda melalui edit device Devices > Edit Device > Webhook URL. Payload data yang dikirimkan ke server Anda menggunakan format JSON POST dengan struktur standar:

Contoh Webhook Payload (JSON)
{
  "event": "message.received",
  "device": "628111222333",
  "sender": "6289876543210",
  "pushname": "Budi Customer",
  "message": "Halo min, apakah produk ready?",
  "timestamp": 1719320400
}