Analytics Overview
Read views, likes, comments, shares, followers and engagement rate for a date window, as a total, per day and per platform, each compared with the previous window.
Three endpoints answer "how did we do": one total, one trend, one comparison between platforms. All three read the same numbers. Analytics cover Facebook, Instagram, Threads, TikTok, Pinterest, Bluesky and YouTube for the last 180 days. X has no analytics here, and LinkedIn analytics are waiting on LinkedIn's approval, so both return nothing.
Window parameters
| Parameter | Description |
|---|---|
| from | Start of the window, ISO 8601. Required |
| to | End of the window, ISO 8601, not earlier than from. Required |
| platforms | Restrict to these platforms. Repeat the key per value. Omit for every covered platform |
Metrics count posts published inside the window. Every value comes with the same metric for the window of equal length immediately before from, so a 30 day window is compared with the 30 days before it.
GET /api/v1/analytics/overview
GET /api/v1/analytics/overview?from=2026-08-01&to=2026-08-31&platforms=INSTAGRAM&platforms=TIKTOK
{
"views": { "value": 48210, "previousValue": 39100, "deltaPercent": 23.3 },
"likes": { "value": 2210, "previousValue": 1980, "deltaPercent": 11.6 },
"comments": { "value": 340, "previousValue": 410, "deltaPercent": -17.1 },
"shares": { "value": 128, "previousValue": null, "deltaPercent": null },
"followers": { "value": 12980, "previousValue": 12410, "deltaPercent": 4.6 },
"postsCount": { "value": 42, "previousValue": 37, "deltaPercent": 13.5 },
"avgViewsPerPost": { "value": 1147.9, "previousValue": 1056.8, "deltaPercent": 8.6 },
"engagementRate": { "value": 5.55, "previousValue": 6.11, "deltaPercent": -9.2 },
"partialMetrics": ["shares"],
"lastSyncedAt": "2026-09-08T06:12:41.000Z"
}| Field | Description |
|---|---|
| value | The metric for the requested window |
| previousValue | The same metric for the previous window of equal length |
| deltaPercent | Change from previousValue to value. Null when the previous value is 0 or unknown |
| followers | Latest follower count as of to, compared with the count at the end of the previous window |
| engagementRate | Likes, comments and shares divided by views, as a percentage |
| partialMetrics | Metrics at least one selected platform cannot report. Their totals only cover the platforms that can |
| lastSyncedAt | Most recent successful sync across the selected platforms |
A metric no selected platform reports is null. That is "not measured", not zero.
GET /api/v1/analytics/timeseries
GET /api/v1/analytics/timeseries?from=2026-08-01&to=2026-08-31&granularity=WEEKLY
Adds granularity: DAILY (default), WEEKLY or MONTHLY.
{
"points": [
{
"date": "2026-08-03T00:00:00.000Z",
"views": 11820,
"likes": 590,
"comments": 82,
"shares": 31,
"followers": 12520,
"postsCount": 10,
"engagementRate": 5.9
}
]
}date is the start of the bucket in UTC. followers is the latest known count at the end of the bucket. The other counters sum the posts published inside it.
GET /api/v1/analytics/platform-breakdown
GET /api/v1/analytics/platform-breakdown?from=2026-08-01&to=2026-08-31
Takes from and to only. Returns { "platforms": [...] } with one row per platform that has data in the workspace. Each row carries the overview metrics for that platform plus supportedMetrics, the list of metrics the platform reports. Compare two platforms only on metrics both list there: a Pinterest row with null shares is not losing to Instagram on shares, it does not report them.
Freshness
Numbers refresh every few hours on their own. If you just published and want the numbers now, see Analytics Sync.