Google Company Ads API
List an advertiser's Google Ads Transparency creatives — AR chain, cursor, dates, sort (2 credits).
GET request to /v1/ad-library/google/company-ads that responds with clean JSON and costs 2 credits. Pass cache=true for a free 24h cache hit; default is always fresh. Start with 100 free credits — no credit card.What is the Google Company Ads API?
Pass an advertiser name, domain (nike.com), or AR… id from advertiser-search and get public commercial creatives as clean JSON. Response includes resolvedAdvertiser{id,name,url} (the entity actually queried), stable nulls for text/headline/cta/landingUrl/spend/impressions when ATC withholds them, firstShown/lastShown, adFormat, and media[]. Supports country/region, start_date/end_date, sort=last_shown|first_shown, cursor pagination (nextCursor + hasMore), and adsCountEstimate. Prefer advertiser=AR… from /google/advertiser-search for a deterministic chain. Spend/impressions are usually null for commercial ads (Google only publishes them for political). Flat 2 credits on the native path (max 200 per page).
What you get
- Bulk list of company ads with metadata
- Dates, URLs, and engagement fields when available
- Configurable result limit
- Ideal for monitoring and content pipelines
Try it
Fill in the parameters below and copy a ready-to-run request, or open the live Playground to run it against your account (no API key paste).
Parameters
curl "https://api.captapi.com/v1/ad-library/google/company-ads?advertiser=nike.com" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."Edit the parameters and the code updates instantly. Switch languages and hit copy.
Example response
{
"success": true,
"data": {
"advertiser": "nike.com",
"country": "US",
"totalReturned": 5,
"ads": [
{
"platform": "google_ad_library",
"id": "CR13596485266373083137",
"url": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR13596485266373083137",
"adFormat": "image",
"firstShown": "2022-11-30T14:47:01.000Z",
"lastShown": "2026-07-26T13:01:42.000Z",
"advertiser": {
"id": "AR16735076323512287233",
"name": "Nike, Inc.",
"url": "https://adstransparency.google.com/advertiser/AR16735076323512287233"
},
"media": [
"https://tpc.googlesyndication.com/archive/simgad/1889619096914274581"
]
},
{
"platform": "google_ad_library",
"id": "CR00101170943954518017",
"url": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR00101170943954518017",
"adFormat": "image",
"firstShown": "2022-11-30T18:54:18.000Z",
"lastShown": "2026-07-26T12:53:39.000Z",
"advertiser": {
"id": "AR16735076323512287233",
"name": "Nike, Inc.",
"url": "https://adstransparency.google.com/advertiser/AR16735076323512287233"
},
"media": [
"https://tpc.googlesyndication.com/archive/simgad/3850814477191431652"
]
}
]
}
}Billing metadata is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Source. Failed requests (4xx/5xx) are never charged. See the full list of error codes in the error reference.
Response structure
A successful call returns success, cached, creditsUsed, and a data object with the following fields:
Top-level fields
advertiserAdvertiser running the ad.countryCountry for the request context. On popular-creators top-level: ISO feed market you queried (e.g. US) — not each creator's home country (see region).totalReturnedNumber of items returned in this response.
Ads
Each item in ads contains:
platformPlatform identifier for this response (matches the endpoint's platform).idStable platform ID for the item.urlCanonical URL of the item.adFormatFormat of the ad creative.firstShownWhen the ad was first shown.lastShownWhen the ad was last shown.advertiserAdvertiser running the ad.mediaMedia attached to the item.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| advertiser | string | Yes | Advertiser name, domain (e.g. nike.com), or Google advertiser ID (AR…). Prefer AR… from advertiser-search. |
| country | string | No | Two-letter ISO country / region code (soft filter). Default US. Alias: region. |
| region | string | No | Alias for country. |
| start_date | string | No | YYYY-MM-DD — keep creatives whose shown window overlaps this start. |
| end_date | string | No | YYYY-MM-DD — keep creatives whose shown window overlaps this end. |
| sort | string | No | Client-side sort: last_shown (recent activity first) or first_shown. Default is ATC order. |
| cursor | string | No | Pagination cursor from nextCursor. |
| topic | string | No | Only "all" is supported (commercial ATC). |
| limit | integer | No | Max items to return (default 20, max 200). Flat 2 credits per call. |
| cache | boolean | No | Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits. |
Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs 2 credits. Pass cache=true for a free 24h cache hit; default is always fresh.
google_ad_library_company_ads via @captapi/mcp. Set it up →How it works
- 1. Sign up — get 100 free credits, no card required.
- 2. Create a key from your dashboard.
- 3. Send one request to
/v1/ad-library/google/company-adsand parse the JSON response.
Use cases
Discovery
Surface items matching a topic, tag, sound, or trend query.
Monitoring
Watch a list feed over time for new activity.
Research
Sample structured list results for analysis.
Pipelines
Ingest list results into your own store or CRM.
Frequently asked questions
What does the Google Company Ads API do?+
The Google Company Ads API lets you list items in bulk with metadata from a public Google Ad Library ad using one GET request to /v1/ad-library/google/company-ads. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the Google Company Ads API cost?+
Each successful call costs 2 credits. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.
Do I need a Google Ad Library API key or OAuth?+
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.
Why are text/spend null on Google creatives?+
Keys stay present as null for a stable parser. Google Ads Transparency rarely exposes copy or spend on commercial image creatives (spend/impressions are mostly political). landingUrl is filled when ATC embeds a destination. Use sort=last_shown and start_date/end_date for recent activity; page with nextCursor.
Is the Google Company Ads API suitable for production use?+
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
More Google Ad Library APIs
Ready to use the Google Company Ads API?
Sign up, grab your key, and make your first call in 60 seconds.