DOKUMENTASI

Dokumentasi API WA Gateway

Kirim pesan WhatsApp langsung dari aplikasi Anda lewat REST API sederhana. Halaman ini menjelaskan cara membuat API key hingga contoh kode siap pakai.

1. Mulai Cepat

  1. Login ke dashboard dengan Google, akun & workspace dibuat otomatis.
  2. Hubungkan minimal satu perangkat WhatsApp lewat scan QR di menu Perangkat.
  3. Buka menu API Key, isi nama key (mis. Production), lalu klik Buat API Key.
  4. Salin key yang tampil, formatnya wg_<prefix>_<secret> dan hanya ditampilkan sekali, tidak bisa dilihat ulang.
  5. Gunakan key tersebut sebagai Bearer token pada setiap request API di bawah.

Maksimal 5 API key aktif per workspace. Key lama bisa direvoke kapan saja dari halaman API Key tanpa memengaruhi key lainnya.

2. Autentikasi

Semua endpoint di bawah /api/* memerlukan header Authorization berisi Bearer token API key workspace Anda.

Authorization: Bearer wg_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Kemungkinan error autentikasi:

  • 401 Unauthorized, header Authorization tidak ada.
  • 401, format token salah (harus wg_...).
  • 401, API key kedaluwarsa atau tidak valid (sudah direvoke).

3. Kirim Pesan Tunggal

POST/api/messages/send

Mengirim satu pesan WhatsApp ke satu nomor tujuan.

Request Body

FieldTipeWajibKeterangan
tostringYaNomor tujuan, 5–30 karakter (mis. 6281234567890)
messagestringYaIsi pesan, 1–4000 karakter
device_idstringOpsionalID perangkat pengirim (10 karakter). Jika kosong, dipilih otomatis (round-robin)
client_message_iduuidOpsionalID unik dari sisi klien untuk idempoten/pelacakan
retry_from_message_iduuidOpsionalID pesan sebelumnya yang ingin dikirim ulang

Response 202

{ "queued": true, "jobId": "...", "remaining": 199 }
curl -X POST https://wa-gateway.vako.my.id/api/messages/send \
  -H "Authorization: Bearer wg_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"to":"6281234567890","message":"Halo dari API!"}'

4. Kirim Pesan Massal

POST/api/messages/send/bulk

Mengirim pesan yang sama ke banyak nomor tujuan sekaligus (maks 20 nomor).

Request Body

FieldTipeWajibKeterangan
tostring[]YaDaftar nomor tujuan, 1–20 item, tiap nomor min. 5 karakter
messagestringYaIsi pesan, 1–4000 karakter
device_idstringOpsionalID perangkat pengirim (10 karakter)
client_message_iduuidOpsionalHanya berlaku jika to berisi 1 nomor
client_message_idsuuid[]OpsionalPanjang harus sama dengan jumlah to

Response 202

{ "queued": true, "count": 3, "remaining": 196, "gateway": {} }
curl -X POST https://wa-gateway.vako.my.id/api/messages/send/bulk \
  -H "Authorization: Bearer wg_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"to":["6281111111111","6282222222222"],"message":"Halo semua!"}'

5. Daftar Perangkat

GET/api/devices

Mengambil daftar perangkat WhatsApp pada workspace beserta status koneksinya.

Response 200

{
  "devices": [
    {
      "id": "abcd1234ef",
      "name": "Device 1",
      "status": "connected",
      "phoneNumber": "6281234567890"
    }
  ]
}
curl https://wa-gateway.vako.my.id/api/devices \
  -H "Authorization: Bearer wg_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

6. Kode Error

FieldTipeWajibKeterangan
400-OpsionalValidasi gagal, konten diblokir (code: CONTENT_BLOCKED), atau device_id tidak valid
401-OpsionalHeader Authorization tidak ada / format token salah / key kedaluwarsa atau invalid
402-OpsionalKuota pesan habis atau langganan sudah berakhir
500-OpsionalKesalahan internal server
502-OpsionalGateway WhatsApp gagal memproses request

Belum punya API key?

Login dengan Google, hubungkan perangkat, dan buat API key pertama Anda dalam hitungan menit.

Mulai Gratis