---
title: "Get performance profile for a connected account"
method: GET
path: "/api/v1/accounts/{id}/performance-profile"
tags: ["Analytics"]
---

# Get performance profile for a connected account

`GET /api/v1/accounts/{id}/performance-profile`

## Request

- Base URL: `https://www.poster.ly`
- URL: `https://www.poster.ly/api/v1/accounts/{id}/performance-profile`
- Auth: HTTP bearer

Returns the read-only account performance profile derived from the last 90 days of per-post analytics (stats, coaching bullets, narrative, derived_at), or performance_profile: null with a reason (insufficient_data when the account has no derived profile yet, platform_not_measurable for platforms without per-post analytics such as Google Business Profile). Requires a Pro plan or higher; lower tiers get 403 feature_not_available.

## Path parameters

- `id` string, required

## Response `200`

Performance profile fetched successfully

- object
  - `performance_profile` object, nullable
    - `social_account_id` integer
    - `platform` string
    - `username` string, nullable
    - `sample_size` integer
    - `window_days` integer
    - `engagement_rate_avg` number, nullable
    - `engagement_rate_trend` 'up' | 'down' | 'flat' | 'unknown'
    - `bullets` string[]
    - `narrative_summary` string, nullable
    - `stats` object
    - `derived_at` string, nullable
  - `reason` 'insufficient_data' | 'feature_not_available' | 'platform_not_measurable', nullable

## Other responses

- `401`: Invalid or missing API key
- `403`: Request is authenticated but not allowed
- `404`: Resource not found
- `429`: Too many requests

---

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