REST APIGET

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.

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
ParameterDescription
from, toThe window, ISO 8601. Posts are selected by publish date. Required
platformsRestrict to these platforms. Repeat the key per value
sortByVIEWS, LIKES, COMMENTS, SHARES, SAVES, CLICKS, IMPRESSIONS, ENGAGEMENT_RATE or PUBLISHED_AT (default). Descending
pagePage number, from 1
limitPosts per page, 1 to 100, default 20
{
  "posts": [
    {
      "id": "ap_01j9xk4",
      "postId": "cmm0z0k3q0000i0r5mxn0hfhs",
      "postPlatformId": "cmm0z0k3u0001i0r5dlbfa440",
      "platform": "INSTAGRAM",
      "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
}
FieldDescription
idAnalytics record id. The only id every tracked post has
postIdThe AdaptlyPost post id, usable with Get Post. Null for a post discovered on the account
postPlatformIdThe platformId from Post Results. Null for discovered posts
permalinkPublic URL of the post on the platform, when known
metricsLatest captured counters. A metric the platform does not report is null

GET /api/v1/analytics/top-posts

GET /api/v1/analytics/top-posts?from=2026-08-01&to=2026-08-31&sortBy=ENGAGEMENT_RATE&limit=5

The same rows without pagination: the top limit posts (1 to 50, default 10) ordered by sortBy (default VIEWS). Returns { "posts": [...] }.

GET /api/v1/analytics/discovered-posts

GET /api/v1/analytics/discovered-posts?from=2026-08-01&to=2026-08-31&limit=200

Posts 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",
      "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.

How far back

Nothing published more than 180 days ago is listed, on any platform. Some platforms expose less history for a given account; Analytics Sync reports the exact horizon per account.