Langkau ke kandungan
Wbiztool

API mesej

API Sejarah Mesej

Dapatkan senarai mesej dalam ruang kerja anda bagi julat tarikh tertentu, beserta status setiap satu. Gunakannya untuk menyemak semula apa yang telah dihantar, membina laporan atau mencari mesej gagal untuk dicuba semula.

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

Body: JSON (diperlukan untuk halaman selepas yang pertama) atau medan borang

Sejarah ini merangkumi setiap mesej dalam ruang kerja kunci API anda, sama ada dihantar melalui API, papan pemuka atau kempen. Hasil dipulangkan 200 setiap halaman, yang paling lama dahulu. Data yang sama boleh didapati di halaman Reports (Laporan).

Contoh ringkas#

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
  }'

Gantikan 12345 dan YOUR_API_KEY dengan nilai anda sendiri. Lihat Pengesahan identiti untuk mengetahui di mana nilai ini boleh didapati.

Parameter permintaan#

Pengesahan identiti

client_idintegerwajib

API Client ID anda dari Settings → API keys (Tetapan → Kunci API).

api_keystringwajib

Kunci API anda dari halaman yang sama.

Penapis

start_datestringwajib

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

end_datestringwajib

Hujung julat, dalam format DD-MM-YYYY. Hari ini sendiri tidak disertakan. Lihat Julat tarikh.

whatsapp_clientintegerpilihan

Pulangkan hanya mesej yang dihantar dari nombor WhatsApp ini, menggunakan ID nombor dari tetapan WhatsApp. Jangan sertakan untuk mendapatkan mesej dari semua nombor anda.

pageintegerpilihan

Nombor halaman, bermula dari 1 (lalai). Setiap halaman memuatkan sehingga 200 mesej. Hantarkannya sebagai nombor JSON. 0 atau nombor negatif memulangkan total dengan history yang kosong.

Julat tarikh#

Tarikh dibaca sebagai tengah malam pada permulaan hari itu dalam Waktu Piawai India (IST, UTC+5:30), dan mesej dipadankan mengikut masa ia dicipta (dimasukkan ke dalam baris gilir atau dijadualkan), bukan masa ia dihantar. Julat bermula dari start_date 00:00 hingga end_date 00:00, jadi:

  • "start_date": "01-09-2026", "end_date": "08-09-2026" memulangkan 1 hingga 7 September. 8 September tidak disertakan.
  • Untuk mendapatkan satu hari sahaja, tetapkan end_date kepada hari berikutnya: "start_date": "15-09-2026", "end_date": "16-09-2026".
  • Jika kedua-dua tarikh sama, anda tidak akan mendapat sebarang mesej.

Penomboran halaman#

Setiap respons mengandungi total, iaitu bilangan mesej dalam keseluruhan julat, dan sehingga 200 daripadanya dalam history. Minta page 2, 3 dan seterusnya sehingga page × 200 sekurang-kurangnya sama dengan total.

Respons#

Permintaan yang berjaya memulangkan 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" }
  ]
}
MedanJenisPenerangan
messagestringSuccess apabila permintaan berjaya, jika tidak, mesej ralat.
statusintegerSentiasa 0. Jangan gunakannya untuk mengesan kejayaan.
totalintegerBilangan mesej dalam julat tarikh merentasi semua halaman. Hanya ada jika berjaya.
historytatasusunanSehingga 200 mesej pada halaman ini, yang paling lama dahulu. Kosong apabila berlaku ralat.
history[].idintegerID mesej, sama seperti msg_id yang dipulangkan semasa ia dihantar.
history[].msg_typestringText, Image atau File.
history[].contactstringNombor telefon penerima dengan kod negara, atau nama kumpulan bagi mesej kumpulan.
history[].message_statusstringLihat jadual di bawah.

Nilai status mesej#

message_statusMaksud
PendingDalam baris gilir atau dijadualkan, belum dihantar (status 0).
SentTelah dihantar dari nombor WhatsApp anda (status 1).
DeliveredDikhaskan, tidak dipulangkan pada masa ini.
ReadDikhaskan, tidak dipulangkan pada masa ini.
FailedTidak dapat dihantar, atau penghantaran terganggu (status 2). Gunakan Status mesej untuk melihat error.
CancelledDibatalkan sebelum dihantar (status 3).
ExpiredTidak dihantar sebelum tarikh akhir expire_after_seconds (status 4).

Tanda sampai dan tanda dibaca tidak direkodkan pada masa ini, jadi mesej yang dihantar sentiasa dipaparkan sebagai Sent. Delivered dan Read ialah nilai yang dikhaskan; jika ia muncul, anggap sebagai Sent.

Ralat#

Ralat memulangkan HTTP 200 dengan status ditetapkan kepada 0, kecuali dinyatakan sebaliknya:

{ "message": "Error", "status": 0, "history": [] }
MesejCara membetulkannya
Errorstart_date atau end_date tiada atau bukan dalam format DD-MM-YYYY, badan JSON tidak sah (selalunya koma di hujung), atau permintaan bukan POST.
Auth ErrorHantar kedua-dua client_id dan api_key.
Invalid Client IdHantar client_id sebagai nombor. Dipulangkan dengan HTTP 403, tanpa history.
Auth Error: invalid api keyPastikan kunci wujud, belum dipadam dan milik client_id ini. Dipulangkan dengan HTTP 400, tanpa history.
Demo Account can not access apisGunakan akaun biasa.

Petua#

  • Tarik sejarah dalam julat kecil: sehari atau seminggu pada satu masa mengekalkan bilangan halaman yang sedikit.
  • Cari mesej yang gagal: tapis history untuk Failed, kemudian panggil Status mesej dengan setiap id untuk melihat sebab ia gagal. Sebelum mencuba semula, semak error: Sending was interrupted and may have been delivered… bermaksud penerima mungkin sudah menerima mesej itu.
  • Mesej lama dibuang: mesej yang telah mencapai status muktamad dan tidak berubah selama kira-kira 90 hari mungkin dibuang dan tidak lagi muncul di sini, begitu juga mesej yang masih dalam baris gilir 90 hari selepas ia dicipta atau dijadualkan, pada nombor yang terputus sambungan atau dipadam.
  • Penjejakan masa nyata: untuk bertindak balas semasa mesej dihantar, hantar webhook semasa anda menghantar mesej dan bukannya meninjau endpoint ini berulang kali.