# LinkedIn Post Analytics API: Pages and Personal Profiles

Get LinkedIn post analytics by API: share statistics for Pages, memberCreatorPostAnalytics for personal profiles, the scopes each needs, and common errors.

Canonical page: https://www.tryadeli.com/blog/linkedin-post-analytics-api
Last updated: 2026-11-02

By Nick Reyes, Co-founder and CTO, Adeli. Published 2026-11-02.

## The short answer

LinkedIn post analytics come from the Community Management API. For a company Page, call organizationalEntityShareStatistics with the rw_organization_admin scope. For a personal profile, call memberCreatorPostAnalytics with r_member_postAnalytics, one metric per request. Page post stats are organic only and cover the past 12 months. Adeli returns impressions, reactions, comments, clicks, and shares for both through one social media API.

**The LinkedIn post analytics API is two endpoints in LinkedIn's Community Management API**: `organizationalEntityShareStatistics` for posts on a company Page, and `memberCreatorPostAnalytics` for posts on a member's personal profile. They take different scopes, different URN formats, and different date formats, and many failed calls in developer forums come from mixing the two up.

That mix-up shows in the forum threads: developers get a `403` asking for one post's numbers when the Page totals worked fine, or a `404` for a post they published minutes earlier. This guide covers both endpoints, the requests that work, and the errors developers hit, with every rule checked against LinkedIn's docs on Microsoft Learn.

## Which LinkedIn API returns post analytics?

**LinkedIn post analytics come from the Community Management API, one of the products in LinkedIn's Marketing API program.** The [Community Management overview](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/community-management-overview) lists Page Analytics and Member Analytics as approved use cases, and both sit in the same product your app uses to post.

One result on the first page of Google says share statistics come through the Marketing API instead of Community Management. Both names fit, because LinkedIn's Marketing API is the umbrella and Community Management is a product inside it. The [share statistics reference](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/organizations/share-statistics) sits in the Community Management docs and needs only `rw_organization_admin`, a scope the Community Management API grants. You don't need the Advertising API for organic post numbers.

| What you want | Endpoint | Scope the member grants |
| --- | --- | --- |
| **Page post stats** (impressions, clicks, likes, comments, shares) | `organizationalEntityShareStatistics` | `rw_organization_admin` |
| **Page views and button clicks** | `organizationPageStatistics` | `rw_organization_admin` |
| **Page follower gains and demographics** | `organizationalEntityFollowerStatistics` | `rw_organization_admin` |
| **Personal profile post stats** | `memberCreatorPostAnalytics` | `r_member_postAnalytics` |
| **Personal profile followers** | `memberFollowersCount` | `r_member_profileAnalytics` |
| **Sponsored post results** | Ad Analytics (Advertising API) | `r_ads_reporting` |

## What do you need before you start?

