Get LinkedIn aggregate stats
Returns aggregate analytics across all posts for a LinkedIn personal account. Only includes posts published through Zernio (LinkedIn API limitation). Org accounts should use /v1/analytics instead. Requires r_member_postAnalytics scope. Saves (POST_SAVE) and sends (POST_SEND) are available for personal accounts; organization pages always return 0 for these two metrics because LinkedIn does not expose them on the organization analytics endpoint.
API key authentication - use your Zernio API key as a Bearer token
In: header
Path Parameters
The ID of the LinkedIn personal account
Query Parameters
TOTAL (default, lifetime totals) or DAILY (time series). MEMBERS_REACHED not available with DAILY.
"TOTAL""TOTAL" | "DAILY"Start date (YYYY-MM-DD). If omitted, returns lifetime analytics.
dateEnd date (YYYY-MM-DD, exclusive). Defaults to today if omitted.
dateComma-separated metrics: IMPRESSION, MEMBERS_REACHED, REACTION, COMMENT, RESHARE, POST_SAVE, POST_SEND. Omit for all.
Response Body
application/json
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.analytics.getLinkedInAggregateAnalytics({ path: { accountId: 'account_abc123', },});console.log(data);{
"accountId": "64abc123def456",
"platform": "linkedin",
"accountType": "personal",
"username": "John Doe",
"aggregation": "TOTAL",
"dateRange": null,
"analytics": {
"impressions": 1250000,
"reach": 450000,
"reactions": 7500,
"comments": 2500,
"shares": 1200,
"saves": 3400,
"sends": 900,
"engagementRate": 1.24
},
"note": "Aggregate analytics across all posts on this LinkedIn personal account (lifetime totals).",
"lastUpdated": "2025-01-15T10:30:00.000Z"
}{
"error": "This endpoint only supports LinkedIn accounts",
"code": "invalid_platform"
}{
"error": "Unauthorized"
}{
"error": "string",
"code": "string"
}{
"error": "Missing r_member_postAnalytics scope. Please reconnect your LinkedIn account to grant analytics permissions.",
"code": "missing_scope",
"requiredScope": "r_member_postAnalytics",
"action": "reconnect"
}Get Instagram follower history GET
Returns a daily running Instagram follower count time series, served from Zernio's cross-platform daily snapshotter. Exists because Meta removed follower_count from the /insights endpoint in Graph API v22+ and never exposed a historical daily series via any public API. Response envelope matches /v1/analytics/instagram/account-insights so the same client handling works. Max 89 days, defaults to last 30 days. Requires the Analytics add-on.
Get LinkedIn organization page aggregate analytics GET
Returns aggregate analytics for a LinkedIn organization page. Parallel to /v1/accounts/{id}/linkedin-aggregate-analytics (which handles personal accounts only). Backed by LinkedIn's organizationalEntityShareStatistics, organizationalEntityFollowerStatistics, and organizationPageStatistics endpoints. Response shape matches /v1/analytics/instagram/account-insights. Max 89 days, defaults to last 30 days. Requires the Analytics add-on. Scope requirements: r_organization_social, r_organization_followers, and r_organization_admin must all be present on the account. Accounts connected before these scopes were included in the OAuth flow will return 412 with a reauth hint. Enforced by this endpoint: - Page-view metrics accept only metricType=total_value (LinkedIn omits per-day segmentation even when the API is called with DAY granularity, so a time-series response would be meaningless). - Date range capped at 89 days. LinkedIn-side platform limits (not re-enforced here, but worth knowing for larger ranges in a future release): - Follower stats: rolling 12-month window, end must be no later than 2 days ago. - Share stats: rolling 12-month window.