---
title: "Meta aggregate dashboard payload"
method: GET
path: "/meta-ads/summary"
tags: ["Meta Ads"]
---

# Meta aggregate dashboard payload

`GET /meta-ads/summary`

Everything the portal's Meta dashboard header renders, in one call: the connected Instagram account (with follower / media counts and recent engagement), the Page, the ad account (with its currency and account status), the Business Manager, plus counts of recent own and tagged Instagram media. 

Where `/meta-ads/status` is a database read, this fans out across several Graph edges — so it is served stale-while-revalidate from the same Valkey cache the portal uses (fresh under 5 minutes, usable-but-refreshing under 30, rebuilt inline only when cold), and invalidated immediately by any connection change. Every sub-object is open-schema: new fields can appear without a breaking change, and a sub-fetch that fails comes back as an empty object rather than failing the call. Single shop only.

## Response `200`

Successful Response

- SummaryResponse — One-shot dashboard payload — populates the FE's connected state in a single request without repeatedly polling /status + IG endpoints. Each sub-object is open-schema (extra="allow") so we can add fields without breaking existing FE consumers.
  - `ig` object
  - `page` object
  - `ad_account` object
  - `business` object
  - `recent_own_media_count` integer
  - `recent_tagged_media_count` integer

---

[API](https://skmtc.dev/reacherapp/apis/reacher-data-api.md) · [All operations](https://skmtc.dev/reacherapp/apis/reacher-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/reacherapp/reacher-data-api/revisions/5eefff009b5b/schema)
