Zernio
Zernio
API Reference

Posting Analytics

Cross-platform

Get post analyticsGETAnalytics changed since a cursorGETSync an external postPOSTGet post analytics timelineGETGet daily aggregated metricsGETGet best times to postGETGet content performance decayGETGet frequency vs engagementGETGet follower statsGET

Instagram

Get Instagram insightsGETGet Instagram follower historyGETGet Instagram demographicsGET

YouTube

Get YouTube channel insightsGETGet YouTube daily viewsGETGet YouTube video retention curveGETGet YouTube demographicsGET

LinkedIn

Get LinkedIn aggregate statsGETGet LinkedIn org analyticsGETGet LinkedIn post statsGETGet LinkedIn post reactionsGET

Facebook

Get Facebook Page insightsGETGet Facebook post reactionsGETGet Facebook post monetization earningsGET

TikTok

Get TikTok account-level insightsGET

Google Business

Get Google Business Profile performance metricsGETGet Google Business Profile search keywordsGET

Other

Get an analytics dashboardGET
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Posting Analytics

Get an analytics dashboard

Everything an analytics dashboard needs in one call: window totals, follower growth, a per-day series, top posts, recent posts and, optionally, the same figures for the previous period. Daily and total metrics use received attribution: each day holds the engagement that arrived that day, on any post, so totals is always the sum of daily. topPosts and recentPosts list posts published in the window with their lifetime metrics. A post cross-posted to several platforms appears once per platform. All dates are UTC days. Requires the Analytics add-on.


GET
/v1/analytics/dashboard

Authorization

bearerAuth
AuthorizationBearer <token>

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

In: header

Query Parameters

profileId?string

Profile ID, or "all" for every profile you can access.

Default"all"
platform?string

Platform to cover (e.g. "instagram"), or "all".

Default"all"
fromDate*string

First day of the window (YYYY-MM-DD, inclusive).

Formatdate
toDate*string

Last day of the window (YYYY-MM-DD, inclusive). May equal fromDate. The window covers at most 366 days.

Formatdate
compare?"previous_period"

Set to "previous_period" to also return previousTotals and previousFollowers for the window of the same length that ends the day before fromDate.

Value in

  • "previous_period"
topPosts?integer

How many top posts to return, ranked by engagement (likes, comments, shares and saves, the same sum as daily engagement).

Range0 <= value <= 25
Default5
recentPosts?integer

How many of the most recently published posts to return.

Range0 <= value <= 25
Default10

Response Body

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.analytics.getAnalyticsDashboard({  query: {    fromDate: '2026-09-01',    toDate: '2026-09-30',  },});console.log(data);
{  "dateRange": {    "fromDate": "2026-09-01",    "toDate": "2026-09-02"  },  "totals": {    "impressions": 5400,    "reach": 4100,    "likes": 320,    "comments": 41,    "shares": 18,    "saves": 25,    "clicks": 60,    "views": 2200,    "engagementRate": 7.48  },  "followers": {    "current": 12840,    "gained": 96,    "byAccount": [      {        "accountId": "64e1f0a9c2b4d5e6f7a8b9c0",        "platform": "instagram",        "current": 12840,        "gained": 96      }    ]  },  "daily": [    {      "date": "2026-09-01",      "impressions": 2900,      "reach": 2200,      "engagement": 210,      "views": 1200,      "followersGained": 0    },    {      "date": "2026-09-02",      "impressions": 2500,      "reach": 1900,      "engagement": 194,      "views": 1000,      "followersGained": 96    }  ],  "topPosts": [    {      "postId": "65f1c0a9e2b4d5f6a7b8c9d0",      "platform": "instagram",      "publishedAt": "2026-09-01T15:00:00.000Z",      "metrics": {        "impressions": 3100,        "reach": 2600,        "likes": 210,        "comments": 22,        "shares": 9,        "saves": 14,        "clicks": 30,        "views": 1500,        "engagementRate": 8.23      }    }  ],  "recentPosts": [],  "dataAsOf": "2026-09-02T23:10:00.000Z"}
Was this page helpful?

Get Google Business Profile search keywords

Returns search keywords that triggered impressions for a Google Business Profile location. Data is aggregated monthly. Keywords below a minimum impression threshold set by Google are excluded. Max 18 months of historical data. Requires the Analytics add-on.

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.