- **A LinkedIn developer app with the Community Management API approved.** LinkedIn [vets the request](https://learn.microsoft.com/en-us/linkedin/marketing/community-management-app-review) and starts every app on Development tier.
- **The right member.** For Page analytics, the member who authorizes your app must hold the `ADMINISTRATOR` role on that Page. For personal analytics, the member reads only their own posts.
- **The scopes in your OAuth request:** `rw_organization_admin` for Pages, and `r_member_postAnalytics` plus `r_member_profileAnalytics` for profiles.
- **A `Linkedin-Version` header** in `YYYYMM` form and `X-Restli-Protocol-Version: 2.0.0` on every call.
- **The post URN** from when you published it: `urn:li:share:…` or `urn:li:ugcPost:…`.

## Step 1: Get Page post analytics with the LinkedIn Page analytics API

**The LinkedIn Page analytics API for posts is `organizationalEntityShareStatistics`, called with the Page's organization URN.** Leave out `timeIntervals` and it returns lifetime totals for the Page's posts:

```bash
curl "https://api.linkedin.com/rest/organizationalEntityShareStatistics?q=organizationalEntity&organizationalEntity=urn%3Ali%3Aorganization%3A2414183" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Linkedin-Version: 202610" \
  -H "X-Restli-Protocol-Version: 2.0.0"
```

Each element carries a `totalShareStatistics` object with `impressionCount`, `uniqueImpressionsCount`, `clickCount`, `likeCount`, `commentCount`, `shareCount`, and `engagement`.

To get specific posts, add them as a list. Use `shares` for `urn:li:share` URNs and `ugcPosts` for `urn:li:ugcPost` URNs:

```bash
curl "https://api.linkedin.com/rest/organizationalEntityShareStatistics?q=organizationalEntity&organizationalEntity=urn%3Ali%3Aorganization%3A2414183&shares=List(urn%3Ali%3Ashare%3A7132564752928563200,urn%3Ali%3Ashare%3A7132402731377438720)" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Linkedin-Version: 202610" \
  -H "X-Restli-Protocol-Version: 2.0.0"
```

Four rules from LinkedIn's reference that catch people:

- **Organic only.** Sponsored activity isn't counted. Paid numbers come from Ad Analytics.
- **12 months back.** The endpoint returns share data only within a rolling 12-month window.
- **No daily breakdown per post.** Time-bound statistics aren't supported for specific share or UGC post queries. Daily numbers come only at the Page level.
- **Missing means zero.** A post with no impressions or actions is left out of the response, and LinkedIn says to treat it as zero for every metric.

## Step 2: Get daily Page numbers with timeIntervals

**Daily or monthly Page numbers come from adding `timeIntervals` to the same call, with timestamps in milliseconds since the epoch.** The granularity is `DAY` or `MONTH`. With protocol version 2.0.0, the parameter is one Rest.li object:

```bash
curl "https://api.linkedin.com/rest/organizationalEntityShareStatistics?q=organizationalEntity&organizationalEntity=urn%3Ali%3Aorganization%3A2414183&timeIntervals=(timeRange:(start:1790812800000,end:1791417600000),timeGranularityType:DAY)" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Linkedin-Version: 202610" \
  -H "X-Restli-Protocol-Version: 2.0.0"
```

Each element gets a `timeRange` and the totals for that day. Two related Page endpoints take the same `timeIntervals` shape:

- **`organizationPageStatistics`** returns Page views and clicks, split by desktop and mobile and by section (overview, careers, jobs, life).
- **`organizationalEntityFollowerStatistics`** returns follower gains, organic and paid. Without `timeIntervals` it returns lifetime counts by seniority, industry, function, country, and company size. LinkedIn's [follower statistics page](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/organizations/follower-statistics) says the time-bound version runs from 12 months before the request date to 2 days before it.

The `shareCount` in daily results won't add up to the lifetime number. LinkedIn notes that time-bound data leaves out instant reposts.

## Step 3: Get personal profile analytics with the LinkedIn member post analytics API

**The LinkedIn member post analytics API is `memberCreatorPostAnalytics`, and it returns one metric per request for the authenticated member's own posts.** LinkedIn opened it to third-party tools on July 8, 2025. The `entity` finder reads one post; the URN goes inside a wrapper that names its type:

```bash
curl "https://api.linkedin.com/rest/memberCreatorPostAnalytics?q=entity&entity=(share:urn%3Ali%3Ashare%3A7325786486870552578)&queryType=IMPRESSION&aggregation=TOTAL" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Linkedin-Version: 202610" \
  -H "X-Restli-Protocol-Version: 2.0.0"
```

For a `urn:li:ugcPost`, the wrapper is `(ugc:urn%3Ali%3AugcPost%3A…)`. The `me` finder (`q=me`) totals the same metric across all of the member's posts.

| Setting | Values, from LinkedIn's [member post statistics reference](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/members/post-statistics) |
| --- | --- |
| **`queryType`** | `IMPRESSION`, `MEMBERS_REACHED`, `RESHARE`, `REACTION`, `COMMENT`; from version 202604 also `POST_SAVE`, `POST_SEND`, `LINK_CLICKS`, `PREMIUM_CTA_CLICKS`, `FOLLOWER_GAINED_FROM_CONTENT`, `PROFILE_VIEW_FROM_CONTENT` |
| **`aggregation`** | `TOTAL` (default) or `DAILY`; `DAILY` isn't supported for `MEMBERS_REACHED`, `LINK_CLICKS`, `FOLLOWER_GAINED_FROM_CONTENT`, or `PROFILE_VIEW_FROM_CONTENT` |
| **`dateRange`** | `(start:(day:4,month:5,year:2024),end:(day:6,month:5,year:2024))`, start inclusive, end exclusive; omit it for the post's lifetime |

Two behaviors to plan for:

- **One metric per call.** A post card that shows impressions, reactions, comments, and reshares is four requests. On Development tier that's four of a member's 100 daily calls.
- **Best-effort counts.** LinkedIn says the data shouldn't be used for billing, and that `RESHARE`, `REACTION`, and `COMMENT` from the `me` finder aren't consistent with the LinkedIn UI.

LinkedIn's director of creator products, Sam Corrao Clanon, explained the purpose to Digiday at launch:

> "What this will do on the creator side … is give a more complete picture of what their reach looks like across platforms, from whatever tool they use."
>
> [Sam Corrao Clanon, director of creator products at LinkedIn, in Digiday](https://digiday.com/media/linkedin-makes-it-easier-for-creators-to-track-performance-across-platforms/), July 2025

If your product reports on customers' LinkedIn posts, this endpoint means they stop exporting numbers from LinkedIn by hand.

## Step 4: Add the LinkedIn profile analytics API for followers

**The LinkedIn profile analytics API for followers is `memberFollowersCount`, which needs the `r_member_profileAnalytics` scope.** `q=me` returns the lifetime count; `q=dateRange` returns a daily series:

```bash
curl "https://api.linkedin.com/rest/memberFollowersCount?q=dateRange&dateRange=(start:(year:2026,month:10,day:1),end:(year:2026,month:10,day:29))" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Linkedin-Version: 202610" \
  -H "X-Restli-Protocol-Version: 2.0.0"
```

LinkedIn's scope description for `r_member_profileAnalytics` also names profile viewers and search appearances. The Community Management overview, though, lists only three member analytics endpoints: follower statistics, post statistics, and video analytics.

## What errors do developers hit with LinkedIn post analytics?

**Most LinkedIn post analytics errors come from the member's role, the URN type, or or the date format.** These are from public developer threads.

> "…when I ask for a concrete share created in this organization I get a **403**…"
>
> [jordi on Microsoft Q&A](https://learn.microsoft.com/en-us/answers/questions/1331917/linkedin-api-organizationalentitysharestatistics-r), July 2023

> "I found out that I **wasn't admin of the organization** after all, only of the corresponding developer app."
>
> [Christian Kaul on Stack Overflow](https://stackoverflow.com/a/78401215), April 2024

> "…every post has **the same result for each day** (i.e. days 1 through 7 have the same data for each post, but I expect different data for each day for each post)."
>
> [A developer on Stack Overflow](https://stackoverflow.com/questions/79913567/retrieving-data-such-as-impressions-for-each-share-for-each-day), March 2026

> "**End time must be greater than start time by at least one multiple of the granularity type**"
>
> [Avedis Maroukian on Stack Overflow](https://stackoverflow.com/questions/75749816/end-time-must-be-greater-than-start-time-by-at-least-one-multiple-of-the-granula), March 2023

> "…consistently receive a **404 Resource not found** response, despite successful OAuth and post creation."
>
> [Meenakshi Joshi on Stack Overflow](https://stackoverflow.com/questions/79866626/linkedin-membercreatorpostanalytics-returns-404-resource-not-found-for-valid-pos), January 2026

> "LinkedIn **doesn't allow access to analytics for personal (member) posts** through their public APIs."
>
> [A reply on the Make Community forum](https://community.make.com/t/403-forbidden-beginner-trying-to-fetch-personal-linkedin-post-analytics/98818), December 2025

Each one maps to a rule above:

| Symptom | Likely cause | Fix |
| --- | --- | --- |
| **`403` on specific posts, `200` on Page totals** | The member isn't an `ADMINISTRATOR` of the Page, or a `ugcPost` URN went in `shares` | Check the role with `organizationAcls`; match `shares` to `urn:li:share` and `ugcPosts` to `urn:li:ugcPost` |
| **Same numbers every day for one post** | Time-bound stats aren't supported for specific posts | Read daily numbers at the Page level, or store lifetime totals daily and subtract |
| **"End time must be greater than start time…"** | Timestamps in seconds, or a range over 12 months | Use milliseconds and stay inside the rolling 12-month window |
| **`404` from `memberCreatorPostAnalytics`** | The URN isn't wrapped by type, or the post isn't the member's own | Send `entity=(share:…)` or `entity=(ugc:…)` with the author's token |
| **"No analytics for personal posts"** | Advice from before July 2025 | Request `r_member_postAnalytics` and use `memberCreatorPostAnalytics` |

## Is there a LinkedIn analytics API documentation page for all of this?

**LinkedIn's analytics API documentation lives on Microsoft Learn, split into one page per endpoint under Community Management.** These are the pages to bookmark:

- [Organization share statistics](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/organizations/share-statistics): Page post analytics
- [Organization page statistics](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/organizations/page-statistics): Page views and clicks
- [Organization follower statistics](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/organizations/follower-statistics): Page followers
- [Member post statistics](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/members/post-statistics): personal profile post analytics
- [Member follower statistics](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/members/follower-statistics): personal profile followers
- [Increasing access](https://learn.microsoft.com/en-us/linkedin/marketing/increasing-access): every scope, and the Development and Standard tier limits

Each page has a version picker. Read the version that matches your `Linkedin-Version` header, because metrics such as `POST_SAVE` only exist from 202604.

## Is there a faster way to get LinkedIn post analytics?

**Adeli returns LinkedIn post analytics for Pages and personal profiles through one social media API**, so your product doesn't need its own Community Management approval, scope handling, or per-metric calls. Your users connect a Page or their personal profile, and you read their numbers with the same API key you use for every other network.

Lifetime counters for up to five posts, by the `providerId` Adeli returned when you [published to LinkedIn](https://www.tryadeli.com/docs/api/posts/publish-linkedin):

```bash
curl "https://app.tryadeli.com/api/v1/analytics/linkedin/post-insights?accountId=<ACCOUNT_ID>&postUrns=urn:li:share:7251234567890123456" \
  -H "Authorization: Bearer $ADELI_API_KEY"
```

Followers and a daily series for the last 1 to 30 complete UTC days:

```bash
curl "https://app.tryadeli.com/api/v1/analytics/linkedin/account-insights?accountId=<ACCOUNT_ID>&days=7" \
  -H "Authorization: Bearer $ADELI_API_KEY"
```

What you get back, per Adeli's docs:

- **Post insights.** Impressions, reactions, and comments for every post; clicks and shares for Page posts. See [LinkedIn post insights](https://www.tryadeli.com/docs/api/analytics/linkedin-post-insights).
- **Account insights.** Followers plus daily impressions, reactions, comments, shares, and follower gain; Pages also get clicks and page views. See [LinkedIn account insights](https://www.tryadeli.com/docs/api/analytics/linkedin-account-insights).
- **Honest gaps.** A metric LinkedIn didn't return comes back as `null`, never zero, and is named in `unavailable`.
- **Cached snapshots.** Adeli serves a snapshot refreshed at most every six hours, with `fetchedAt` and a `stale` flag, instead of calling LinkedIn on every request. The [LinkedIn API rate limit guide](https://www.tryadeli.com/blog/linkedin-api-rate-limit) explains why.

One limit comes from LinkedIn: Adeli can't list a personal profile's posts, so personal profile analytics cover posts published through Adeli. A Page's recent posts include those made directly on LinkedIn. The same key returns analytics for Instagram, Facebook, TikTok, and YouTube through [Adeli's analytics API](https://www.tryadeli.com/social-media-analytics-api), and it publishes too: see the [LinkedIn posting API guide](https://www.tryadeli.com/blog/linkedin-posting-api).

## Frequently asked questions

### Does the LinkedIn API return analytics for personal profile posts?

Yes. LinkedIn's memberCreatorPostAnalytics endpoint returns impressions, members reached, reshares, reactions, and comments for the authenticated member's posts, plus saves, sends, link clicks, and follower and profile view gains from version 202604. The member grants the r_member_postAnalytics scope through OAuth.

### Are LinkedIn post analytics real time?

Not exactly. LinkedIn calls member post analytics best-effort accurate and says the counts shouldn't be used for billing. For Page posts, LinkedIn points to its socialActions endpoint when you need like and comment counts that match what the LinkedIn feed shows.

### Can I get analytics for sponsored LinkedIn posts with the share statistics API?

No. LinkedIn's organizationalEntityShareStatistics endpoint returns organic statistics only and doesn't count sponsored activity. Paid results come from LinkedIn's Ad Analytics in the Advertising API, which is a separate product with its own access request.

### How far back do LinkedIn Page post analytics go?

Twelve months. LinkedIn's share statistics endpoint returns share data only within a rolling 12-month window, and time-bound follower statistics cover 12 months before the request date up to 2 days before it. Store the numbers yourself if you need a longer history.

## Related Adeli pages

- [Social Media Analytics API](https://www.tryadeli.com/social-media-analytics-api.md): Adeli's analytics API: Instagram, TikTok, Facebook Page, and YouTube insights endpoints, plus per-post engagement on every post an account has made.
- [Social Media Posting & Scheduling API](https://www.tryadeli.com/social-media-posting-api.md): Adeli's social media posting and scheduling API publishes to Instagram, TikTok, YouTube, Facebook, X, and Bluesky in one request, now or at a set time. Free to start.
- [Social Media and Ads API for AI Marketing Platforms](https://www.tryadeli.com/use-cases/ai-marketing-platforms.md): Run posting, analytics, inbox, and Meta ads for your customers' accounts through one API, without months of platform reviews.
- [All posts on the Adeli blog](https://www.tryadeli.com/blog.md)

## About the author

Nick Reyes is the CTO behind Adeli and builds its API, its platform integrations, and the docs. He is a product engineer with 10 years of experience at Phantom, Airbnb, and Google.
