Base URL
https://app.senderblast.com
Content-Type
application/json
Authentication
API Key in Body
POST /api/v1/send-message
Send Text Message

Kirim pesan teks WhatsApp ke nomor tujuan.

Request Parameters
Parameter Type Required Description
api_key string Required API Key untuk autentikasi
sender string Required Nomor pengirim (device phone number)
number string Required Nomor tujuan penerima pesan
message string Required Isi pesan teks (maksimal 1000 karakter)
options object Optional Opsi tambahan untuk pengiriman pesan
{
  "api_key": "your_api_key_here",
  "sender": "6281234567890",
  "number": "6289876543210",
  "message": "Halo, ini adalah pesan test"
}

// Contoh penggunaan API Send Message dengan PHP cURL

<?php

$apiUrl = 'https://app.senderblast.com/api/v1/send-message';

$data = [
    'api_key' => 'your_api_key_here',
    'sender'  => '6281234567890',
    'number'  => '6289876543210',
    'message' => 'Halo, ini adalah pesan test'
];

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Accept: application/json'
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$result = json_decode($response, true);

if ($httpCode == 200 && !empty($result['success'])) {
    echo "Pesan berhasil dikirim!";
} else {
    echo "Gagal mengirim pesan: " . ($result['message'] ?? 'Unknown error');
}
?>
# Contoh penggunaan API Send Message dengan cURL

curl -X POST https://app.senderblast.com/api/v1/send-message \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "api_key": "your_api_key_here",
    "sender": "6281234567890",
    "number": "6289876543210",
    "message": "Halo, ini adalah pesan test"
  }'
200 OK
{
  "success": true,
  "status": "sent",
  "message": "Pesan teks berhasil dikirim"
}
401 Unauthorized
{
  "success": false,
  "message": "API Key tidak valid"
}
POST /api/v1/send-media
Send Media Message

Kirim pesan media (gambar, video, audio, atau dokumen) WhatsApp ke nomor tujuan.

Request Parameters
Parameter Type Required Description
api_key string Required API Key untuk autentikasi
sender string Required Nomor pengirim (device phone number)
number string Required Nomor tujuan penerima pesan
mediaType string Required image, video, audio, atau document
url string (URL) Required URL file media yang akan dikirim
caption string Optional Caption atau deskripsi media (maksimal 1000 karakter)
{
  "api_key": "your_api_key_here",
  "sender": "6281234567890",
  "number": "6289876543210",
  "mediaType": "image",
  "url": "https://example.com/image.jpg",
  "caption": "Ini adalah contoh gambar"
}

// Contoh penggunaan API Send Media dengan PHP cURL
<?php

$apiUrl = 'https://app.senderblast.com/api/v1/send-media';

$data = [
    'api_key' => 'your_api_key_here',
    'sender' => '6281234567890',
    'number' => '6289876543210',
    'mediaType' => 'image',
    'url' => 'https://example.com/image.jpg',
    'caption' => 'Ini adalah contoh gambar'
];

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Accept: application/json'
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$result = json_decode($response, true);

if ($httpCode == 200 && $result['success']) {
    echo "Pesan media berhasil dikirim!";
} else {
    echo "Gagal mengirim pesan: " . $result['message'] ?? 'Unknown error';
}
?>
# Contoh penggunaan API Send Media dengan cURL

curl -X POST https://app.senderblast.com/api/v1/send-media \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "api_key": "your_api_key_here",
    "sender": "6281234567890",
    "number": "6289876543210",
    "mediaType": "image",
    "url": "https://example.com/image.jpg",
    "caption": "Ini adalah contoh gambar"
  }'
200 OK
{
  "success": true,
  "status": "sent",
  "message": "Pesan media berhasil dikirim"
}
POST /api/v1/send-poll
Send Poll Message

Kirim pesan polling/jajak pendapat WhatsApp ke nomor tujuan.

Request Parameters
Parameter Type Required Description
api_key string Required API Key untuk autentikasi
sender string Required Nomor pengirim (device phone number)
number string Required Nomor tujuan penerima pesan
question string Required Pertanyaan poll (maksimal 100 karakter)
options array Required Array opsi jawaban (min 2, max 12 opsi)
{
  "api_key": "your_api_key_here",
  "sender": "6281234567890",
  "number": "6289876543210",
  "question": "Apa warna favorit Anda?",
  "options": [
    "Merah",
    "Biru",
    "Hijau",
    "Kuning"
  ]
}

