Reports
POST /api/v1/accounts/{projectId}/gaql
Run a read-only GAQL query against the live Google Ads API.
POST /api/v1/accounts/{projectId}/gaqlRun a read-only GAQL query against the live Google Ads API.
Read-only: one SELECT statement, no mutation keywords outside string literals. Row count is governed by limit and offset — any LIMIT in the query is rewritten — and truncated: true means re-call with a higher offset. Known enums come back as labels and *_micros fields in account currency. Metered on the expensive bucket (10/min), since it spends the account's Google Ads quota.
Requires a key with read scope or higher.
Returns 200 on success.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
projectId | path | string | yes | The Google Ads account, as returned by GET /api/v1/accounts. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
query | string | yes | |
purpose | string | yes | |
limit | number | no | Default: 100. |
offset | number | no | Rows to skip (client-side page window over the first 1000 rows). Default: 0. |
Example
curl -X POST "https://bidandscale.com/api/v1/accounts/{projectId}/gaql" \
-H "Authorization: Bearer $BIDANDSCALE_API_KEY" \
-H "Content-Type: application/json" \
-d '{ … }'