---
title: "List post analytics"
method: GET
path: "/analytics"
tags: ["Analytics"]
---

# List post analytics

`GET /analytics`

## Request

- Base URL: `https://api.post-quest.com/v1`
- URL: `https://api.post-quest.com/v1/analytics`
- Auth: HTTP bearer

Requires `posts:read`. Lifetime metrics per published post on connected
accounts, including posts made outside PostQuest, limited to the plan's
analytics history.

## Query parameters

- `platform` 'instagram' | 'facebook' | 'x' | 'youtube' | 'tiktok' | 'pinterest' | 'linkedin' | 'threads' | 'bluesky' | 'mastodon'
- `social_account_id` string, uuid
- `post_id` string, uuid
- `range` '7d' | '14d' | '30d' | '90d' | '6mo' | '9mo' | '12mo' | '24mo' | 'this_month' | 'last_month' | 'this_year' | 'last_year'
- `sort` 'posted_at' | 'engagements' | 'views' | 'impressions' | 'likes'
- `limit` integer
- `offset` integer

## Response `200`

Offset-paginated post analytics.

- PostAnalyticsListResponse
  - `data` PostAnalytics[], required
    - `id` string, uuid, required
    - `social_account_id` string, uuid, required
    - `post_id` string, uuid, nullable, required: The PostQuest post, when it was published through PostQuest.
    - `platform` 'instagram' | 'facebook' | 'x' | 'youtube' | 'tiktok' | 'pinterest' | 'linkedin' | 'threads' | 'bluesky' | 'mastodon', required
    - `platform_post_id` string, required
    - `platform_url` string, uri, nullable, required
    - `caption` string, nullable, required
    - `thumbnail_url` string, uri, nullable, required
    - `content_format` 'video' | 'text' | 'image' | 'carousel' | 'reel' | 'story', required
    - `posted_at` string, date-time, nullable, required
    - `metrics` AnalyticsMetrics, required: Zero can mean the platform does not report that metric. `engagements` is likes, comments, shares and saves combined.
      - `impressions` integer, required
      - `reach` integer, required
      - `views` integer, required
      - `likes` integer, required
      - `comments` integer, required
      - `shares` integer, required
      - `saves` integer, required
      - `follows` integer, required
      - `engagements` integer, required
    - `last_synced_at` string, date-time, nullable, required
  - `meta` PaginationMeta, required
    - `total` integer, required
    - `limit` integer, required
    - `offset` integer, required
    - `timezone` string

## Other responses

- `400`: Malformed request, invalid idempotency key, or credential in the query string.
- `401`: Missing, invalid, expired, revoked, or unbound API key.
- `402`: The workspace does not have effective paid REST access.
- `403`: The key lacks an ability, onboarding is incomplete, or publish-now is disabled.
- `404`: The resource does not exist or belongs to another workspace.
- `422`: Request fields, platform capability, media, schedule, or quota validation failed.
- `429`: The per-key global or media-specific request limit was exceeded.
- `500`: Unexpected server failure. Internal details are never exposed.

---

[API](https://skmtc.dev/post-quest/apis/postquest-public-api.md) · [All operations](https://skmtc.dev/post-quest/apis/postquest-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/post-quest/apis/postquest-public-api/revisions/089d3c362f35?raw)