// Contoh penggunaan API Send Poll dengan PHP cURL

<?php

$apiUrl = 'https://app.senderblast.com/api/v1/send-poll';

$data = [
    'api_key' => 'your_api_key_here',
    'sender' => '6281234567890',
    'number' => '6289876543210',
    'question' => 'Apa warna favorit Anda?',
    'options' => [
        'Merah',
        'Biru',
        'Hijau',
        'Kuning'
    ]
];

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Accept: application/json'
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$result = json_decode($response, true);

if ($httpCode == 200 && $result['success']) {
    echo "Pesan poll berhasil dikirim!";
} else {
    echo "Gagal mengirim pesan: " . $result['message'] ?? 'Unknown error';
}
?>
# Contoh penggunaan API Send Poll dengan cURL

curl -X POST https://app.senderblast.com/api/v1/send-poll \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "api_key": "your_api_key_here",
    "sender": "6281234567890",
    "number": "6289876543210",
    "question": "Apa warna favorit Anda?",
    "options": [
      "Merah",
      "Biru",
      "Hijau",
      "Kuning"
    ]
  }'
200 OK
{
  "success": true,
  "status": "sent",
  "message": "Pesan poll berhasil dikirim"
}
POST /api/v1/send-vcard
Send VCard Message

Kirim kartu kontak (vCard) WhatsApp ke nomor tujuan.

Request Parameters
Parameter Type Required Description
api_key string Required API Key untuk autentikasi
sender string Required Nomor pengirim (device phone number)
number string Required Nomor tujuan penerima pesan
name string Required Nama lengkap kontak (maksimal 100 karakter)
phone string Required Nomor telepon kontak
organization string Optional Nama organisasi/perusahaan (maksimal 100 karakter)
email string (email) Optional Email kontak
{
  "api_key": "your_api_key_here",
  "sender": "6281234567890",
  "number": "6289876543210",
  "name": "John Doe",
  "phone": "6281234567890",
  "organization": "PT Example",
  "email": "john@example.com"
}

// Contoh penggunaan API Send VCard dengan PHP cURL

<?php

$apiUrl = 'https://app.senderblast.com/api/v1/send-vcard';

$data = [
    'api_key' => 'your_api_key_here',
    'sender' => '6281234567890',
    'number'=> '6289876543210',
    'name' => 'John Doe',
    'phone' => '6281234567890',
    'organization'=> 'PT Example',
    'email' => 'john@example.com'
];

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Accept: application/json'
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$result = json_decode($response, true);

if ($httpCode == 200 && $result['success']) {
    echo "Pesan vCard berhasil dikirim!";
} else {
    echo "Gagal mengirim pesan: " . $result['message'] ?? 'Unknown error';
}
?>
# Contoh penggunaan API Send VCard dengan cURL

curl -X POST https://app.senderblast.com/api/v1/send-vcard \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "api_key": "your_api_key_here",
    "sender": "6281234567890",
    "number": "6289876543210",
    "name": "John Doe",
    "phone": "6281234567890",
    "organization": "PT Example",
    "email": "john@example.com"
  }'
200 OK
{
  "success": true,
  "message": "Pesan vCard berhasil dikirim",
  "data": {
    "id": 123,
    "status": "sent",
    "timestamp": "2024-01-01T12:00:00Z"
  }
}
POST /api/v1/send-location
Send Location Message

Kirim pesan lokasi (latitude & longitude) WhatsApp ke nomor tujuan.

Request Parameters
Parameter Type Required Description
api_key string Required API Key untuk autentikasi
sender string Required Nomor pengirim (device phone number)
number string Required Nomor tujuan penerima pesan
latitude numeric Required Koordinat latitude lokasi
longitude numeric Required Koordinat longitude lokasi
name string Optional Nama lokasi (maksimal 100 karakter)
address string Optional Alamat lengkap lokasi (maksimal 200 karakter)
{
  "api_key": "your_api_key_here",
  "sender": "6281234567890",
  "number": "6289876543210",
  "latitude": -6.2088,
  "longitude": 106.8456,
  "name": "Monas, Jakarta",
  "address": "Jl. Medan Merdeka Barat, Jakarta Pusat"
}

