Insights
The Insights API follows the OpenAI Ads API’s reporting routes and response envelope.
Endpoints
Section titled “Endpoints”Use the endpoint matching the scope you want to query:
| Endpoint | Scope |
|---|---|
GET /ad_account/insights | Current ad account |
GET /campaigns/{campaign_id}/insights | One campaign |
GET /ad_groups/{ad_group_id}/insights | One ad group |
GET /ads/{ad_id}/insights | One ad |
Query parameters
Section titled “Query parameters”All parameters are optional. The preview accepts the OpenAI-style parameter names now so integrations can keep the same request shape as reporting is enabled.
| Parameter | Type | Default | Description |
|---|---|---|---|
time_granularity | string | daily | hourly, daily, monthly, or none. |
aggregation_level | string | — | ad_account, campaign, ad_group, or ad. |
time_ranges[] | string[] | — | JSON-encoded time ranges. |
fields[] | string[] | — | Fields to include in each result row. |
filters[] | string[] | — | JSON-encoded filters. |
sort[] | string[] | — | JSON-encoded sort definitions. |
segments[] | string[] | — | Additional reporting breakdowns. |
override_segment_group_order[] | string[] | — | Segment grouping order. |
includes[] | string[] | — | Additional zero-result rows to include. |
limit | integer | 20 | From 1 to 2000. |
before | string | — | Previous-page cursor. |
after | string | — | Next-page cursor. Do not combine with before. |
curl -G "https://api.withgrowl.com/v1/adm/ad_account/insights" \ -H "Authorization: Bearer $ELO_ADS_API_KEY" \ --data-urlencode 'time_granularity=daily' \ --data-urlencode 'aggregation_level=campaign' \ --data-urlencode 'fields[]=campaign.id' \ --data-urlencode 'fields[]=campaign.clicks'Response
Section titled “Response”Every Insights endpoint returns the same top-level list envelope. During the
preview, data is empty and count is 0.
{ "object": "list", "data": [], "count": 0, "first_id": null, "last_id": null, "has_more": false}