Instagram Analytics
Analytics endpoints are not available on the Basic plan. Upgrade to Intermediate, Growth or Business plan to access these endpoints.
Instagram analytics endpoints provide insights for your connected Instagram Business/Creator accounts, including overview metrics, post performance, stories, and audience demographics.
1. GET /api/instagram/overview
Returns account-level metrics with current vs. previous period comparison, along with top and bottom performing posts.
Sample Request
curl --location --request GET \
"https://analyze.oneupapp.io/api/instagram/overview?apiKey=YOUR_API_KEY&social_network_id=123&preset=last_30_days"
Sample Response
{
"success": true,
"data": {
"metrics": [
{
"key": "posts",
"name": "Posts + Reels + Stories",
"value_current_period": 52,
"value_last_period": 45,
"percentage_change": "+15.56%",
"description": "Total number of posts, including Reels and Stories, in this period"
},
{
"key": "reach",
"name": "Reach",
"value_current_period": 67000,
"value_last_period": 55000,
"percentage_change": "+21.82%",
"description": "The number of unique accounts that have seen your content, at least once, including in ads."
},
{
"key": "views",
"name": "Views",
"value_current_period": 573737,
"value_last_period": 1141426,
"percentage_change": "-50%",
"description": "The number of times your content was viewed."
},
{
"key": "ig_reels_avg_watch_time",
"name": "Reels Average Watch Time",
"value_current_period": "4.5s",
"value_last_period": "2.56s",
"percentage_change": "+76%",
"description": "The average amount of time viewers spent watching your Reels."
},
{
"key": "ig_reels_video_view_total_time",
"name": "Reels Total Watch Time",
"value_current_period": "48m 36s",
"value_last_period": "12m 21s",
"percentage_change": "+293%",
"description": "The total amount of time viewers spent watching your Reels."
},
{
"key": "follower_count",
"name": "New Followers",
"value_current_period": 890,
"value_last_period": 720,
"percentage_change": "+23.61%",
"description": "The number of followers in this period."
},
{
"key": "likes",
"name": "Likes",
"value_current_period": 12400,
"value_last_period": 10200,
"percentage_change": "+21.57%",
"description": "The number of likes on your post minus the number of unlikes."
},
{
"key": "comments",
"name": "Comments",
"value_current_period": 2300,
"value_last_period": 1900,
"percentage_change": "+21.05%",
"description": "The number of comments on your post minus the number of deleted comments."
},
{
"key": "shares",
"name": "Shares",
"value_current_period": 1800,
"value_last_period": 1500,
"percentage_change": "+20.00%",
"description": "The number of shares of your post."
},
{
"key": "profile_views",
"name": "Profile Views",
"value_current_period": 9800,
"value_last_period": 8100,
"percentage_change": "+20.99%",
"description": "The number of times that your profile was visited."
}
],
"total_followers": 28500,
"post_performance": {
"most_engaging": [
{
"id": "ig_abc123",
"caption": "...",
"permalink": "...",
"media_url": "...",
"thumbnail_url": "...",
"engagement": 627,
"engagement_rate": "12.06%",
"engagement_rate_raw": 12.06,
"reach": 5200,
"shares": 120
}
],
"least_engaging": [],
"most_reach": [],
"least_reach": [],
"most_shared": [],
"least_shared": []
}
}
}
Metrics
| Key | Name | Description |
|---|---|---|
posts | Posts + Reels + Stories | Total number of posts, including Reels and Stories, in this period |
reach | Reach | The number of unique accounts that have seen your content, at least once, including in ads. |
views | Views | The number of times your content was viewed |
follower_count | New Followers | The number of followers in this period. |
likes | Likes | The number of likes on your post minus the number of unlikes. |
comments | Comments | The number of comments on your post minus the number of deleted comments. |
shares | Shares | The number of shares of your post. |
profile_views | Profile Views | The number of times that your profile was visited. |
ig_reels_avg_watch_time | Reels Average Watch Time | The average amount of time viewers spent watching your Reels. |
ig_reels_video_view_total_time | Reels Total Watch Time | The total amount of time viewers spent watching your Reels. |
2. GET /api/instagram/posts
Returns analytics for posts only (filters out stories where is_story=false).
Sample Request
curl --location --request GET \
"https://analyze.oneupapp.io/api/instagram/posts?apiKey=YOUR_API_KEY&social_network_id=123&start_date=2026-04-01&end_date=2026-04-30"
Sample Response
{
"success": true,
"data": {
"stats": [
{
"key": "posts",
"name": "Posts",
"value_current_period": 25,
"value_last_period": 22,
"percentage_change": "+13.64%",
"description": "The total number of posts in this period."
},
{
"key": "reach",
"name": "Reach",
"value_current_period": 42000,
"value_last_period": 35000,
"percentage_change": "+20.00%",
"description": "The number of unique accounts that have seen your content, at least once, including in ads."
},
{
"key": "views",
"name": "Views",
"value_current_period": 573737,
"value_last_period": 1141426,
"percentage_change": "-50%",
"description": "The number of times your content was viewed."
},
{
"key": "likes",
"name": "Likes",
"value_current_period": 8900,
"value_last_period": 7200,
"percentage_change": "+23.61%",
"description": "The number of likes on your post minus the number of unlikes."
},
{
"key": "comments",
"name": "Comments",
"value_current_period": 1600,
"value_last_period": 1300,
"percentage_change": "+23.08%",
"description": "The number of comments on your post minus the number of deleted comments."
},
{
"key": "shares",
"name": "Shares",
"value_current_period": 1200,
"value_last_period": 1000,
"percentage_change": "+20.00%",
"description": "The number of shares of your post."
},
{
"key": "reposts",
"name": "Reposts",
"value_current_period": 340,
"value_last_period": 280,
"percentage_change": "+21.43%",
"description": "The number of reposts of your posts."
},
{
"key": "reels_skip_rate",
"name": "Reels Skip Rate",
"value_current_period": 45,
"value_last_period": 76,
"percentage_change": "-41%",
"description": "The average percentage of times your Reel was skipped."
},
{
"key": "ig_reels_avg_watch_time",
"name": "Reels Average Watch Time",
"value_current_period": "4.5s",
"value_last_period": "2.56s",
"percentage_change": "+76%",
"description": "The average amount of time viewers spent watching your Reels."
},
{
"key": "crossposted_views",
"name": "Crossposted Views",
"value_current_period": 2100,
"value_last_period": 1800,
"percentage_change": "+16.67%",
"description": "The number of views on your crossposted content."
}
],
"posts": [
{
"id": "ig_abc123",
"page_id": "ig_page_456",
"format": "carousel",
"caption": "Our new collection is here!",
"permalink": "https://instagram.com/p/abc123",
"media_type": "CAROUSEL_ALBUM",
"media_url": "https://scontent.cdninstagram.com/...",
"thumbnail_url": "https://scontent.cdninstagram.com/...",
"stats": {
"reach": 5200,
"likes": 420,
"comments": 85,
"shares": 120,
"reposts": 32,
"reelsSkipRate": null,
"ig_reels_avg_watch_time": "2.86s",
"ig_reels_video_view_total_time": "2.86s",
"crosspostedViews": 0
},
"timestamp": "2026-04-18T16:00:00+00:00"
}
]
}
}
Post Stats
| Field | Description |
|---|---|
reach | Number of accounts reached |
likes | Number of likes |
comments | Number of comments |
shares | Number of shares |
reposts | Number of reposts |
reelsSkipRate | Reels skip rate (can be null if no reels data) |
ig_reels_avg_watch_time | Average Reels watch time |
ig_reels_video_view_total_time | Total Reels watch time |
crosspostedViews | Crossposted views count |
Engagement rate: (likes + comments + shares + reposts) / reach * 100
Note: reels_skip_rate is averaged across posts that have it; can be null if no reels data.
3. GET /api/instagram/stories
Returns analytics for stories only (filters where is_story=true).
Sample Request
curl --location --request GET \
"https://analyze.oneupapp.io/api/instagram/stories?apiKey=YOUR_API_KEY&social_network_id=123&preset=last_7_days"
Sample Response
{
"success": true,
"data": {
"stats": [
{
"key": "stories",
"name": "Stories",
"value_current_period": 18,
"value_last_period": 15,
"percentage_change": "+20.00%"
},
{
"key": "reach",
"name": "Reach",
"value_current_period": 22000,
"value_last_period": 18000,
"percentage_change": "+22.22%"
},
{
"key": "views",
"name": "Views",
"value_current_period": 19000,
"value_last_period": 15500,
"percentage_change": "+22.58%"
},
{
"key": "replies",
"name": "Replies",
"value_current_period": 680,
"value_last_period": 520,
"percentage_change": "+30.77%"
},
{
"key": "shares",
"name": "Shares",
"value_current_period": 420,
"value_last_period": 350,
"percentage_change": "+20.00%"
},
{
"key": "total_interactions",
"name": "Interactions",
"value_current_period": 1100,
"value_last_period": 870,
"percentage_change": "+26.44%"
},
{
"key": "navigation",
"name": "Navigation",
"value_current_period": 3200,
"value_last_period": 2800,
"percentage_change": "+14.29%"
},
{
"key": "profile_visits",
"name": "Profile Visits",
"value_current_period": 1500,
"value_last_period": 1200,
"percentage_change": "+25.00%"
}
],
"stories": [
{
"id": "ig_story_xyz",
"caption": "Weekend vibes",
"permalink": "https://instagram.com/stories/ig_page_456/xyz",
"media_type": "IMAGE",
"media_url": "https://scontent.cdninstagram.com/...",
"thumbnail_url": "https://scontent.cdninstagram.com/...",
"stats": {
"reach": 3800,
"views": 3200,
"replies": 120,
"shares": 78,
"total_interactions": 198,
"navigation": 540,
"profile_visits": 260
},
"timestamp": "2026-04-25T12:00:00+00:00"
}
]
}
}
Story Stats
| Field | Description |
|---|---|
reach | Accounts reached |
views | Total views |
replies | Number of replies |
shares | Number of shares |
total_interactions | Total interactions |
navigation | Navigation actions |
profile_visits | Profile visits from story |
4. GET /api/instagram/demographics
Returns follower and engaged audience demographics. No period comparison — returns the latest snapshot only. Each data array is limited to the top 10 entries.
Sample Request
curl --location --request GET \
"https://analyze.oneupapp.io/api/instagram/demographics?apiKey=YOUR_API_KEY&social_network_id=123"
Sample Response
{
"success": true,
"data": [
{
"key": "follower_demographics_age",
"name": "Followers by Age",
"data": [
{
"name": "18-24",
"value": 5700,
"percentage": 20.0,
"share": 20.0
},
{
"name": "25-34",
"value": 9125,
"percentage": 32.0,
"share": 32.0
},
{
"name": "35-44",
"value": 6545,
"percentage": 23.0,
"share": 23.0
},
{
"name": "45-54",
"value": 4275,
"percentage": 15.0,
"share": 15.0
},
{
"name": "55-64",
"value": 1995,
"percentage": 7.0,
"share": 7.0
},
{
"name": "65+",
"value": 860,
"percentage": 3.0,
"share": 3.0
}
]
},
{
"key": "follower_demographics_gender",
"name": "Followers by Gender",
"data": [
{
"name": "Men",
"value": 14250,
"percentage": 50.0,
"share": 50.0
},
{
"name": "Women",
"value": 12825,
"percentage": 45.0,
"share": 45.0
},
{
"name": "Non-Binary",
"value": 1425,
"percentage": 5.0,
"share": 5.0
}
]
},
{
"key": "follower_demographics_city",
"name": "Followers by City",
"data": [
{
"name": "New York",
"value": 3135,
"percentage": 11.0,
"share": 11.0
},
{
"name": "London",
"value": 2565,
"percentage": 9.0,
"share": 9.0
},
{
"name": "Los Angeles",
"value": 2280,
"percentage": 8.0,
"share": 8.0
}
]
},
{
"key": "follower_demographics_country",
"name": "Followers by Country",
"data": [
{
"name": "United States",
"value": 8550,
"percentage": 30.0,
"share": 30.0
},
{
"name": "United Kingdom",
"value": 4275,
"percentage": 15.0,
"share": 15.0
},
{
"name": "Brazil",
"value": 2850,
"percentage": 10.0,
"share": 10.0
}
]
},
{
"key": "engaged_audience_demographics_age",
"name": "Engaged Audience by Age",
"data": []
},
{
"key": "engaged_audience_demographics_gender",
"name": "Engaged Audience by Gender",
"data": []
},
{
"key": "engaged_audience_demographics_city",
"name": "Engaged Audience by City",
"data": []
},
{
"key": "engaged_audience_demographics_country",
"name": "Engaged Audience by Country",
"data": []
}
]
}
Demographic Keys
| Key | Name | Audience |
|---|---|---|
follower_demographics_age | Followers by Age | All followers |
follower_demographics_gender | Followers by Gender | All followers |
follower_demographics_city | Followers by City | All followers |
follower_demographics_country | Followers by Country | All followers |
engaged_audience_demographics_age | Engaged Audience by Age | Engaged users |
engaged_audience_demographics_gender | Engaged Audience by Gender | Engaged users |
engaged_audience_demographics_city | Engaged Audience by City | Engaged users |
engaged_audience_demographics_country | Engaged Audience by Country | Engaged users |
✅ Result: You have successfully retrieved Instagram analytics data!