kirem.coDokumentasi API
Dokumentasi/Analytics/Menarik Log Riwayat Pesan
Analytics

Menarik Log Riwayat Pesan

Ringkasan Teknis (TL;DR)

Mengakses data historis pengiriman dan penerimaan pesan WhatsApp via API GET /v1/analytics/messages.

#analytics#messages#logs#history

Menarik Log Riwayat Pesan

Endpoint ini mengembalikan data historis pengiriman dan penerimaan pesan WhatsApp. Gunakan untuk rekonsiliasi data, audit kepatuhan, atau membangun dasbor monitoring kustom di sistem Anda.


🛜 Endpoint

GET /v1/analytics/messages


📋 Query Parameters

Parameter Tipe Wajib Keterangan
status String Tidak Filter berdasarkan status pesan
direction String Tidak Filter arah pesan
type String Tidak Filter jenis pesan
recipient String Tidak Filter nomor penerima
limit Integer Tidak Jumlah maksimal log (default: 100)
offset Integer Tidak Offset untuk paginasi (default: 0)

📊 Nilai Query Parameter

status — Status Pesan

Nilai Keterangan
sent Pesan telah terkirim ke server WhatsApp
delivered Pesan telah sampai ke perangkat penerima
read Pesan telah dibaca oleh penerima
failed Pengiriman pesan gagal

direction — Arah Pesan

Nilai Keterangan
inbound Pesan masuk dari pelanggan ke bisnis
outbound Pesan keluar dari bisnis ke pelanggan

type — Jenis Pesan

text, image, video, audio, document, template, interactive, location, contacts


🚦 Contoh cURL Request

Semua pesan gagal

curl -X GET "https://api.kirem.co/v1/analytics/messages?status=failed&limit=10" \
  -H "Authorization: Bearer kirem_live_xxx"

Pesan keluar ke nomor tertentu

curl -X GET "https://api.kirem.co/v1/analytics/messages?direction=outbound&recipient=62812345678&limit=20" \
  -H "Authorization: Bearer kirem_live_xxx"

Pesan masuk dalam 50 catatan terakhir

curl -X GET "https://api.kirem.co/v1/analytics/messages?direction=inbound&limit=50&offset=0" \
  -H "Authorization: Bearer kirem_live_xxx"

✅ Respons Sukses (200 OK)

{
  "status": 200,
  "message": "Message logs retrieved successfully",
  "data": {
    "total": 1,
    "limit": 10,
    "offset": 0,
    "logs": [
      {
        "id": "msg-12345",
        "message_id": "wamid.HBgLNjI4MTIzND...",
        "recipient": "62812345678",
        "direction": "outbound",
        "type": "template",
        "status": "failed",
        "error_message": "(#131026) Message Undeliverable",
        "created_at": "2026-06-26T00:20:00Z"
      }
    ]
  }
}

📊 Penjelasan Field Log

Field Keterangan
id ID internal log di sistem Kirem
message_id WAID unik dari WhatsApp (awalan wamid.)
recipient Nomor telepon penerima (format internasional)
direction Arah pesan: inbound atau outbound
type Jenis pesan: text, image, template, dll.
status Status terkini: sent, delivered, read, failed
error_message Pesan error jika status failed, null jika berhasil
created_at Timestamp saat pesan dicatat dalam format ISO 8601

📄 Paginasi

Gunakan limit dan offset untuk menavigasi hasil yang banyak:

# Halaman 1: 50 catatan pertama
GET /v1/analytics/messages?limit=50&offset=0

# Halaman 2: 50 catatan berikutnya
GET /v1/analytics/messages?limit=50&offset=50

# Halaman 3
GET /v1/analytics/messages?limit=50&offset=100
  • data.total: Jumlah total catatan yang cocok dengan filter
  • data.limit: Batas jumlah catatan per halaman
  • data.offset: Posisi awal halaman saat ini

🚦 Contoh Kode (Node.js)

const axios = require('axios');

axios.get('https://api.kirem.co/v1/analytics/messages', {
  headers: { 'Authorization': 'Bearer kirem_live_xxx' },
  params: {
    status: 'failed',
    direction: 'outbound',
    limit: 20
  }
}).then(res => {
  console.log(`Total: ${res.data.data.total}`);
  console.log(`Logs: ${res.data.data.logs.length}`);
  console.log(res.data.data.logs);
});

🚦 Contoh Kode (Go)

package main

import (
	"fmt"
	"net/http"
)

func main() {
	url := "https://api.kirem.co/v1/analytics/messages?status=failed&limit=20"
	req, _ := http.NewRequest("GET", url, nil)
	req.Header.Set("Authorization", "Bearer kirem_live_xxx")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	fmt.Println("Status:", resp.Status)
}

🚦 Contoh Kode (PHP)

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.kirem.co/v1/analytics/messages?status=failed&limit=20');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer kirem_live_xxx']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
echo "Total: " . $data['data']['total'] . "\n";
print_r($data['data']['logs']);

⚠️ Catatan Penting

  • Filter dapat dikombinasikan. Misalnya: ?status=failed&direction=outbound&limit=20 untuk melihat semua pesan keluar yang gagal.
  • Data log disimpan dalam jangka waktu tertentu sesuai kebijakan retensi Kirem.
  • Gunakan message_id untuk melacak status pengantaran individual pesan melalui webhook callback.

Butuh bantuan integrasi lanjutan?

Hubungi tim developer Kirem melalui tiket bantuan.

Buka Tiket Bantuan