Google Company Ads API
Google publishes spend and impression ranges only for election ads; commercial advertisers omit both.
Google publishes spend and impression ranges only for election ads in regions that require disclosure; commercial advertisers omit both. isActive is derived from lastShown — true when the creative was seen within 7 UTC days. Pass an advertiser name, domain (nike.com), or AR… id from advertiser-search and get public commercial creatives as clean JSON: id, url, adFormat, firstShown/lastShown, advertiser, media[], isActive. A name/domain can match more than one Google AR… entity — ads[] and adsCountEstimate are always the single resolvedAdvertiser; siblings are otherMatches[{id, name}], not mixed into the list. ATC does not publish structured copy: adFormat=text is inferred from the absence of an image/video asset — those rows keep text/headline/cta/landingUrl as null (the parser still runs; inactive creatives are not skipped) — cta is null in practice because Google publishes no call-to-action. Image/video rows omit those keys (copy lives in the asset). advertiser.logo and advertiser.location are null in practice: the Transparency Center publishes neither (the keys stay for the shared ad-library schema). The same omit convention applies to spend/impressions (election-only) and empty country/countries. Supports country/region, start_date/end_date, sort=last_shown|first_shown, cursor pagination, adsCountEstimate. resolution is always keyed: not-in-library | resolved-no-ads | resolved-filtered-out when ads is empty; null when ads exist (null means the list is populated — it is not a leftover). Flat 2 credits when ads are returned; totalReturned=0 is 0 credits (max 200 per page).
Docs: https://captapi.com/apis/google-ad-library-company-ads
Request
- Base URL: https://api.captapi.com
- URL: https://api.captapi.com/v1/ad-library/google/company-ads
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
Advertiser name, domain (e.g. nike.com), or Google advertiser ID (AR…). Prefer AR… from advertiser-search.
Two-letter ISO country / region code (soft filter). Default US. Alias: region. Non-ISO codes are a definitive 400 INVALID_COUNTRY.
Alias for country.
Max items to return (default 20, max 200). Flat 2 credits when results are returned; 0 credits when totalReturned is 0.
Pagination cursor from nextCursor.
YYYY-MM-DD — keep creatives whose shown window overlaps this start.
YYYY-MM-DD — keep creatives whose shown window overlaps this end.
Client-side sort: last_shown (recent activity first) or first_shown. Default is ATC order.
Only "all" is supported (commercial ATC). Google publishes spend and impression ranges only for election ads; commercial advertisers omit both. isActive is true when lastShown is within 7 UTC days.
Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.
Response
Success. The data object for this endpoint.
Changes
No recorded changes to this operation across all 3 revisions of this API.