Get post analytics
After a post publishes, Schedulin collects its metrics from the platform on a schedule. Two
endpoints expose them (OAuth apps need the analytics:read scope).
Latest snapshot
GET /v0/posts/{id}/analytics/summary returns the most recent metrics and when they were
collected:
curl https://api.schedulin.app/v0/posts/post_789/analytics/summary \ -H "x-api-key: $SCHEDULIN_API_KEY"
{ "analyticsLatest": { "...": "platform metrics" }, "analyticsLastFetchedAt": "2026-06-02T10:00:00.000Z", "analyticsNextFetchAt": "2026-06-02T16:00:00.000Z", "updatedAt": "2026-06-02T10:00:00.000Z" }
const summary = await client.posts.analyticsSummary({ id: "post_789" });
summary = client.posts.analytics_summary("post_789")
analyticsLatest is null until the first collection runs. Its keys depend on the
platform (views, likes, comments, shares, and so on). analyticsNextFetchAt tells you when
fresher numbers are expected.
Time series
GET /v0/posts/{id}/analytics/series returns every collected snapshot, oldest first, under
data. limit caps the number of points (default 500, max 1000).
curl "https://api.schedulin.app/v0/posts/post_789/analytics/series?limit=100" \ -H "x-api-key: $SCHEDULIN_API_KEY"
{ "data": [ { "id": "…", "collectedAt": "2026-06-01T16:00:00.000Z", "platform": "instagram", "metrics": { "...": "platform metrics" } } ] }
const { data: points } = await client.posts.analyticsSeries({ id: "post_789", limit: 100 });
points = client.posts.analytics_series("post_789", limit=100).data
NOTE
Both endpoints return for a post that isn't in your workspace. TikTok series require the channel to have granted the permission; otherwise the series endpoint returns — reconnect the channel to grant it.