Skip to main content

Instagram Analytics

warning

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

KeyNameDescription
postsPosts + Reels + StoriesTotal number of posts, including Reels and Stories, in this period
reachReachThe number of unique accounts that have seen your content, at least once, including in ads.
viewsViewsThe number of times your content was viewed
follower_countNew FollowersThe number of followers in this period.
likesLikesThe number of likes on your post minus the number of unlikes.
commentsCommentsThe number of comments on your post minus the number of deleted comments.
sharesSharesThe number of shares of your post.
profile_viewsProfile ViewsThe number of times that your profile was visited.
ig_reels_avg_watch_timeReels Average Watch TimeThe average amount of time viewers spent watching your Reels.
ig_reels_video_view_total_timeReels Total Watch TimeThe 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

FieldDescription
reachNumber of accounts reached
likesNumber of likes
commentsNumber of comments
sharesNumber of shares
repostsNumber of reposts
reelsSkipRateReels skip rate (can be null if no reels data)
ig_reels_avg_watch_timeAverage Reels watch time
ig_reels_video_view_total_timeTotal Reels watch time
crosspostedViewsCrossposted 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

FieldDescription
reachAccounts reached
viewsTotal views
repliesNumber of replies
sharesNumber of shares
total_interactionsTotal interactions
navigationNavigation actions
profile_visitsProfile 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

KeyNameAudience
follower_demographics_ageFollowers by AgeAll followers
follower_demographics_genderFollowers by GenderAll followers
follower_demographics_cityFollowers by CityAll followers
follower_demographics_countryFollowers by CountryAll followers
engaged_audience_demographics_ageEngaged Audience by AgeEngaged users
engaged_audience_demographics_genderEngaged Audience by GenderEngaged users
engaged_audience_demographics_cityEngaged Audience by CityEngaged users
engaged_audience_demographics_countryEngaged Audience by CountryEngaged users

Result: You have successfully retrieved Instagram analytics data!