Get Instagram insights
Returns account-level Instagram insights such as reach, views, accounts engaged, and total interactions. These metrics reflect the entire account's performance across all content surfaces (feed, stories, explore, profile), and are fundamentally different from post-level metrics. Data may be delayed up to 48 hours. Max 90 days, defaults to last 30 days. Requires the Analytics add-on.
API key authentication - use your Zernio API key as a Bearer token
In: header
Query Parameters
The Zernio SocialAccount ID for the Instagram account
Comma-separated list of metrics. Defaults to "reach,views,accounts_engaged,total_interactions". Valid metrics: reach, views, accounts_engaged, total_interactions, comments, likes, saves, shares, replies, reposts, follows_and_unfollows, profile_links_taps. Note: only "reach" supports metricType=time_series. All other metrics (including follows_and_unfollows) are total_value only. This is an Instagram Graph API limitation, not a Zernio limitation - the IG API does not return time-series data for these metrics. For a daily running follower count, use /v1/analytics/instagram/follower-history instead.
Start date (YYYY-MM-DD). Defaults to 30 days ago.
dateEnd date (YYYY-MM-DD). Defaults to today.
date"total_value" (default) returns aggregated totals and supports breakdowns. "time_series" returns daily values but only works with the "reach" metric.
"total_value""time_series" | "total_value"Breakdown dimension (only valid with metricType=total_value). Valid values depend on the metric: media_product_type, follow_type, follower_type, contact_button_type.
Response Body
application/json
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.getInstagramAccountInsights({ query: { accountId: 'account_abc123', },});console.log(data);{
"success": true,
"accountId": "64e1a2b3c4d5e6f7a8b9c0d1",
"platform": "instagram",
"dateRange": {
"since": "2026-03-01",
"until": "2026-03-22"
},
"metricType": "time_series",
"metrics": {
"reach": {
"total": 12500,
"values": [
{
"date": "2026-03-01",
"value": 420
},
{
"date": "2026-03-02",
"value": 385
}
]
},
"views": {
"total": 45000,
"values": [
{
"date": "2026-03-01",
"value": 1520
},
{
"date": "2026-03-02",
"value": 1380
}
]
}
},
"dataDelay": "Data may be delayed up to 48 hours"
}{
"error": "Invalid metrics: impressions",
"validMetrics": [
"accounts_engaged",
"comments",
"follows_and_unfollows",
"likes",
"profile_links_taps",
"reach",
"replies",
"reposts",
"saves",
"shares",
"total_interactions",
"views"
]
}{
"error": "Unauthorized"
}{
"error": "Analytics add-on required",
"code": "analytics_addon_required"
}{
"error": "Access denied to this account"
}{
"error": "Account not found"
}Get GBP search keywords GET
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.
Get Instagram demographics GET
Returns audience demographic insights for an Instagram account, broken down by age, city, country, and/or gender. Requires at least 100 followers. Returns top 45 entries per dimension. Data may be delayed up to 48 hours. Requires the Analytics add-on.