Whats91
Developers

Return aggregate conversation totals for the same conversation filters.

Conversation Summary

Summary

Return aggregate conversation totals for the same conversation filters.

Prerequisites

  • Authorization: Bearer w91_live_xxx
  • Content-Type: application/json for JSON requests

Endpoint: GET /api/v2/reports/conversations/summary. This endpoint returns totals for the same conversation filters used by the list endpoint, including senderId, dateFrom, dateTo, search, status, archived, unreadOnly, lastDirection, label filters, and labelMatchMode.

GET/api/v2/reports/conversations/summary
ParameterTypeRequiredDescription
AuthorizationheaderRequiredBearer w91_live_xxxxxxxxxxxxxxxxx.
senderIdstringOptionalWhatsApp sender phone number.
dateFromstringOptionalYYYY-MM-DD start date.
dateTostringOptionalYYYY-MM-DD end date.
statusstringOptionalactive, closed, blocked, or all.
archivedbooleanOptionaltrue or false.
unreadOnlybooleanOptionaltrue or false.
lastDirectionstringOptionalinbound or outbound.
Conversation summary
curl "https://graph.whats91.com/api/v2/reports/conversations/summary?senderId=919999999999&dateFrom=2026-06-01&dateTo=2026-06-05" \
  -H "Authorization: Bearer w91_live_xxx"
Summary response
{
  "success": true,
  "message": "Conversation summary retrieved",
  "data": {
    "summary": {
      "totalConversations": 12,
      "unreadConversations": 3,
      "archivedConversations": 2,
      "activeConversations": 10,
      "inboundLastCount": 7,
      "outboundLastCount": 5
    }
  },
  "metadata": {
    "apiVersion": "v2",
    "requestId": "request-uuid"
  }
}
unreadConversations

Unread conversations

Conversations that still need attention from the team.

activeConversations

Active conversations

Open conversation records in the selected date/filter range.

inbound/outbound

Direction split

inboundLastCount and outboundLastCount show who sent the latest message.

archivedConversations

Archive volume

Archived conversations matching the same conversation filters.

SDK Examples

Use these examples as starting points for server-side implementations.

cURL
curl -X GET "https://graph.whats91.com/api/v2/reports/conversations/summary" \
  -H "Authorization: Bearer w91_live_xxx"
Node.js
const response = await fetch("https://graph.whats91.com/api/v2/reports/conversations/summary", {
  method: "GET",
  headers: {
    "Authorization": "Bearer w91_live_xxx",
    "Content-Type": "application/json"
  }
});

const data = await response.json();
console.log(data);
PHP
$ch = curl_init("https://graph.whats91.com/api/v2/reports/conversations/summary");
curl_setopt_array($ch, [
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer w91_live_xxx",
    "Content-Type: application/json"
  ]
]);

$response = curl_exec($ch);
curl_close($ch);
echo $response;
Python
import requests

response = requests.request(
    "GET",
    "https://graph.whats91.com/api/v2/reports/conversations/summary",
    headers={
        "Authorization": "Bearer w91_live_xxx",
        "Content-Type": "application/json",
    }
)

print(response.json())
C#
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer w91_live_xxx");

var request = new HttpRequestMessage(HttpMethod.Get, "https://graph.whats91.com/api/v2/reports/conversations/summary");

var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());

Related APIs