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.
Sebelum melakukan pemanggilan API, pastikan Anda telah memiliki:
Semua pemanggilan API WAPulse wajib menyertakan API Key Anda di dalam Header HTTP untuk verifikasi keamanan.
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Jangan pernah membagikan API Key Anda di sisi client-side (frontend publik) untuk mencegah penyalahgunaan.
Gunakan endpoint ini untuk mengirim pesan teks standar ke nomor WhatsApp tujuan.
/message/text
| 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. |
<?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);
}
}
}
{
"status": 'success',
"from": "628xxxxxxxxx,
"to": "628xxxxxxxxx,
"message": "Message has been added to the queue!."
}
Gunakan endpoint ini untuk mengirimkan file gambar (JPEG/PNG) beserta caption.
/message/media
| 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. |
<?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);
}
}
}
Cek status koneksi perangkat WhatsApp dan ambil QR Code jika perangkat belum terhubung.
/device/status
<?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();
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:
{
"event": "message.received",
"device": "628111222333",
"sender": "6289876543210",
"pushname": "Budi Customer",
"message": "Halo min, apakah produk ready?",
"timestamp": 1719320400
}