---
title: "Google Ads report (GAQL)"
method: POST
path: "/api/v1/data/gads_run_report"
---

# Google Ads report (GAQL)

`POST /api/v1/data/gads_run_report`

## Request

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

Run a read-only Google Ads GAQL report (SELECT … FROM campaign/ad_group/…). Costs are in micros: divide cost_micros by 1e6.

## Request body

- object
  - `customer_id` string, required: Google Ads customer id (digits, dashes ok), from list_sources
  - `query` string, required: GAQL SELECT query
  - `login_customer_id` string: MCC id if the account is accessed through a manager

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