---
title: "Get post stats"
method: GET
path: "/api/businesses/{business_id}/posts/{post_id}/stats"
tags: ["posts"]
---

# Get post stats

`GET /api/businesses/{business_id}/posts/{post_id}/stats`

## Request

- Base URL: `https://api.mymarky.ai`
- URL: `https://api.mymarky.ai/api/businesses/{business_id}/posts/{post_id}/stats`
- Auth: HTTP bearer

Fetch per-platform analytics for a post published through Marky.

Returns one entry per platform the post was successfully published to,
with metrics fetched live from each provider. Stats are normalized into a
consistent shape (`likes`, `comment_count`, `reach`, `views`, etc.) across
Facebook, Instagram, LinkedIn, Twitter, TikTok, Pinterest, and YouTube.
Platforms we can't fetch (no success result, disconnected integration,
expired token) appear in `skipped`.

Errors:
    401 authentication_required: API key or token is missing, invalid, or revoked.
    403 permission_denied: Your plan does not include API access, or this business is not in your org.
    404 resource_not_found: No post with that ID exists, or it is not in this business.
    429 rate_limit_exceeded: You sent too many requests this minute.

## Path parameters

- `business_id` string, required: A UUID identifier.
- `post_id` string, required: A UUID identifier.

## Headers

- `Marky-Version` '2026-04-08' | '2026-07-17' | '2026-08-02' | '2026-08-04' | '2026-08-06'

## Response `200`

Successful Response

- SrcRoutesApiV1PostStatsResponse
  - `post_id` string, required: Marky post ID
  - `platforms` PlatformPostStats[]: Per-platform stats
    - `platform` string, required: Platform identifier
    - `external_post_id` string, required: Provider's post ID
    - `stats` PostStats, required: Statistics for a single post.
      - `fetched_at` string, date-time
      - `likes` integer, nullable
      - `comment_count` integer, nullable
      - `impressions` integer, nullable
      - `shares` integer, nullable
      - `reach` integer, nullable
      - `saves` integer, nullable
      - `clicks` integer, nullable
      - `views` integer, nullable
      - `video_duration_ms` integer, nullable
      - `avg_watch_time_ms` integer, nullable
      - `total_watch_time_ms` integer, nullable
      - `completion_rate` number, nullable
      - `video_views_organic` integer, nullable
      - `video_views_paid` integer, nullable
  - `skipped` PlatformPostStatsError[]: Platforms we could not fetch stats for (no success, expired token, etc.)
    - `platform` string, required
    - `error` string, required: Why stats could not be fetched for this platform

## Other responses

- `400`: Bad request — the input was malformed or otherwise invalid.
- `401`: Authentication failed — the API key is missing or invalid.
- `403`: Forbidden — the key is valid but may not access this resource.
- `404`: Not found — no resource matches the id in the path.
- `422`: Validation error — one or more fields failed validation.
- `429`: Rate limited — retry after the window resets (see Retry-After).
- `500`: Server error — something failed on our side; retry or quote X-Request-Id.

---

[API](https://skmtc.dev/mymarky/apis/marky-public-api.md) · [All operations](https://skmtc.dev/mymarky/apis/marky-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mymarky/apis/marky-public-api/revisions/25aeacae455c?raw)
