Zernio
APIFor you
Zernio
APIFor you
API Reference

Inbox Analytics

List conversation analyticsGETGet conversation analyticsGETGet day × hour heatmapGETGet inbox response-time statsGETGet inbox source breakdownGETGet top accounts by inbox volumeGETGet inbox messaging volumeGET
Dashboard
OverviewPlatformsAPI ReferenceResources
Inbox Analytics

List conversation analytics

Per-conversation listing with per-row totals + first/last message timestamps. The inbox analog of GET /v1/analytics (posts listing): same filter shape, same pagination, same sort/order semantics. Use as the entry point for the per-conversation analytics drawer at /v1/analytics/inbox/conversations/{conversationId}.

Rows are enriched with the conversation's participant info (participantName, participantUsername, participantPicture) and last-message preview by joining the Conversation document scoped to the caller's team. Max date range is 365 days.


GET
/v1/analytics/inbox/conversations

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Query Parameters

fromDate*string
Formatdate
toDate?string
Formatdate
profileId?string
platform?string
accountId?string
source?string
limit?integer
Range1 <= value <= 100
Default50
page?integer
Range1 <= value
Default1
sortBy?string
Default"lastMessageAt"

Value in

  • "lastMessageAt"
  • "firstMessageAt"
  • "totalMessages"
  • "received"
  • "sent"
  • "read"
  • "failed"
order?string
Default"desc"

Value in

  • "asc"
  • "desc"

Response Body

application/json

application/json

application/json

application/json

import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.inboxanalytics.listInboxConversationAnalytics({  query: {    fromDate: '2026-01-15',  },});console.log(data);
{  "success": true,  "from": "2019-08-24",  "to": "2019-08-24",  "items": [    {      "conversationId": "string",      "mongoId": "string",      "accountId": "string",      "platform": "string",      "participantName": "string",      "participantUsername": "string",      "participantPicture": "string",      "lastMessage": "string",      "totalMessages": 0,      "received": 0,      "sent": 0,      "read": 0,      "failed": 0,      "firstMessageAt": "2019-08-24T14:15:22Z",      "lastMessageAt": "2019-08-24T14:15:22Z"    }  ],  "pagination": {    "page": 0,    "limit": 0,    "total": 0,    "totalPages": 0,    "hasMore": true  }}
Was this page helpful?

Run a Google Analytics (GA4) report

Runs a report on a connected GA4 property through Google's Data API (`runReport`). Pick any GA4 dimensions and metrics; filters and ordering use Google's own shapes. Identical requests on the same property are cached for 10 minutes. Google meters each property by quota tokens; when it is used up the request returns 429 until Google refills it (hourly quotas within the hour, daily ones at midnight Pacific time).

Get conversation analytics

Per-conversation inbox analytics. The inbox analog of /v1/analytics/post-timeline: one conversation, daily totals, source mix. The {conversationId} path param accepts EITHER the Zernio conversation id OR its `platformConversationId` (the same identity used by metadata.conversationId at ingest time). Ownership is verified against the caller's team before the Tinybird query fires. Max date range is 365 days.