Skip to main content
Reference for the objects returned by GET /posts and GET /post-analytics. Fields are included when available — a response may omit values that have not been generated yet (for example, engagementScore before the first analytics refresh).

Post object

FieldTypeDescription
idstringThe post id. Use as postId for GET /post-analytics.
platformstringPlatform the post was published to (youtube, tiktok, instagram, twitter, linkedin, facebook, threads, snapchat, bluesky).
textstringThe caption/description that was published.
postUrlstring | nullPublic URL of the live post on the platform.
nativeIdstring | nullThe platform’s own id for the post (e.g. the YouTube video id).
clipIdstring | nullThe Overlap clip the post was created from. Use with GET /clip.
statusstringPublish status (success, error, …).
mediaUrlstring | nullThe rendered video/image that was published.
thumbnailUrlstring | nullThumbnail used for the post.
createdAtstring (ISO-8601)When the post was published.
analyticsobjectCurrent rolled-up counters — see below. In GET /posts responses this object sits on each post; in GET /post-analytics it is returned as the top-level analytics object instead.
engagementScorenumberSee Engagement score.
growthRatenumberPercentage growth of the engagement score between the two most recent refreshes.
lastAnalyticsUpdatestring (ISO-8601)When the rollup was last refreshed from the platform.

Analytics rollup object

FieldTypeDescription
viewsnumberCurrent view count. Impressions are used on platforms without a native view metric. Always 0 on Bluesky (no per-post views).
likesnumberCurrent likes/favorites.
commentsnumberCurrent comments/replies.
sharesnumberCurrent shares/reposts/retweets.
engagementScorenumberSee Engagement score.
growthRatenumberEngagement score growth (%) between the last two refreshes.
lastAnalyticsUpdatestring (ISO-8601)Last refresh time.
platformMetricsobjectThe platform’s own advanced metrics from the most recent refresh, keyed by platform (e.g. {"youtube": {"analytics": {"averageViewDuration": 21, ...}}}). Includes whatever the platform reports — watch time, retention, impressions, subscriber deltas. Shapes mirror the platforms’ APIs and may change without notice. Only on GET /post-analytics.

Engagement score

A single number Overlap computes to compare posts across platforms:
engagementScore = (likes × 2) + (comments × 3) + (shares × 4) + max(5, views / 100)
Weighted toward high-intent actions (shares > comments > likes), with a views term so view-heavy posts still register. Use it for relative ranking; it has no absolute unit.

List Posts

Browse posts and rolled-up metrics.

Post Analytics

All current analytics for one post.