---
title: "Meta Ads insights"
method: POST
path: "/api/v1/data/meta_insights"
---

# Meta Ads insights

`POST /api/v1/data/meta_insights`

## Request

- Base URL: `https://app.attache.studio`
- URL: `https://app.attache.studio/api/v1/data/meta_insights`
- Auth: HTTP bearer

Meta Ads insights at account/campaign/adset/ad level (spend, impressions, clicks, ROAS…).

## Request body

- object
  - `ad_account_id` string, required: act_<id>, from list_sources
  - `level` 'account' | 'campaign' | 'adset' | 'ad'
  - `fields` string[]
  - `date_preset` string: e.g. last_7d, last_30d, this_month
  - `time_range` object
    - `since` string, required
    - `until` string, required
  - `breakdowns` string[]
  - `limit` integer

## Response `200`

Raw result of the underlying Google / Meta API, as JSON.

## Other responses

- `400`: { "error": string } — bad parameters or resource not shared.
- `401`: Missing, unknown or revoked key.
- `403`: Called from a browser — call from your backend.
- `429`: Rate limit: 60 requests per minute per key.

---

[API](https://skmtc.dev/attache/apis/attache-data-api.md) · [All operations](https://skmtc.dev/attache/apis/attache-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/attache/apis/attache-data-api/revisions/83d5d32a3fea?raw)
