Facebook Page Insights API: Metrics, Permissions, Limits

By Mika ReyesPublished 6 min read

The short answer

The Facebook Page Insights API is the insights edge of the Graph API. Call GET /{page-id}/insights or /{post-id}/insights with a Page access token, the read_insights and pages_read_engagement permissions, and a metric list. Requests cover at most 90 days and data goes back two years. Meta removed page_impressions and page_fans in November 2025; use page_media_view and page_follows. Adeli returns 28-day Page Insights in one call.

The Facebook Page Insights API is the insights edge of Meta's Graph API. You call GET /{page-id}/insights for Page-level metrics or GET /{post-id}/insights for a single post, pass the metrics you want, and authenticate with a Page access token that carries the read_insights and pages_read_engagement permissions. Meta caps each request at 90 days, keeps two years of history, and deprecated a large set of metrics in 2024 and 2025, so most tutorials written before then call metrics that no longer exist.

This guide covers the request, the permissions, the period and date rules, and the current metric names. It's part of our Facebook Graph API series.

What do you need before you start?

  • A Page access token. Page Insights calls act as the Page, so a user token won't do. Our Facebook Page access token guide walks through getting one that doesn't expire.
  • The ANALYZE task. Meta's insights reference says the token has to come from a person who can perform the ANALYZE task on the Page.
  • Two permissions, plus the one they depend on:
Permission What Meta says it allows Depends on
read_insights Read the Insights data for Pages, apps, and web domains the person owns pages_read_engagement, pages_show_list
pages_read_engagement Read content posted by the Page, followers data, and metadata and other insights about the Page pages_show_list

Source: Meta's permissions reference. For Pages your app doesn't own, both need Advanced Access, which means Business Verification and App Review. Our Meta app review guide covers what that takes.

How do I call the Facebook Page Insights API?

Send a GET to the Page's insights edge with a comma-separated metric list. Meta's reference shows two forms: one metric in the path, or several in the metric parameter.

curl -G "https://graph.facebook.com/v26.0/$PAGE_ID/insights" \
  --data-urlencode "metric=page_media_view,page_post_engagements,page_views_total" \
  --data-urlencode "period=day" \
  --data-urlencode "since=2026-09-01" \
  --data-urlencode "until=2026-09-28" \
  --data-urlencode "access_token=$PAGE_TOKEN"

The response has a data array with one object per metric. Each object carries name, period, and a values array of { value, end_time } pairs, one per day for period=day.

Leaving out metric is an error. Meta's reference says the call fails with error 3001, subcode 1504028.

How do I get insights for a single Facebook post?

Call the same edge on the post ID. Post metrics mostly use period=lifetime, so you don't pass a date range:

curl -G "https://graph.facebook.com/v26.0/$POST_ID/insights" \
  --data-urlencode "metric=post_media_view,post_total_media_view_unique,post_reactions_by_type_total,post_clicks" \
  --data-urlencode "access_token=$PAGE_TOKEN"

The post ID is the id you got back when you published to /{page-id}/feed, in the form {page-id}_{post-id}. Meta notes that Reel interactions aren't included in these figures, and that several video metrics are accurate only for the Page that created the video.

Which Page Insights metrics still work?

Use the "media view" and "follows" metrics. These are the current names for the figures most dashboards need, taken from Meta's insights reference:

Metric What it measures Periods
page_media_view Times the Page's content (videos, posts, stories, and ads) was played or displayed day, week, days_28
page_total_media_view_unique Unique viewers of the Page's content day, week, days_28
page_post_engagements Times people engaged with the Page's posts through reactions, comments, shares, and more day, week, days_28
page_views_total Views of the Page's profile, logged in and logged out day, week, days_28
page_follows Followers of the Page day
post_media_view Times one post was played or displayed lifetime
post_total_media_view_unique Unique viewers of one post lifetime
post_reactions_by_type_total A post's reactions, split by type lifetime
post_clicks Clicks anywhere in a post that don't generate a story lifetime

page_media_view and post_media_view accept the is_from_ads and is_from_followers breakdowns, which is how you split paid from organic now that the _paid and _organic metrics are gone.

Which Page Insights metrics did Meta deprecate?

Meta deprecated three batches in 2024 and 2025, for all API versions. Calling any of them returns an invalid metric error. The full list is on Meta's deprecated Page Insights metrics page; these are the ones most integrations used:

