Skip to content

Latest commit

 

History

History
1214 lines (923 loc) · 50.3 KB

File metadata and controls

1214 lines (923 loc) · 50.3 KB

InboxAnalyticsApi

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

getInboxConversationAnalytics

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.

Example

// 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();
        }
    }
}

Parameters

Name Type Description Notes
conversationId String Mongo _id or platformConversationId.
fromDate LocalDate
toDate LocalDate [optional]

Return type

GetInboxConversationAnalytics200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

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 -

getInboxConversationAnalyticsWithHttpInfo

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.

Example

// 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();
        }
    }
}

Parameters

Name Type Description Notes
conversationId String Mongo _id or platformConversationId.
fromDate LocalDate
toDate LocalDate [optional]

Return type

ApiResponse<GetInboxConversationAnalytics200Response>

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

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 -

getInboxHeatmap

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.

Example

// 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();
        }
    }
}

Parameters

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. &quot;all&quot; or omitted means no filter. [optional] [enum: message.received, message.sent, message.read, all]

Return type

GetInboxHeatmap200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 Heatmap buckets -
400 Validation error -
401 Unauthorized -
500 Internal server error -

getInboxHeatmapWithHttpInfo

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.

Example

// 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();
        }
    }
}

Parameters

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. &quot;all&quot; or omitted means no filter. [optional] [enum: message.received, message.sent, message.read, all]

Return type

ApiResponse<GetInboxHeatmap200Response>

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 Heatmap buckets -
400 Validation error -
401 Unauthorized -
500 Internal server error -

getInboxResponseTime

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.

Example

// 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();
        }
    }
}

Parameters

Name Type Description Notes
fromDate LocalDate
toDate LocalDate [optional]
profileId String [optional]
platform String [optional]
accountId String [optional]

Return type

GetInboxResponseTime200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 Response-time summary + histogram -
400 Validation error -
401 Unauthorized -
500 Internal server error -

getInboxResponseTimeWithHttpInfo

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.

Example

// 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();
        }
    }
}

Parameters

Name Type Description Notes
fromDate LocalDate
toDate LocalDate [optional]
profileId String [optional]
platform String [optional]
accountId String [optional]

Return type

ApiResponse<GetInboxResponseTime200Response>

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 Response-time summary + histogram -
400 Validation error -
401 Unauthorized -
500 Internal server error -

getInboxSourceBreakdown

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.

Example

// 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();
        }
    }
}

Parameters

Name Type Description Notes
fromDate LocalDate
toDate LocalDate [optional]
profileId String [optional]
platform String [optional]
accountId String [optional]

Return type

GetInboxSourceBreakdown200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 Source breakdown -
400 Validation error -
401 Unauthorized -
500 Internal server error -

getInboxSourceBreakdownWithHttpInfo

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.

Example

// 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();
        }
    }
}

Parameters

Name Type Description Notes
fromDate LocalDate
toDate LocalDate [optional]
profileId String [optional]
platform String [optional]
accountId String [optional]

Return type

ApiResponse<GetInboxSourceBreakdown200Response>

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 Source breakdown -
400 Validation error -
401 Unauthorized -
500 Internal server error -

getInboxTopAccounts

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 &quot;(disconnected)&quot; so the row stays visible. Max date range is 365 days.

Example

// 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();
        }
    }
}

Parameters

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]

Return type

GetInboxTopAccounts200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 Top accounts leaderboard -
400 Validation error -
401 Unauthorized -
500 Internal server error -

getInboxTopAccountsWithHttpInfo

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 &quot;(disconnected)&quot; so the row stays visible. Max date range is 365 days.

Example

// 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();
        }
    }
}

Parameters

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]

Return type

ApiResponse<GetInboxTopAccounts200Response>

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 Top accounts leaderboard -
400 Validation error -
401 Unauthorized -
500 Internal server error -

getInboxVolume

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.

Example

// 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();
        }
    }
}

Parameters

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]

Return type

GetInboxVolume200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 Volume breakdown -
400 Validation error -
401 Unauthorized -
500 Internal server error -

getInboxVolumeWithHttpInfo

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.

Example

// 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();
        }
    }
}

Parameters

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]

Return type

ApiResponse<GetInboxVolume200Response>

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 Volume breakdown -
400 Validation error -
401 Unauthorized -
500 Internal server error -

listInboxConversationAnalytics

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.

Example

// 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();
        }
    }
}

Parameters

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]

Return type

ListInboxConversationAnalytics200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 Paginated conversation analytics list -
400 Validation error -
401 Unauthorized -
500 Internal server error -

listInboxConversationAnalyticsWithHttpInfo

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.

Example

// 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();
        }
    }
}

Parameters

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]

Return type

ApiResponse<ListInboxConversationAnalytics200Response>

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

HTTP response details

Status code Description Response headers
200 Paginated conversation analytics list -
400 Validation error -
401 Unauthorized -
500 Internal server error -