GET/social-posts/analytics
Fetch published posts with their latest performance metrics. Only returns posts that have been successfully published (with a platformPostId).
pf-api-keyRate limit: 350 requests per hourNotes
Only returns posts with status PUBLISHED and a valid platformPostId.
LinkedIn personal accounts are excluded (no metrics available from the LinkedIn API).
Count metrics (likes, comments, shares, impressions, reach, totalInteractions) are returned as strings (bigint), e.g. "1234" not 1234. Parse them to numbers in your code. Exception: the video watch-time fields (avgWatchTimeSeconds, totalWatchTimeSeconds, videoViews) and the Instagram rate fields (saveRate, reelsSkipRate) are plain JSON numbers.
latestMetric is null until metrics have been fetched for that post.
No pagination, so keep date ranges reasonable to avoid large responses.
extras holds platform-specific metrics not in the standard fields.
Results are automatically filtered to the workspace tied to the API key.
Video watch time
When a post has video watch-time data, latestMetric includes up to three extra fields: avgWatchTimeSeconds (average watch time per view), totalWatchTimeSeconds (total across all views), and videoViews (view count where the platform reports it separately). Watch-time values are in seconds, rounded to 2 decimals. All three are plain JSON numbers, not bigint strings like the other metrics.
Coverage: Facebook, Instagram Reels, YouTube, Pinterest, LinkedIn organization Pages, and TikTok. videoViews is omitted on Instagram, YouTube, and TikTok because their video-view totals are already reported in impressions.
Not available on Threads, X, or personal Facebook/LinkedIn accounts. Each field is omitted (not null) when there is no data. Facebook and Pinterest report watch-time immediately; Instagram, YouTube, and LinkedIn populate on the next metrics refresh; TikTok watch-time lands about 24 to 48 hours after publishing.
Instagram save rate and reel skip rate
On Instagram, latestMetric carries two derived engagement fields as plain JSON numbers. saveRate is the save rate (saves / reach) as a percentage, rounded to 2 decimals, present on Instagram feed posts, reels, and carousels that have metrics.
reelsSkipRate applies to Instagram Reels only: the percentage of viewers who skipped the reel within the first 3 seconds, as reported by Instagram, rounded to 2 decimals. It can be absent on low-view reels or until metrics refresh, and the raw reels_skip_rate key also lands in extras.
Both are Instagram-only and omitted (not null) on every other platform.
Pinterest extras
Pinterest pins populate the standard impressions, likes (reactions), and comments fields, plus these keys inside extras:
Lifetime: pin_clicks (clicks opening the pin close-up) and outbound_clicks (clicks to the destination URL).
Rolling 90-day window (Pinterest only exposes these over 90 days): impressions_90d, pin_clicks_90d, and outbound_clicks_90d.
Video pins additionally include lowercased Pinterest video metric keys, such as video_mrc_view, video_10s_view, and video_avg_watch_time.
Requires a Pinterest Business account on the connected social media. Personal accounts can be upgraded to Business for free via Pinterest settings.
TikTok extras
On TikTok video posts, the video-view count folds into impressions (so videoViews is omitted), and these keys appear inside extras:
total_time_watched and average_time_watched: total and average watch time in seconds. These also drive the normalized totalWatchTimeSeconds and avgWatchTimeSeconds fields.
full_video_watched_rate: the share of views that watched the whole video, a completion rate as returned by TikTok (passed through unchanged, not normalized by PostFast).
favorites: number of times the video was added to Favorites.
These insights come from TikTok and land about 24 to 48 hours after the video is published, so latestMetric can show counts like likes and comments before watch-time appears.
Query parameters
startDateISO 8601requiredStart of the date range, e.g. 2026-01-01T00:00:00.000Z.
endDateISO 8601requiredEnd of the date range, e.g. 2026-01-31T23:59:59.999Z.
platformsstringoptionalComma-separated platform values to filter by, e.g. FACEBOOK,INSTAGRAM.
socialMediaIdsstringoptionalComma-separated UUIDs to filter by specific social media account ids (from /social-media/my-social-accounts).
Response
200 OK An object with a data array of published posts and their latest metrics.
dataarrayoptionalPublished posts in the date range.
idstring (UUID)optionalPost id.
contentstringoptionalText content of the post.
socialMediaIdstring (UUID)optionalAccount the post was published to.
platformPostIdstringoptionalId of the post on the platform.
publishedAtISO 8601optionalWhen the post was published.
latestMetricobject | nulloptionalLatest fetched metrics, or null until metrics have been fetched.
likesstring (bigint)optionalLikes, e.g. 1234.
commentsstring (bigint)optionalComments.
sharesstring (bigint)optionalShares.
impressionsstring (bigint)optionalImpressions.
reachstring (bigint)optionalReach. May be null on platforms that don't report it (e.g. Pinterest).
totalInteractionsstring (bigint)optionalTotal interactions for the post.
avgWatchTimeSecondsnumberoptionalAverage watch time per view, in seconds (rounded to 2 decimals). Present for video posts on Facebook, Instagram Reels, YouTube, Pinterest, LinkedIn organization Pages, and TikTok. Omitted (not null) when the post has no watch-time data. A plain JSON number, not a bigint string.
totalWatchTimeSecondsnumberoptionalTotal watch time across all views, in seconds (rounded to 2 decimals). Same platform coverage as avgWatchTimeSeconds. Omitted when unavailable. A plain JSON number.
videoViewsnumberoptionalVideo view count, where the platform reports it separately from impressions (Facebook, Pinterest, LinkedIn organization Pages). On Instagram, YouTube, and TikTok the video-view total is already in impressions, so this field is omitted there. Omitted when unavailable. A plain JSON number.
saveRatenumberoptionalInstagram only. Save rate as a percentage (saves / reach), rounded to 2 decimals. Present on Instagram feed posts, reels, and carousels that have metrics. Omitted (not null) on other platforms or before metrics arrive. A plain JSON number.
reelsSkipRatenumberoptionalInstagram Reels only. Percentage of viewers who skipped the reel within the first 3 seconds, as reported by Instagram, rounded to 2 decimals. May be absent on low-view reels or until metrics refresh. The raw reels_skip_rate value also appears in extras. A plain JSON number.
extrasobjectoptionalPlatform-specific metrics not in the standard fields (varies by platform).
fetchedAtISO 8601optionalWhen the metrics were fetched.