All URIs are relative to https://zernio.com/api
| Method | HTTP request | Description |
|---|---|---|
| getInboxConversationAnalytics | GET /v1/analytics/inbox/conversations/{conversationId} | Get conversation analytics |
| getInboxConversationAnalyticsWithHttpInfo | GET /v1/analytics/inbox/conversations/{conversationId} | Get conversation analytics |
| getInboxHeatmap | GET /v1/analytics/inbox/heatmap | Get day × hour heatmap |
| getInboxHeatmapWithHttpInfo | GET /v1/analytics/inbox/heatmap | Get day × hour heatmap |
| getInboxResponseTime | GET /v1/analytics/inbox/response-time | Get inbox response-time stats |
| getInboxResponseTimeWithHttpInfo | GET /v1/analytics/inbox/response-time | Get inbox response-time stats |
| getInboxSourceBreakdown | GET /v1/analytics/inbox/source-breakdown | Get inbox source breakdown |
| getInboxSourceBreakdownWithHttpInfo | GET /v1/analytics/inbox/source-breakdown | Get inbox source breakdown |
| getInboxTopAccounts | GET /v1/analytics/inbox/top-accounts | Get top accounts by inbox volume |
| getInboxTopAccountsWithHttpInfo | GET /v1/analytics/inbox/top-accounts | Get top accounts by inbox volume |
| getInboxVolume | GET /v1/analytics/inbox/volume | Get inbox messaging volume |
| getInboxVolumeWithHttpInfo | GET /v1/analytics/inbox/volume | Get inbox messaging volume |
| listInboxConversationAnalytics | GET /v1/analytics/inbox/conversations | List conversation analytics |
| listInboxConversationAnalyticsWithHttpInfo | GET /v1/analytics/inbox/conversations | List conversation analytics |
GetInboxConversationAnalytics200Response getInboxConversationAnalytics(conversationId, fromDate, toDate)
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 Mongo `_id` of the Conversation document OR its `platformConversationId` (the same identity used by metadata.conversationId at ingest time). Ownership is verified in MongoDB against the caller's team before the Tinybird query fires. Max date range is 365 days.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
String conversationId = "conversationId_example"; // String | Mongo _id or platformConversationId.
LocalDate fromDate = LocalDate.now(); // LocalDate |
LocalDate toDate = LocalDate.now(); // LocalDate |
try {
GetInboxConversationAnalytics200Response result = apiInstance.getInboxConversationAnalytics(conversationId, fromDate, toDate);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#getInboxConversationAnalytics");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | Mongo _id or platformConversationId. | |
| fromDate | LocalDate | ||
| toDate | LocalDate | [optional] |
GetInboxConversationAnalytics200Response
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Per-conversation analytics | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 404 | Conversation not found or not owned by the caller's team | - |
| 500 | Internal server error | - |
ApiResponse getInboxConversationAnalytics getInboxConversationAnalyticsWithHttpInfo(conversationId, fromDate, toDate)
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 Mongo `_id` of the Conversation document OR its `platformConversationId` (the same identity used by metadata.conversationId at ingest time). Ownership is verified in MongoDB against the caller's team before the Tinybird query fires. Max date range is 365 days.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
String conversationId = "conversationId_example"; // String | Mongo _id or platformConversationId.
LocalDate fromDate = LocalDate.now(); // LocalDate |
LocalDate toDate = LocalDate.now(); // LocalDate |
try {
ApiResponse<GetInboxConversationAnalytics200Response> response = apiInstance.getInboxConversationAnalyticsWithHttpInfo(conversationId, fromDate, toDate);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#getInboxConversationAnalytics");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | Mongo _id or platformConversationId. | |
| fromDate | LocalDate | ||
| toDate | LocalDate | [optional] |
ApiResponse<GetInboxConversationAnalytics200Response>
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Per-conversation analytics | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 404 | Conversation not found or not owned by the caller's team | - |
| 500 | Internal server error | - |
GetInboxHeatmap200Response getInboxHeatmap(fromDate, toDate, profileId, platform, accountId, source, action)
Get day × hour heatmap
Day-of-week × hour-of-day breakdown of inbox messages. Buckets are sparse — only cells with at least one event are returned; clients zero-fill the rest to render the full 7×24 grid. The `dow` field follows ClickHouse's `toDayOfWeek` convention (1 = Monday … 7 = Sunday). Max date range is 365 days.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
LocalDate fromDate = LocalDate.now(); // LocalDate |
LocalDate toDate = LocalDate.now(); // LocalDate |
String profileId = "profileId_example"; // String |
String platform = "platform_example"; // String |
String accountId = "accountId_example"; // String |
String source = "source_example"; // String |
String action = "message.received"; // String | Narrow to a single event type. \"all\" or omitted means no filter.
try {
GetInboxHeatmap200Response result = apiInstance.getInboxHeatmap(fromDate, toDate, profileId, platform, accountId, source, action);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#getInboxHeatmap");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| fromDate | LocalDate | ||
| toDate | LocalDate | [optional] | |
| profileId | String | [optional] | |
| platform | String | [optional] | |
| accountId | String | [optional] | |
| source | String | [optional] | |
| action | String | Narrow to a single event type. "all" or omitted means no filter. | [optional] [enum: message.received, message.sent, message.read, all] |
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Heatmap buckets | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 500 | Internal server error | - |
ApiResponse getInboxHeatmap getInboxHeatmapWithHttpInfo(fromDate, toDate, profileId, platform, accountId, source, action)
Get day × hour heatmap
Day-of-week × hour-of-day breakdown of inbox messages. Buckets are sparse — only cells with at least one event are returned; clients zero-fill the rest to render the full 7×24 grid. The `dow` field follows ClickHouse's `toDayOfWeek` convention (1 = Monday … 7 = Sunday). Max date range is 365 days.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
LocalDate fromDate = LocalDate.now(); // LocalDate |
LocalDate toDate = LocalDate.now(); // LocalDate |
String profileId = "profileId_example"; // String |
String platform = "platform_example"; // String |
String accountId = "accountId_example"; // String |
String source = "source_example"; // String |
String action = "message.received"; // String | Narrow to a single event type. \"all\" or omitted means no filter.
try {
ApiResponse<GetInboxHeatmap200Response> response = apiInstance.getInboxHeatmapWithHttpInfo(fromDate, toDate, profileId, platform, accountId, source, action);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#getInboxHeatmap");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| fromDate | LocalDate | ||
| toDate | LocalDate | [optional] | |
| profileId | String | [optional] | |
| platform | String | [optional] | |
| accountId | String | [optional] | |
| source | String | [optional] | |
| action | String | Narrow to a single event type. "all" or omitted means no filter. | [optional] [enum: message.received, message.sent, message.read, all] |
ApiResponse<GetInboxHeatmap200Response>
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Heatmap buckets | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 500 | Internal server error | - |
GetInboxResponseTime200Response getInboxResponseTime(fromDate, toDate, profileId, platform, accountId)
Get inbox response-time stats
Time-to-first-response stats. Pairs each received message with the next sent message in the same conversation and reports the delta as both summary statistics and a fixed-bucket histogram suited for the analytics page's TTR chart. `sampleSize` reflects only conversations that received AND got a reply in the window — received-but-never-answered conversations are excluded. Compare against /v1/analytics/inbox/volume's `summary.received` to compute reply rate. Max date range is 365 days.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
LocalDate fromDate = LocalDate.now(); // LocalDate |
LocalDate toDate = LocalDate.now(); // LocalDate |
String profileId = "profileId_example"; // String |
String platform = "platform_example"; // String |
String accountId = "accountId_example"; // String |
try {
GetInboxResponseTime200Response result = apiInstance.getInboxResponseTime(fromDate, toDate, profileId, platform, accountId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#getInboxResponseTime");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| fromDate | LocalDate | ||
| toDate | LocalDate | [optional] | |
| profileId | String | [optional] | |
| platform | String | [optional] | |
| accountId | String | [optional] |
GetInboxResponseTime200Response
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Response-time summary + histogram | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 500 | Internal server error | - |
ApiResponse getInboxResponseTime getInboxResponseTimeWithHttpInfo(fromDate, toDate, profileId, platform, accountId)
Get inbox response-time stats
Time-to-first-response stats. Pairs each received message with the next sent message in the same conversation and reports the delta as both summary statistics and a fixed-bucket histogram suited for the analytics page's TTR chart. `sampleSize` reflects only conversations that received AND got a reply in the window — received-but-never-answered conversations are excluded. Compare against /v1/analytics/inbox/volume's `summary.received` to compute reply rate. Max date range is 365 days.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
LocalDate fromDate = LocalDate.now(); // LocalDate |
LocalDate toDate = LocalDate.now(); // LocalDate |
String profileId = "profileId_example"; // String |
String platform = "platform_example"; // String |
String accountId = "accountId_example"; // String |
try {
ApiResponse<GetInboxResponseTime200Response> response = apiInstance.getInboxResponseTimeWithHttpInfo(fromDate, toDate, profileId, platform, accountId);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#getInboxResponseTime");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| fromDate | LocalDate | ||
| toDate | LocalDate | [optional] | |
| profileId | String | [optional] | |
| platform | String | [optional] | |
| accountId | String | [optional] |
ApiResponse<GetInboxResponseTime200Response>
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Response-time summary + histogram | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 500 | Internal server error | - |
GetInboxSourceBreakdown200Response getInboxSourceBreakdown(fromDate, toDate, profileId, platform, accountId)
Get inbox source breakdown
Breakdown of inbox messages by their lineage source (the `metadata.source` field set at ingest time: human / workflow / sequence / broadcast / comment_automation / api / contact / platform). Each source row also carries a per-platform sub-split. Max date range is 365 days.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
LocalDate fromDate = LocalDate.now(); // LocalDate |
LocalDate toDate = LocalDate.now(); // LocalDate |
String profileId = "profileId_example"; // String |
String platform = "platform_example"; // String |
String accountId = "accountId_example"; // String |
try {
GetInboxSourceBreakdown200Response result = apiInstance.getInboxSourceBreakdown(fromDate, toDate, profileId, platform, accountId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#getInboxSourceBreakdown");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| fromDate | LocalDate | ||
| toDate | LocalDate | [optional] | |
| profileId | String | [optional] | |
| platform | String | [optional] | |
| accountId | String | [optional] |
GetInboxSourceBreakdown200Response
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Source breakdown | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 500 | Internal server error | - |
ApiResponse getInboxSourceBreakdown getInboxSourceBreakdownWithHttpInfo(fromDate, toDate, profileId, platform, accountId)
Get inbox source breakdown
Breakdown of inbox messages by their lineage source (the `metadata.source` field set at ingest time: human / workflow / sequence / broadcast / comment_automation / api / contact / platform). Each source row also carries a per-platform sub-split. Max date range is 365 days.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
LocalDate fromDate = LocalDate.now(); // LocalDate |
LocalDate toDate = LocalDate.now(); // LocalDate |
String profileId = "profileId_example"; // String |
String platform = "platform_example"; // String |
String accountId = "accountId_example"; // String |
try {
ApiResponse<GetInboxSourceBreakdown200Response> response = apiInstance.getInboxSourceBreakdownWithHttpInfo(fromDate, toDate, profileId, platform, accountId);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#getInboxSourceBreakdown");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| fromDate | LocalDate | ||
| toDate | LocalDate | [optional] | |
| profileId | String | [optional] | |
| platform | String | [optional] | |
| accountId | String | [optional] |
ApiResponse<GetInboxSourceBreakdown200Response>
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Source breakdown | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 500 | Internal server error | - |
GetInboxTopAccounts200Response getInboxTopAccounts(fromDate, toDate, profileId, platform, source, limit)
Get top accounts by inbox volume
Leaderboard of social accounts by inbox message volume. Decorates each row with display labels from the live SocialAccount record (so the UI shows username + displayName, not just an ID). Accounts that no longer map to a SocialAccount surface as "(disconnected)" so the row stays visible. Max date range is 365 days.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
LocalDate fromDate = LocalDate.now(); // LocalDate |
LocalDate toDate = LocalDate.now(); // LocalDate |
String profileId = "profileId_example"; // String |
String platform = "platform_example"; // String |
String source = "source_example"; // String |
Integer limit = 10; // Integer | Cap on returned rows. Lower than the posting listing's 100 because each row triggers a SocialAccount Mongo lookup.
try {
GetInboxTopAccounts200Response result = apiInstance.getInboxTopAccounts(fromDate, toDate, profileId, platform, source, limit);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#getInboxTopAccounts");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| fromDate | LocalDate | ||
| toDate | LocalDate | [optional] | |
| profileId | String | [optional] | |
| platform | String | [optional] | |
| source | String | [optional] | |
| limit | Integer | Cap on returned rows. Lower than the posting listing's 100 because each row triggers a SocialAccount Mongo lookup. | [optional] [default to 10] |
GetInboxTopAccounts200Response
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Top accounts leaderboard | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 500 | Internal server error | - |
ApiResponse getInboxTopAccounts getInboxTopAccountsWithHttpInfo(fromDate, toDate, profileId, platform, source, limit)
Get top accounts by inbox volume
Leaderboard of social accounts by inbox message volume. Decorates each row with display labels from the live SocialAccount record (so the UI shows username + displayName, not just an ID). Accounts that no longer map to a SocialAccount surface as "(disconnected)" so the row stays visible. Max date range is 365 days.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
LocalDate fromDate = LocalDate.now(); // LocalDate |
LocalDate toDate = LocalDate.now(); // LocalDate |
String profileId = "profileId_example"; // String |
String platform = "platform_example"; // String |
String source = "source_example"; // String |
Integer limit = 10; // Integer | Cap on returned rows. Lower than the posting listing's 100 because each row triggers a SocialAccount Mongo lookup.
try {
ApiResponse<GetInboxTopAccounts200Response> response = apiInstance.getInboxTopAccountsWithHttpInfo(fromDate, toDate, profileId, platform, source, limit);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#getInboxTopAccounts");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| fromDate | LocalDate | ||
| toDate | LocalDate | [optional] | |
| profileId | String | [optional] | |
| platform | String | [optional] | |
| source | String | [optional] | |
| limit | Integer | Cap on returned rows. Lower than the posting listing's 100 because each row triggers a SocialAccount Mongo lookup. | [optional] [default to 10] |
ApiResponse<GetInboxTopAccounts200Response>
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Top accounts leaderboard | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 500 | Internal server error | - |
GetInboxVolume200Response getInboxVolume(fromDate, toDate, profileId, platform, accountId, source)
Get inbox messaging volume
Daily inbox messaging volume + breakdowns. Folds the raw messaging events into three projections so the client can render the volume chart, KPI strip, and per-platform stacked bar from a single call. Max date range is 365 days.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
LocalDate fromDate = LocalDate.now(); // LocalDate | Inclusive lower bound (YYYY-MM-DD). Required.
LocalDate toDate = LocalDate.now(); // LocalDate | Inclusive upper bound (YYYY-MM-DD). Defaults to today.
String profileId = "profileId_example"; // String |
String platform = "platform_example"; // String | Filter by single platform (facebook, instagram, twitter, etc.).
String accountId = "accountId_example"; // String |
String source = "source_example"; // String | Filter by metadata.source lineage (human, workflow, sequence, broadcast, comment_automation, api, contact, platform).
try {
GetInboxVolume200Response result = apiInstance.getInboxVolume(fromDate, toDate, profileId, platform, accountId, source);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#getInboxVolume");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| fromDate | LocalDate | Inclusive lower bound (YYYY-MM-DD). Required. | |
| toDate | LocalDate | Inclusive upper bound (YYYY-MM-DD). Defaults to today. | [optional] |
| profileId | String | [optional] | |
| platform | String | Filter by single platform (facebook, instagram, twitter, etc.). | [optional] |
| accountId | String | [optional] | |
| source | String | Filter by metadata.source lineage (human, workflow, sequence, broadcast, comment_automation, api, contact, platform). | [optional] |
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Volume breakdown | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 500 | Internal server error | - |
ApiResponse getInboxVolume getInboxVolumeWithHttpInfo(fromDate, toDate, profileId, platform, accountId, source)
Get inbox messaging volume
Daily inbox messaging volume + breakdowns. Folds the raw messaging events into three projections so the client can render the volume chart, KPI strip, and per-platform stacked bar from a single call. Max date range is 365 days.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
LocalDate fromDate = LocalDate.now(); // LocalDate | Inclusive lower bound (YYYY-MM-DD). Required.
LocalDate toDate = LocalDate.now(); // LocalDate | Inclusive upper bound (YYYY-MM-DD). Defaults to today.
String profileId = "profileId_example"; // String |
String platform = "platform_example"; // String | Filter by single platform (facebook, instagram, twitter, etc.).
String accountId = "accountId_example"; // String |
String source = "source_example"; // String | Filter by metadata.source lineage (human, workflow, sequence, broadcast, comment_automation, api, contact, platform).
try {
ApiResponse<GetInboxVolume200Response> response = apiInstance.getInboxVolumeWithHttpInfo(fromDate, toDate, profileId, platform, accountId, source);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#getInboxVolume");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| fromDate | LocalDate | Inclusive lower bound (YYYY-MM-DD). Required. | |
| toDate | LocalDate | Inclusive upper bound (YYYY-MM-DD). Defaults to today. | [optional] |
| profileId | String | [optional] | |
| platform | String | Filter by single platform (facebook, instagram, twitter, etc.). | [optional] |
| accountId | String | [optional] | |
| source | String | Filter by metadata.source lineage (human, workflow, sequence, broadcast, comment_automation, api, contact, platform). | [optional] |
ApiResponse<GetInboxVolume200Response>
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Volume breakdown | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 500 | Internal server error | - |
ListInboxConversationAnalytics200Response listInboxConversationAnalytics(fromDate, toDate, profileId, platform, accountId, source, limit, page, sortBy, order)
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.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
LocalDate fromDate = LocalDate.now(); // LocalDate |
LocalDate toDate = LocalDate.now(); // LocalDate |
String profileId = "profileId_example"; // String |
String platform = "platform_example"; // String |
String accountId = "accountId_example"; // String |
String source = "source_example"; // String |
Integer limit = 50; // Integer |
Integer page = 1; // Integer |
String sortBy = "lastMessageAt"; // String |
String order = "asc"; // String |
try {
ListInboxConversationAnalytics200Response result = apiInstance.listInboxConversationAnalytics(fromDate, toDate, profileId, platform, accountId, source, limit, page, sortBy, order);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#listInboxConversationAnalytics");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| fromDate | LocalDate | ||
| toDate | LocalDate | [optional] | |
| profileId | String | [optional] | |
| platform | String | [optional] | |
| accountId | String | [optional] | |
| source | String | [optional] | |
| limit | Integer | [optional] [default to 50] | |
| page | Integer | [optional] [default to 1] | |
| sortBy | String | [optional] [default to lastMessageAt] [enum: lastMessageAt, firstMessageAt, totalMessages, received, sent, read, failed] | |
| order | String | [optional] [default to desc] [enum: asc, desc] |
ListInboxConversationAnalytics200Response
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Paginated conversation analytics list | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 500 | Internal server error | - |
ApiResponse listInboxConversationAnalytics listInboxConversationAnalyticsWithHttpInfo(fromDate, toDate, profileId, platform, accountId, source, limit, page, sortBy, order)
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.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.InboxAnalyticsApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
InboxAnalyticsApi apiInstance = new InboxAnalyticsApi(defaultClient);
LocalDate fromDate = LocalDate.now(); // LocalDate |
LocalDate toDate = LocalDate.now(); // LocalDate |
String profileId = "profileId_example"; // String |
String platform = "platform_example"; // String |
String accountId = "accountId_example"; // String |
String source = "source_example"; // String |
Integer limit = 50; // Integer |
Integer page = 1; // Integer |
String sortBy = "lastMessageAt"; // String |
String order = "asc"; // String |
try {
ApiResponse<ListInboxConversationAnalytics200Response> response = apiInstance.listInboxConversationAnalyticsWithHttpInfo(fromDate, toDate, profileId, platform, accountId, source, limit, page, sortBy, order);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling InboxAnalyticsApi#listInboxConversationAnalytics");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| fromDate | LocalDate | ||
| toDate | LocalDate | [optional] | |
| profileId | String | [optional] | |
| platform | String | [optional] | |
| accountId | String | [optional] | |
| source | String | [optional] | |
| limit | Integer | [optional] [default to 50] | |
| page | Integer | [optional] [default to 1] | |
| sortBy | String | [optional] [default to lastMessageAt] [enum: lastMessageAt, firstMessageAt, totalMessages, received, sent, read, failed] | |
| order | String | [optional] [default to desc] [enum: asc, desc] |
ApiResponse<ListInboxConversationAnalytics200Response>
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Paginated conversation analytics list | - |
| 400 | Validation error | - |
| 401 | Unauthorized | - |
| 500 | Internal server error | - |