Post Analytics
Per-post views, likes, comments, shares, saves, reach and engagement for every post published in a window, sortable by any metric, plus the posts AdaptlyPost found on your accounts but did not publish.
Permission: analytics.read. See Roles and permissions.
Post analytics answer "how did this post do" and "which posts did best". They cover posts published through AdaptlyPost and posts discovered on the connected accounts, so a post made in the native app still shows up with its numbers.
This is performance, not delivery. Post Results tells you whether a post reached each platform; this endpoint tells you what happened after it did.
GET /api/v1/analytics/posts
GET /api/v1/analytics/posts?from=2026-08-01&to=2026-08-31&sortBy=VIEWS&page=1&limit=20| Parameter | Description |
|---|---|
| from, to | The window, ISO 8601. Posts are selected by publish date. Required |
| platforms | Restrict to these platforms. Repeat the key per value |
| connectionIds | Restrict to these accounts, by their id from Social Accounts. Repeat the key per value |
| sortBy | VIEWS, LIKES, COMMENTS, SHARES, SAVES, CLICKS, IMPRESSIONS, ENGAGEMENT_RATE or PUBLISHED_AT (default). Descending |
| page | Page number, from 1 |
| limit | Posts per page, 1 to 100, default 20 |
{
"posts": [
{
"id": "ap_01j9xk4",
"postId": "cmm0z0k3q0000i0r5mxn0hfhs",
"postPlatformId": "cmm0z0k3u0001i0r5dlbfa440",
"platform": "INSTAGRAM",
"connectionId": "conn_ig_001",
"publishedAt": "2026-08-14T10:00:12.000Z",
"title": "Plan a week of posts in one sitting",
"thumbnailUrl": "https://cdn.adaptlypost.com/...",
"permalink": "https://www.instagram.com/p/...",
"accountName": "adaptlypost",
"metrics": {
"views": 9120,
"likes": 410,
"comments": 38,
"shares": 22,
"saves": 61,
"clicks": null,
"impressions": 10230,
"reach": 8540,
"engagementRate": 5.15
}
}
],
"total": 42,
"page": 1,
"limit": 20,
"hasMore": true
}| Field | Description |
|---|---|
| id | Analytics record id. The only id every tracked post has |
| postId | The AdaptlyPost post id, usable with Get Post. Null for a post discovered on the account |
| postPlatformId | The platformId from Post Results. Null for discovered posts |
| connectionId | The account the post belongs to: its id from Social Accounts |
| accountName | Display name of that account, on every platform |
| permalink | Public URL of the post on the platform, when known |
| metrics | Latest captured counters. A metric the platform does not report is null |
Google Business Profile posts are listed with null metrics: Google Business Profile reports impressions for the location only, not per post.
GET /api/v1/analytics/top-posts
GET /api/v1/analytics/top-posts?from=2026-08-01&to=2026-08-31&sortBy=ENGAGEMENT_RATE&limit=5The same rows without pagination: the top limit posts (1 to 50, default 10) ordered by sortBy (default VIEWS). Returns { "posts": [...] }. It takes the same platforms and connectionIds filters.
GET /api/v1/analytics/discovered-posts
GET /api/v1/analytics/discovered-posts?from=2026-08-01&to=2026-08-31&limit=200Posts found on the connected accounts that AdaptlyPost did not publish, for a read-only calendar. Their metrics are in /analytics/posts; this endpoint returns the post itself.
{
"posts": [
{
"id": "ap_01j9xk9",
"platform": "TIKTOK",
"connectionId": "conn_tt_001",
"publishedAt": "2026-08-20T17:30:00.000Z",
"text": "Behind the scenes of our launch week",
"thumbnailUrl": "https://cdn.adaptlypost.com/...",
"permalink": "https://www.tiktok.com/@adaptlypost/video/...",
"accountName": "adaptlypost"
}
]
}limit accepts 1 to 1000 and defaults to 200. Filter it with platforms and connectionIds the same way.
How far back
Connecting an account imports its posts from the last 180 days, and analytics are kept from then on while the account stays connected. A post keeps refreshing for 180 days after it is published, then holds its last numbers. Some platforms expose less history for a given account; Analytics Sync reports the exact horizon per account.