---
title: "Summarize analytics for a period"
method: GET
path: "/analytics/summary"
tags: ["Analytics"]
---

# Summarize analytics for a period

`GET /analytics/summary`

## Request

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

Requires `posts:read`. Totals are growth within the period, next to the
same-length period before it. Numbers appear about 24 hours after a
post goes live and refresh daily. Platforms report different metrics,
so a zero can mean a metric is not reported.

## Query parameters

- `range` '7d' | '14d' | '30d' | '90d' | '6mo' | '9mo' | '12mo' | '24mo' | 'this_month' | 'last_month' | 'this_year' | 'last_year'
- `social_account_id` string, uuid

## Response `200`

Analytics summary.

- AnalyticsSummary
  - `range` '7d' | '14d' | '30d' | '90d' | '6mo' | '9mo' | '12mo' | '24mo' | 'this_month' | 'last_month' | 'this_year' | 'last_year', required
  - `period` object, required
    - `start` string, date, required
    - `end` string, date, required
  - `timezone` string, required
  - `history_days` integer, required
  - `last_synced_at` string, date-time, nullable, required
  - `totals` object, required
    - `impressions` AnalyticsTotal, required
      - `value` integer, required
      - `previous` integer, required
    - `reach` AnalyticsTotal, required
      - `value` integer, required
      - `previous` integer, required
    - `views` AnalyticsTotal, required
      - `value` integer, required
      - `previous` integer, required
    - `engagements` AnalyticsTotal, required
      - `value` integer, required
      - `previous` integer, required
    - `likes` AnalyticsTotal, required
      - `value` integer, required
      - `previous` integer, required
    - `comments` AnalyticsTotal, required
      - `value` integer, required
      - `previous` integer, required
    - `shares` AnalyticsTotal, required
      - `value` integer, required
      - `previous` integer, required
    - `follows` AnalyticsTotal, required
      - `value` integer, required
      - `previous` integer, required
  - `daily` object[], required
    - `date` string, date, required
    - `views` integer, required
    - `reach` integer, required
    - `likes` integer, required
    - `engagements` integer, required
    - `follows` integer, required
  - `content_performance` object[], required
    - `format` 'video' | 'text' | 'image' | 'carousel' | 'reel' | 'story', required
    - `posts` integer, required
    - `engagements` integer, required
    - `average_engagements` integer, required
  - `top_posts` object[], required
    - `id` string, uuid, required
    - `social_account_id` string, uuid, required
    - `platform` 'instagram' | 'facebook' | 'x' | 'youtube' | 'tiktok' | 'pinterest' | 'linkedin' | 'threads' | 'bluesky' | 'mastodon', required
    - `caption` string, required
    - `platform_url` string, uri, nullable, required
    - `content_format` 'video' | 'text' | 'image' | 'carousel' | 'reel' | 'story', required
    - `posted_at` string, date-time, nullable, required
    - `engagements` integer, required

## 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)