Deprecated Date Meta's alternative
page_impressions 2025-11-15 page_media_view
page_impressions_paid 2025-11-15 page_media_view with the is_from_ads breakdown
page_impressions_viral, page_impressions_nonviral 2025-11-15 None
page_fans 2025-11-15 page_follows
page_fans_city, page_fans_country 2025-11-15 page_follows_city, page_follows_country
page_fan_adds, page_fan_removes 2025-11-15 None
post_impressions 2025-11-15 post_media_view
post_impressions_fan 2025-11-15 post_media_view with the is_from_followers breakdown
page_impressions_unique 2025-06-15 page_total_media_view_unique
post_impressions_unique 2025-06-15 post_total_media_view_unique
page_engaged_users, page_consumptions, page_positive_feedback, post_activity 2024-03-14 None

Meta's announcement of the November change says impressions was replaced by views to match the Facebook app and Meta Business Suite, and page fans went because the classic Pages Insights tab was retired.

If your dashboard broke in late 2025, this is the likely cause. Swap each deprecated name for its alternative, and expect the new numbers not to line up exactly with the old ones, because views and impressions are counted differently.

What period and date limits apply?

Each metric supports only some periods, and a request with since and until can span 90 days at most. The rules from Meta's reference:

  • Periods. The edge accepts day, week, days_28, month, lifetime, and total_over_range, but each metric lists the ones it supports. Page metrics mostly take day, week, or days_28; post metrics mostly take lifetime.
  • 90 days per request. Meta's wording: "Only 90 days of insights can be viewed at one time when using the since and until parameters."
  • Two years of history. Anything older isn't available, and lifetime covers that window too.
  • date_preset as a shortcut. Values such as yesterday, last_7d, last_28d, and last_90d replace since and until.
  • Daily updates. Most metrics refresh once every 24 hours. Metrics marked with an asterisk in Meta's reference refresh several times a day.
  • Minimum audience. Insights exist only for Pages with 100 or more likes, and demographic breakdowns need 100 or more people.

For a two-year backfill, loop in 90-day windows and store each window's results. Meta's breakdowns return only non-zero values, so treat a missing row as zero rather than as an error.

How does Adeli return Facebook Page Insights?

Adeli returns a Page's details, recent-post engagement, and 28-day Page Insights in one request. Adeli's Facebook API holds the Meta app, carried Meta's review, and manages each connected Page's token, so you skip the permissions, the metric names, and the deprecation tracking above. The endpoint is Facebook Page metrics:

curl -G "https://app.tryadeli.com/api/v1/analytics/facebook/page-metrics" \
  -H "Authorization: Bearer $ADELI_API_KEY" \
  --data-urlencode "accountId=$ACCOUNT_ID"

The insights object in the response is built on the current metrics:

Adeli field Meta metric
views page_media_view, summed over the window
engagements page_post_engagements, summed
pageViews page_views_total, summed
followers page_follows on the latest day Meta reported
daily Daily views, oldest first

What we ran into while building it:

  • A missing permission comes back as a status. If a Page was connected without read_insights, insights comes back null with insightsUnavailable: "permission_missing", and the rest of the response still returns. Reconnecting fixes it.
  • analyze_task_missing is a different problem. Meta refused because the person who connected the Page can't view its insights, so a Page admin with analytics access has to reconnect.
  • null is not 0. A figure Meta didn't report comes back null. Small or new Pages often have none yet.

Per-post Facebook insights aren't part of Adeli's v1 API. The same API key also reads Instagram, TikTok, and YouTube analytics and publishes to Facebook, Instagram, TikTok, YouTube, X, and Bluesky. A Facebook Page counts as one connected account, and your first 3 connected accounts are free.

faq

Frequently asked questions

Is page_impressions deprecated?

Yes. Meta's deprecated metrics list says page_impressions, its paid, viral, and nonviral variants, and the post_impressions family were deprecated for all API versions on November 15, 2025. Meta names page_media_view as the alternative for Pages and post_media_view for posts. Calls to a removed metric return an invalid metric error.

What replaced page_fans in the Graph API?

Meta lists page_follows as the alternative to page_fans, and page_follows_city and page_follows_country for the location breakdowns. Page_fan_adds and page_fan_removes have no replacement. All of these were deprecated on November 15, 2025.

Why does the Page Insights API return no data?

Check four things. Meta only reports insights for Pages with 100 or more likes, demographic metrics need 100 or more people, the token has to come from someone who can perform the ANALYZE task on the Page, and most metrics update once every 24 hours, so today's numbers may not exist yet.

How far back can I get Facebook Page insights?

Meta keeps the last two years of insights. A single request with since and until can cover at most 90 days, so a two-year backfill takes about nine requests per metric set.

Power your next project
with one social media API

Give your users publishing, scheduling, and analytics through one integration your team can actually maintain.

Try with agents

Start with free credits. No credit card required.