Appearance
Rate Limit & Quota
Gateway membatasi kecepatan pengiriman untuk menjaga kesehatan nomor WhatsApp Anda dan mencegah penyalahgunaan.
Dua Jenis Pembatasan
1. Rate Limit (Kecepatan Pengiriman)
Membatasi berapa banyak pesan yang bisa Anda kirim per detik.
| Scope | Batas | Keterangan |
|---|---|---|
| Per akun | 20 pesan/detik (burst hingga 40) | Batas total semua sesi dalam akun Anda |
| Per sesi (per nomor) | 1 pesan/detik (burst hingga 5) | Batas untuk satu nomor WhatsApp |
Burst artinya boleh melebihi rata-rata untuk sesaat, tapi akan dibatasi kembali jika terus menerus.
2. Quota Bulanan
Membatasi berapa total pesan yang bisa dikirim dalam satu bulan.
- Batas quota tergantung paket langganan Anda
- Sisa quota bisa dilihat di Dashboard → Penggunaan
Apa yang Terjadi Saat Limit Terlampaui?
Server merespons dengan 429 Too Many Requests:
json
{
"error": "session send rate exceeded"
}Response juga menyertakan header:
Retry-After: 1Nilai Retry-After adalah jumlah detik yang harus ditunggu sebelum mencoba lagi.
Cara Menangani Rate Limit
Cara 1 — Antrekan Pesan (Direkomendasikan)
Alih-alih mengirim langsung dari loop, masukkan pesan ke antrean internal aplikasi Anda, lalu proses dengan kecepatan yang terkontrol.
javascript
// Contoh sederhana: kirim 1 pesan per detik
async function kirimDenganDelay(pesanList) {
for (const pesan of pesanList) {
await kirimPesan(pesan)
await tunggu(1000) // tunggu 1 detik
}
}Cara 2 — Exponential Backoff saat 429
Jika mendapat 429, tunggu sebelum retry. Setiap gagal, gandakan waktu tunggu:
javascript
async function kirimDenganRetry(payload, maxCoba = 5) {
let tungguMs = 1000 // mulai 1 detik
for (let coba = 1; coba <= maxCoba; coba++) {
const resp = await fetch('/v1/messages', {
method: 'POST',
body: JSON.stringify(payload),
headers: { /* ... */ }
})
if (resp.status === 429) {
const retryAfter = resp.headers.get('Retry-After') || 1
await new Promise(r => setTimeout(r, retryAfter * 1000))
tungguMs = Math.min(tungguMs * 2, 30000) // maks 30 detik
continue
}
return resp.json()
}
throw new Error('Gagal setelah beberapa kali retry')
}Tips Menjaga Nomor WhatsApp Tetap Sehat
Selain batas teknis, ada batas "etika" penggunaan WhatsApp yang penting dijaga:
- Kirim ke penerima yang relevan. Mengirim pesan ke banyak orang yang tidak mengenal Anda berisiko nomor dilaporkan sebagai spam dan diblokir oleh WhatsApp.
- Hindari pengiriman massal ke nomor acak. WhatsApp aktif mendeteksi pola spam.
- Jaga rasio balasan. Nomor yang banyak kirim tapi tidak pernah dibalas dicurigai sebagai spam.
- Gunakan untuk komunikasi yang diharapkan pengguna — notifikasi transaksi, OTP, update pesanan, dll.
Pantau Penggunaan
Dari Dashboard → Penggunaan, Anda bisa melihat:
- Total pesan terkirim hari ini dan bulan ini
- Sisa kuota bulanan
- Grafik penggunaan 14 hari terakhir