Skip to main content
GET
/
post-analytics
curl "https://api.joinoverlap.com/post-analytics?companyId=YOUR_COMPANY_ID&postId=POST_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch(
  'https://api.joinoverlap.com/post-analytics?companyId=YOUR_COMPANY_ID&postId=POST_ID',
  { headers: { Authorization: 'Bearer YOUR_API_KEY' } }
);
const { post, analytics } = await response.json();
import requests

response = requests.get(
    "https://api.joinoverlap.com/post-analytics",
    params={"companyId": "YOUR_COMPANY_ID", "postId": "POST_ID"},
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = response.json()
print(data["analytics"]["views"], data["analytics"]["likes"])

Endpoint

GET https://api.joinoverlap.com/post-analytics?companyId={companyId}&postId={postId}
One call returns everything Overlap currently knows about a published post’s performance: the post’s identity, the normalized counters (views, likes, comments, shares, engagement score), and the platform’s own advanced metrics from the latest refresh — the same data behind the post analytics page in the Overlap dashboard. Find postIds with GET /posts.

Authentication

Authorization: Bearer YOUR_API_KEY

Query Parameters

ParameterRequiredDescription
companyIdYesYour Overlap company or organization identifier.
postIdYesThe post id from GET /posts.
The same lookup is also available at GET /companies/{companyId}/posts/{postId}/analytics.
curl "https://api.joinoverlap.com/post-analytics?companyId=YOUR_COMPANY_ID&postId=POST_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch(
  'https://api.joinoverlap.com/post-analytics?companyId=YOUR_COMPANY_ID&postId=POST_ID',
  { headers: { Authorization: 'Bearer YOUR_API_KEY' } }
);
const { post, analytics } = await response.json();
import requests

response = requests.get(
    "https://api.joinoverlap.com/post-analytics",
    params={"companyId": "YOUR_COMPANY_ID", "postId": "POST_ID"},
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = response.json()
print(data["analytics"]["views"], data["analytics"]["likes"])

Response

{
  "post": {
    "id": "uV9LKKuVU2IiRcwv7UvY",
    "platform": "youtube",
    "text": "Top agent Jarred Arfa and promoter Danny Hayes say fans finally figured out the game...",
    "postUrl": "https://youtu.be/3j6-UUMa6WE",
    "nativeId": "3j6-UUMa6WE",
    "clipId": "6dd94ba0-908c-4489-897f-4bc02fe96650",
    "status": "success",
    "mediaUrl": "https://.../exported-6dd94ba0.mp4",
    "thumbnailUrl": "https://.../thumb.jpg",
    "createdAt": "2026-07-10T19:31:30+00:00"
  },
  "analytics": {
    "views": 969,
    "likes": 9,
    "comments": 0,
    "shares": 0,
    "engagementScore": 27.69,
    "growthRate": 9.1,
    "lastAnalyticsUpdate": "2026-07-10T23:10:31+00:00",
    "platformMetrics": {
      "youtube": {
        "analytics": {
          "viewCount": 969,
          "likeCount": 9,
          "averageViewDuration": 21,
          "estimatedMinutesWatched": 346,
          "subscribersGained": 1
        }
      }
    }
  }
}
Field definitions live in the Analytics Model reference.
analytics.platformMetrics carries the platform’s own advanced metrics from the most recent refresh — whatever the platform reports (e.g. YouTube averageViewDuration / estimatedMinutesWatched, TikTok watch time and retention, Facebook impression breakdowns, X organic metrics). Its shape mirrors the platform’s analytics API and may change without notice; the normalized counters above are the stable contract.

Data freshness

Overlap refreshes post analytics from the social platforms on a rolling schedule: new posts are refreshed frequently in their first days, then roughly every 6 hours. analytics.lastAnalyticsUpdate tells you when the data was last refreshed. Platform caveats to be aware of:
  • YouTube analytics lag roughly 48 hours behind real time.
  • X (Twitter) exposes detailed metrics only for 30 days after posting; older posts stop receiving updates.
  • Bluesky does not report per-post view counts, so views stays 0 there.
  • Watch-time and other advanced fields in platformMetrics are only present on platforms that report them.

List Posts

Discover post ids and browse rolled-up metrics.

Analytics Model

Field-by-field response reference.