Kirim WhatsApp Blast Massal via API Kirimin dengan PHP

Kirim WhatsApp Blast Massal via API Kirimin dengan PHP

Setelah bisa kirim satu pesan, langkah berikutnya adalah blast — mengirim pesan ke banyak nomor sekaligus. Kirimin menyediakan endpoint /send-bulk yang memproses pengiriman secara asynchronous di background, jadi request API Anda tidak perlu menunggu ribuan pesan selesai terkirim satu per satu.

1. Format Request

Parameter recipients menerima beberapa format: array JSON objek, array nomor polos, atau string dipisah baris baru/koma.

POST https://app.kirimin.net/api/v1/send-bulk
Authorization: Bearer wab_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

{
  "session_id": "SESSION_ID_ANDA",
  "recipients": [
    { "phone": "628111111111", "message": "Halo Budi, promo spesial untukmu!" },
    { "phone": "628222222222", "message": "Halo Ani, promo spesial untukmu!" }
  ],
  "delay": 3000
}

Jika semua penerima menerima pesan yang sama, cukup isi message di level utama dan recipients cukup berupa array nomor:

{
  "session_id": "SESSION_ID_ANDA",
  "recipients": ["628111111111", "628222222222", "628333333333"],
  "message": "Reminder: promo berakhir hari ini!",
  "delay": 3000
}

2. Contoh Kode PHP

<?php

$apiKey    = 'wab_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$sessionId = 'SESSION_ID_ANDA';

$payload = [
    'session_id' => $sessionId,
    'recipients' => [
        '628111111111',
        '628222222222',
        '628333333333',
    ],
    'message' => 'Reminder: promo berakhir hari ini!',
    'delay'   => 3000, // jeda antar pesan (ms), mencegah nomor kena banned
];

$ch = curl_init('https://app.kirimin.net/api/v1/send-bulk');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => json_encode($payload),
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);

echo "Campaign ID: " . $result['campaign_id'];
echo "Total penerima: " . $result['total'];

Endpoint ini merespons dengan status 202 Accepted berisi campaign_id — bukan hasil kirim final, karena prosesnya berjalan di background.

3. Cek Status Blast

Gunakan campaign_id dari response sebelumnya untuk memantau progres:

GET https://app.kirimin.net/api/v1/blast/{campaign_id}
Authorization: Bearer wab_xxxxxxxxxxxxxxxxxxxxxxxxxx
{
  "success": true,
  "data": {
    "id": 482,
    "status": "done",
    "total": 3,
    "sent": 3,
    "failed": 0,
    "pending": 0,
    "success_rate": 100
  }
}
⚠️ Jangan set delay terlalu rendah (di bawah 1000ms) untuk volume besar — jeda antar pesan yang wajar membantu mencegah nomor WhatsApp terkena rate-limit atau banned.

4. Blast dengan Gambar

Endpoint /send-bulk juga menerima file image (multipart/form-data) yang akan dikirim sebagai lampiran ke seluruh penerima dengan message sebagai caption.

Siap Coba Integrasinya Sendiri?

Trial gratis 7 hari, semua fitur unlimited aktif — API Key bisa langsung dipakai dari dashboard.

Daftar Gratis Sekarang →