---
title: "Get post analytics"
method: GET
path: "/v1/posts/{id}/analytics"
tags: ["Analytics"]
---

# Get post analytics

`GET /v1/posts/{id}/analytics`

## Request

- Base URL: `https://api.postlake.dev`
- URL: `https://api.postlake.dev/v1/posts/{id}/analytics`
- Auth: `bearerAuth` (a scheme the document does not define)

Live per-post analytics by destination. measuredAt says when the read completed. targets[].reports identifies metrics the network exposes; targets[].metrics is null when insights are unavailable, not zero.

## Path parameters

- `id` string, required

## Response `200`

Success

- object
  - `postId` string, required
  - `createdAt` string, date-time, required
  - `measuredAt` string, date-time, required: When PostLake completed this live metrics read.
  - `totals` Metrics, required: Numeric counters retain compatibility. Optional reported lists fields actually returned by this observation, including measured zero. Missing reported means legacy availability is unknown. Do not interpret an omitted field as measured zero.
    - `reported` string[]: Counters actually returned in this reading. An empty array means none. Omitted for legacy evidence with unknown field coverage.
    - `impressions` integer, required: Times the content was DISPLAYED.
    - `views` integer: Times it was actually WATCHED or opened. A subset of impressions, not a synonym, and networks that report only one of the two leave the other at 0 rather than filing a watch as a display.
    - `reach` integer, required
    - `likes` integer, required
    - `comments` integer, required
    - `shares` integer, required
    - `saves` integer, required
    - `clicks` integer, required
    - `followers` integer, required
    - `extras` object: Metrics this network reports that have no cross-platform equivalent, keyed by the network's OWN metric name. Pinterest returns a video retention curve (VIDEO_START, VIDEO_10S_VIEW, QUARTILE_95_PERCENT_VIEW) plus PROFILE_VISIT and USER_FOLLOW; Facebook returns its own video and Page numbers. Keys are native and are never normalised, so it is always clear which network a figure came from and what it means there. Rates and averages are deliberately excluded: they cannot be summed across posts, and every one of them is derivable from the counts. Absent when the network reports nothing extra.
  - `targets` object[], required
    - `account` string, required
    - `platform` 'bluesky' | 'threads' | 'x' | 'linkedin' | 'instagram' | 'tiktok' | 'facebook' | 'youtube' | 'pinterest', required
    - `handle` string, nullable, required
    - `remoteId` string, nullable, required
    - `url` string, nullable, required
    - `reports` string[], required: Metric names this network reports. An unreported metric must not be displayed as zero.
    - `metrics` Metrics, required: Numeric counters retain compatibility. Optional reported lists fields actually returned by this observation, including measured zero. Missing reported means legacy availability is unknown. Do not interpret an omitted field as measured zero.
      - `reported` string[]: Counters actually returned in this reading. An empty array means none. Omitted for legacy evidence with unknown field coverage.
      - `impressions` integer, required: Times the content was DISPLAYED.
      - `views` integer: Times it was actually WATCHED or opened. A subset of impressions, not a synonym, and networks that report only one of the two leave the other at 0 rather than filing a watch as a display.
      - `reach` integer, required
      - `likes` integer, required
      - `comments` integer, required
      - `shares` integer, required
      - `saves` integer, required
      - `clicks` integer, required
      - `followers` integer, required
      - `extras` object: Metrics this network reports that have no cross-platform equivalent, keyed by the network's OWN metric name. Pinterest returns a video retention curve (VIDEO_START, VIDEO_10S_VIEW, QUARTILE_95_PERCENT_VIEW) plus PROFILE_VISIT and USER_FOLLOW; Facebook returns its own video and Page numbers. Keys are native and are never normalised, so it is always clear which network a figure came from and what it means there. Rates and averages are deliberately excluded: they cannot be summed across posts, and every one of them is derivable from the counts. Absent when the network reports nothing extra.

## Other responses

- `401`: Unauthorized
- `404`: Post not found

---

[API](https://skmtc.dev/postlake/apis/postlake-api.md) · [All operations](https://skmtc.dev/postlake/apis/postlake-api/llms.txt) · [OpenAPI document](https://skmtc.dev/postlake/apis/postlake-api/revisions/f81060e31f69?raw)
