CLIENT API / V1 GOOGLE ADS

List Ads entity catalog

GET/sites/{site_id}/google-ads/accounts/{account_id}/entities/{entity_type}google-ads:read

Requires google-ads:read. Stored reads only: no source=live, refresh, GAQL, provider account overrides, jobs, or credit charges. Explicit site grants and current campaign assignments constrain reports. Shared account collection coverage never grants other-site metrics.

RequestGET https://satelliteai.io/api/v1/sites/{site_id}/google-ads/accounts/{account_id}/entities/{entity_type}
Permissiongoogle-ads:read
ResponseA list (cursor or offset paginated): data is array of GoogleAdsEntity.
Operation IDlistGoogleAdsEntities

More context and worked examples are in the developer guide.

Example request

cURL · Bash
curl --fail-with-body \
  'https://satelliteai.io/api/v1/sites/123/google-ads/accounts/12/entities/ad-groups' \
  -H "Authorization: Bearer $SATELLITE_API_KEY"

Replace the example IDs with values returned by the discovery endpoints. Example values are placeholders, not real records.

Parameters

NameInTypeDescription
site_idrequiredpathintegerID from GET /sites.
min 1
account_idrequiredpathintegerSatellite account ID from /google-ads/accounts; not the Google customer ID.
min 1 · max 2147483647 · example 12
entity_typerequiredpathstring
one of: ad-groups, ads, asset-groups, keywords · example ad-groups
limitqueryinteger
default 50 · min 1 · max 100
offsetqueryintegerBounded offset; next_offset is null at the cap. Mutable stored data is not an atomic pagination snapshot.
default 0 · min 0 · max 100000
campaign_idquerystringAssigned Google campaign ID, signed 64-bit positive decimal string. Inaccessible campaign returns 404.
pattern ^[0-9]{1,19}$
include_removedquerystringInclude historical removed catalog records. Historical reports remain readable.
one of: true, false · default false

Unknown or repeated query parameters return 400.

Data dictionary

Stored site-assigned results. No provider refresh or credit debit. Entity fields depend on entity_type; only the applicable catalog fields are returned. Provider identifiers are decimal strings.

[] marks an array element. nullable means the value can be null; treat it as unknown, not zero. always present means the key is always included in the object.

Fields in data
FieldTypeDescription
data[].site_idintegernullablealways presentSatellite site ID (from GET /sites).
data[].account_idintegernullablealways present
data[].campaign_idstringnullablealways presentDecimal string preserving full Google identifier or micros precision.
max length 4096 · pattern ^[0-9]+$
data[].ad_group_idstringnullableDecimal string preserving full Google identifier or micros precision.
max length 4096 · pattern ^[0-9]+$
data[].namestringnullable
max length 4096
data[].statusstringnullablealways present
max length 4096
data[].typestringnullable
max length 4096
data[].cpc_bid_microsstringnullableDecimal string preserving full Google identifier or micros precision.
max length 4096 · pattern ^[0-9]+$
data[].target_cpa_microsstringnullableDecimal string preserving full Google identifier or micros precision.
max length 4096 · pattern ^[0-9]+$
data[].target_roasnumbernullable
data[].first_seen_atstring (date-time)nullablealways present
max length 4096
data[].last_seen_atstring (date-time)nullablealways present
max length 4096
data[].removed_atstring (date-time)nullablealways present
max length 4096
data[].ad_idstringnullableDecimal string preserving full Google identifier or micros precision.
max length 4096 · pattern ^[0-9]+$
data[].asset_group_idstringnullableDecimal string preserving full Google identifier or micros precision.
max length 4096 · pattern ^[0-9]+$
data[].criterion_idstringnullableDecimal string preserving full Google identifier or micros precision.
max length 4096 · pattern ^[0-9]+$
data[].keyword_textstringnullable
max length 4096
data[].match_typestringnullable
max length 4096
data[].negativebooleannullable
data[].quality_scoreintegernullable
data[].creative_qualitystringnullable
max length 4096
data[].post_click_qualitystringnullable
max length 4096
data[].search_predicted_ctrstringnullable
max length 4096
data[].first_page_cpc_microsstringnullableDecimal string preserving full Google identifier or micros precision.
max length 4096 · pattern ^[0-9]+$
data[].top_of_page_cpc_microsstringnullableDecimal string preserving full Google identifier or micros precision.
max length 4096 · pattern ^[0-9]+$
data[].first_position_cpc_microsstringnullableDecimal string preserving full Google identifier or micros precision.
max length 4096 · pattern ^[0-9]+$

Response metadata

Fields in meta
FieldTypeDescription
meta.request_idstringalways presentRequest identifier; also returned in X-Request-ID. Include it in support requests.
meta.api_versionstringalways presentAPI version that produced the response.
one of: v1
meta.limitintegerMaximum records per page applied to this request.
min 1 · max 100
meta.has_morebooleanTrue when another page is available.
meta.next_cursorstringnullableOpaque cursor for the next page; send as cursor. Null on the last page.
meta.availabilitystringavailable when stored data exists; not_available when it does not.
one of: available, not_available
meta.sourcestringalways present
one of: stored · max length 4096
meta.access_scopestring
one of: site · max length 4096
meta.connection_statusstring
max length 128
meta.offsetinteger
min 0 · max 100000
meta.next_offsetintegernullable
min 0 · max 100000
meta.offset_limit_reachedboolean

Error responses

Errors return {"error": {"code", "message", "request_id"}}. See error handling for retry guidance.

HTTPWhen
400Unknown/repeated query, invalid filter or dates. summary rejects limit/offset; variant filters are only accepted by their corresponding report.
401Missing, invalid, expired, or revoked credential.
403Required explicit scope, active integration, or company API access unavailable.
404Missing or inaccessible site, account, campaign, report, entity type, or dataset.
409google_ads_timezone_unavailable: stored account time zone needs correction.
413Response too large.
429Request allowance exceeded; honor Retry-After.
503Stored reporting or authentication temporarily unavailable.