// Contoh penggunaan API Send Location dengan PHP cURL

<?php

$apiUrl = 'https://app.senderblast.com/api/v1/send-location';

$data = [
    'api_key' => 'your_api_key_here',
    'sender'=> '6281234567890',
    'number' => '6289876543210',
    'latitude' => -6.2088,
    'longitude' => 106.8456,
    'name' => 'Monas, Jakarta',
    'address'=> 'Jl. Medan Merdeka Barat, Jakarta Pusat'
];

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Accept: application/json'
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$result = json_decode($response, true);

if ($httpCode == 200 && $result['success']) {
    echo "Pesan lokasi berhasil dikirim!";
} else {
    echo "Gagal mengirim pesan: " . $result['message'] ?? 'Unknown error';
}
?>
# Contoh penggunaan API Send Location dengan cURL

curl -X POST https://app.senderblast.com/api/v1/send-location \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "api_key": "your_api_key_here",
    "sender": "6281234567890",
    "number": "6289876543210",
    "latitude": -6.2088,
    "longitude": 106.8456,
    "name": "Monas, Jakarta",
    "address": "Jl. Medan Merdeka Barat, Jakarta Pusat"
  }'
200 OK
{
  "success": true,
  "message": "Pesan lokasi berhasil dikirim",
  "data": {
    "id": 123,
    "status": "sent",
    "timestamp": "2024-01-01T12:00:00Z"
  }
}
POST /api/v1/send-sticker
Send Sticker Message

Kirim sticker WhatsApp ke nomor tujuan.

Request Parameters
Parameter Type Required Description
api_key string Required API Key untuk autentikasi
sender string Required Nomor pengirim (device phone number)
number string Required Nomor tujuan penerima pesan
url string (URL) Required URL file sticker yang akan dikirim
{
  "api_key": "your_api_key_here",
  "sender": "6281234567890",
  "number": "6289876543210",
  "url": "https://example.com/sticker.webp"
}

// Contoh penggunaan API Send Sticker dengan PHP cURL
<?php

$apiUrl = 'https://app.senderblast.com/api/v1/send-sticker';

$data = [
    'api_key' => 'your_api_key_here',
    'sender' => '6281234567890',
    'number' => '6289876543210',
    'url' => 'https://example.com/sticker.webp'
];

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Accept: application/json'
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$result = json_decode($response, true);

if ($httpCode == 200 && $result['success']) {
    echo "Pesan sticker berhasil dikirim!";
} else {
    echo "Gagal mengirim pesan: " . $result['message'] ?? 'Unknown error';
}
?>
# Contoh penggunaan API Send Sticker dengan cURL

curl -X POST https://app.senderblast.com/api/v1/send-sticker \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "api_key": "your_api_key_here",
    "sender": "6281234567890",
    "number": "6289876543210",
    "url": "https://example.com/sticker.webp"
  }'
200 OK
{
  "success": true,
  "message": "Pesan sticker berhasil dikirim",
  "data": {
    "id": 123,
    "status": "sent",
    "timestamp": "2024-01-01T12:00:00Z"
  }
}
POST
Webhook Incoming

Kami akan mengirimkan webhook ke sistem anda sesuai event yang di pilih

Verifikasi signature
Parameter Type Required Description
secret key string Required Secret key webhook dipakai untuk membuat dan memverifikasi tanda tangan HMAC-SHA256 pada header X-Webhook-Signature
//Contoh payload event message received
{
  "event": "message.received",
  "device": "6281234567890",
  "message": "Halo, ini foto",
  "from": "6289876543210",
  "name": "Nama Pengirim",
  "participant": null,
  "ppUrl": "https://pps.whatsapp.net/...",
  "media": {
    "caption": "Halo, ini foto",
    "fileName": "foto.jpg",
    "data": "",
    "mimetype": "image/jpeg"
  }
}

//Contoh payload event message sent
{
  "event": "message.sent",
  "device": "6281234567890",
  "receiver": "6289876543210",
  "message_type": "text",
  "status": "sent",
  "sent_at": "2026-02-06T12:14:16+07:00",
  "message_data": {
    "text": "Halo dari Senderblast",
    "options": {}
  }
}

