Langsung ke konten
Wbiztool

API Pesan

API Riwayat Pesan

Dapatkan daftar pesan di workspace Anda untuk rentang tanggal tertentu, beserta status masing-masing. Gunakan untuk mencocokkan apa yang sudah terkirim, membuat laporan, atau menemukan pesan gagal untuk dikirim ulang.

POSThttps://wbiztool.com/api/v1/report/

Body: JSON (diperlukan untuk halaman setelah halaman pertama) atau field formulir

Riwayat mencakup setiap pesan di workspace API key Anda, baik yang dikirim melalui API, dashboard, maupun kampanye. Hasil ditampilkan 200 per halaman, dari yang terlama. Data yang sama tersedia di halaman Reports (Laporan).

Contoh singkat#

curl -X POST https://wbiztool.com/api/v1/report/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "start_date": "01-09-2026",
    "end_date": "08-09-2026",
    "page": 1
  }'

Ganti 12345 dan YOUR_API_KEY dengan nilai Anda sendiri. Lihat Autentikasi untuk mengetahui di mana menemukannya.

Parameter request#

Autentikasi

client_idintegerwajib

API Client ID Anda dari Settings → API keys (Pengaturan → Kunci API).

api_keystringwajib

API key Anda dari halaman yang sama.

Filter

start_datestringwajib

Hari pertama yang disertakan, dalam format DD-MM-YYYY, misalnya 01-09-2026.

end_datestringwajib

Akhir rentang, dalam format DD-MM-YYYY. Hari ini sendiri tidak disertakan. Lihat Rentang tanggal.

whatsapp_clientintegeropsional

Hanya kembalikan pesan yang dikirim dari nomor WhatsApp ini, menggunakan ID-nya dari WhatsApp settings (pengaturan WhatsApp). Hilangkan untuk mendapatkan pesan dari semua nomor Anda.

pageintegeropsional

Nomor halaman, dimulai dari 1 (default). Setiap halaman berisi hingga 200 pesan. Kirim sebagai angka JSON. 0 atau angka negatif mengembalikan total dengan history kosong.

Rentang tanggal#

Tanggal dibaca sebagai tengah malam di awal hari tersebut dalam Waktu Standar India (IST, UTC+5:30), dan pesan dicocokkan berdasarkan waktu pembuatannya (masuk antrean atau dijadwalkan), bukan waktu pengirimannya. Rentang berjalan dari start_date 00:00 hingga end_date 00:00, sehingga:

  • "start_date": "01-09-2026", "end_date": "08-09-2026" mengembalikan 1 hingga 7 September. 8 September tidak disertakan.
  • Untuk mendapatkan satu hari saja, isi end_date dengan hari berikutnya: "start_date": "15-09-2026", "end_date": "16-09-2026".
  • Jika kedua tanggal sama, Anda tidak mendapatkan pesan apa pun.

Paginasi#

Setiap respons berisi total, yaitu jumlah pesan di seluruh rentang, dan hingga 200 pesan di history. Minta page 2, 3, dan seterusnya sampai page × 200 paling tidak sama dengan total.

Respons#

Request yang berhasil mengembalikan HTTP 200:

{
  "message": "Success",
  "status": 0,
  "total": 3,
  "history": [
    { "id": 9817263, "msg_type": "Text", "contact": "919876543210", "message_status": "Sent" },
    { "id": 9817264, "msg_type": "File", "contact": "919812345670", "message_status": "Failed" },
    { "id": 9817265, "msg_type": "Image", "contact": "Sales Team Mumbai", "message_status": "Pending" }
  ]
}
FieldTipeDeskripsi
messagestringSuccess jika request berhasil, selain itu berisi error.
statusintegerSelalu 0. Jangan gunakan untuk mendeteksi keberhasilan.
totalintegerJumlah pesan dalam rentang tanggal di semua halaman. Hanya ada jika berhasil.
historyarrayHingga 200 pesan di halaman ini, dari yang terlama. Kosong jika terjadi error.
history[].idintegerID pesan, sama dengan msg_id yang dikembalikan saat pesan dikirim.
history[].msg_typestringText, Image, atau File.
history[].contactstringNomor telepon penerima dengan kode negara, atau nama grup untuk pesan grup.
history[].message_statusstringLihat tabel di bawah.

Nilai status pesan#

message_statusArti
PendingDalam antrean atau terjadwal, belum terkirim (status 0).
SentSudah dikirim dari nomor WhatsApp Anda (status 1).
DeliveredDicadangkan, saat ini tidak dikembalikan.
ReadDicadangkan, saat ini tidak dikembalikan.
FailedTidak dapat dikirim, atau pengiriman terputus (status 2). Gunakan Status pesan untuk melihat error.
CancelledDibatalkan sebelum terkirim (status 3).
ExpiredTidak terkirim sebelum batas waktu expire_after_seconds (status 4).

Centang terkirim dan dibaca saat ini tidak dicatat, sehingga pesan yang terkirim selalu tampil sebagai Sent. Delivered dan Read adalah nilai yang dicadangkan; jika suatu saat muncul, anggap sebagai Sent.

Error#

Error mengembalikan HTTP 200 dengan status bernilai 0, kecuali disebutkan lain:

{ "message": "Error", "status": 0, "history": [] }
PesanCara memperbaikinya
Errorstart_date atau end_date tidak dikirim atau tidak dalam format DD-MM-YYYY, body JSON tidak valid (sering kali karena koma di akhir), atau request bukan POST.
Auth ErrorKirim client_id dan api_key.
Invalid Client IdKirim client_id sebagai angka. Dikembalikan dengan HTTP 403, tanpa history.
Auth Error: invalid api keyPastikan key tersebut ada, belum dihapus, dan milik client_id ini. Dikembalikan dengan HTTP 400, tanpa history.
Demo Account can not access apisGunakan akun biasa.

Tips#

  • Ambil riwayat dalam rentang kecil: satu hari atau satu minggu sekaligus membuat jumlah halaman tetap sedikit.
  • Temukan pesan yang gagal: filter history untuk Failed, lalu panggil Status pesan dengan setiap id untuk melihat penyebab kegagalannya. Sebelum mencoba ulang, periksa error: Sending was interrupted and may have been delivered… berarti penerima mungkin sudah menerima pesan tersebut.
  • Pesan lama dihapus: pesan yang sudah mencapai status final dan tidak berubah selama sekitar 90 hari dapat dihapus dan tidak lagi muncul di sini, begitu pula pesan yang masih dalam antrean 90 hari setelah dibuat atau dijadwalkan, pada nomor yang terputus atau dihapus.
  • Pelacakan real-time: untuk bereaksi saat pesan terkirim, kirim webhook ketika Anda mengirim pesan, bukan melakukan polling ke endpoint ini.