//Contoh payload event sesi terhubung
{
  "event": "session.connected",
  "device": "6281234567890",
  "status": "connected",
  "timestamp": "2026-02-06T12:22:38+07:00"
}

//Contoh payload event sesi terputus
{
  "event": "session.disconnected",
  "device": "6281234567890",
  "status": "disconnected",
  "timestamp": "2026-02-06T12:22:38+07:00"
}

// Contoh penerima webhook (PHP)
<?php

if (($_SERVER['REQUEST_METHOD'] ?? 'GET') !== 'POST') {
    http_response_code(405);
    echo json_encode(['success' => false, 'message' => 'POST only']);
    exit;
}

// Ganti dengan secret webhook Anda
$secret = 'WEBHOOK_SECRET';

// baca raw body
$rawBody = file_get_contents('php://input');
$headers = getallheaders();
$event = $headers['X-Webhook-Event'] ?? '';
$signature = $headers['X-Webhook-Signature'] ?? '';

// Verifikasi HMAC-SHA256
$expected = hash_hmac('sha256', $rawBody, $secret);
if (!hash_equals($expected, $signature)) {
    http_response_code(401);
    echo 'Invalid signature';
    exit;
}

// parse JSON
$data = json_decode($rawBody, true);

file_put_contents('webhook.log', "[".date('c')."] ".json_encode($data).PHP_EOL, FILE_APPEND);
$event = ($data['event'] ?? '');
$device = ($data['device'] ?? '');
$message = strtolower((string) $data['message']);
$from = ($data['from'] ?? '');
$name = ($data['name'] ?? '');

// TODO: proses event sesuai kebutuhan, contoh untuk auto respon:
  if ($event === 'message.received') {
    if ($message === 'tes pesan text') {
        echo json_encode([
            'text'=> 'Halo '.$name.', nomor kamu ' .$from

        ]);
        exit;
    }

    if ($message === 'tes pesan poll') {
        echo json_encode([
            'type' => 'poll',
            'name' => 'Pilih menu',
            'options' => ['A', 'B', 'C'],
            'selectableCount' => 1
        ]);
        exit;
    }

    if ($message === 'tes pesan vcard') {
        echo json_encode([
            'type' => 'vcard',
            'contact' => [
                'name' => 'Admin',
                'phoneNumber' => '6281234567890',
                'email' => 'admin@example.com'
            ]
        ]);
        exit;
    }

    if ($message === 'tes pesan location') {
        echo json_encode([
            'type' => 'location',
            'latitude' => -6.2,
            'longitude' => 106.8,
            'name' => 'Kantor',
            'address' => 'Jakarta'
        ]);
        exit;
    }

    if ($message === 'tes pesan sticker') {
        echo json_encode([
            'type' => 'sticker',
            'url' => 'https://example.com/sticker.webp'
        ]);
        exit;
    }

    if ($message === 'tes pesan audio') {
        echo json_encode([
            'type' => 'audio',
            'url' => 'https://example.com/audio.mp3',
            'caption' => 'Ini audio'
        ]);
        exit;
    }

    if ($message === 'tes pesan image') {
        echo json_encode([
            'type' => 'image',
            'url' => 'https://example.com/image.jpeg',
            'caption' => 'Ini gambar'
        ]);
        exit;
    }

    if ($message === 'tes pesan video') {
        echo json_encode([
            'type' => 'video',
            'url' => 'https://example.com/video.mp4',
            'caption' => 'Ini video'
        ]);
        exit;
    }

    if ($message === 'tes pesan document') {
        echo json_encode([
            'type' => 'document',
            'url' => 'https://example.com/file.pdf',
            'caption' => 'Ini file'
        ]);
        exit;
    }
}

http_response_code(200);
echo 'OK';
Status Codes
Code Description
200 Request berhasil
401 API Key tidak valid
403 Kuota habis atau permission tidak cukup
404 Device tidak ditemukan atau tidak aktif
422 Validasi parameter gagal
500 Terjadi kesalahan server
Catatan Penting
  • Device harus dalam status connected sebelum mengirim pesan
  • API Key harus memiliki permission yang sesuai dengan endpoint yang digunakan
  • Setiap pesan yang berhasil dikirim akan mengurangi kuota pesan Anda
  • URL media/sticker harus dapat diakses secara publik (bukan localhost)
  • Nomor telepon harus dalam format internasional (dengan kode negara)