Google Ads Transparency API
Resolve a brand to its advertiser_id, list every ad it is running from Google's own Ads Transparency Center, and open any creative with its size variations and full change history — each a single POST returning structured JSON.
50 free credits on signup. No card, no Google Ads account.
{ "data": { "suggestions": [ { "type": "advertiser", "advertiser_id": "AR16735076323512287233", "advertiser_name": "Nike, Inc.", "region_code": "US", "total_ads_min": 9000, "total_ads_max": 10000, "advertiser_url": "https://adstransparency.google.com/advertiser/AR16735076323512287233?region=US" } ] }, "response_time": 1380, "credits_used": 1, "credits_remaining": 4688}Live call against the real endpoint — 3 free runs, then it's your own key.
What is the Scavio Google Ads Transparency API?
The Scavio Google Ads Transparency API is a REST API that returns data from Google's Ads Transparency Center as structured JSON. You resolve a brand name to an advertiser_id, then send that to one of 2 further POST endpoints with your API key to list every ad that advertiser is running, or to open one creative with its size variations and change history.
- 3
- endpoints, all live in production
- 1
- credit per call, every endpoint
- 1
- endpoint with creative history
Start here, then follow the creative
Resolve the advertiser once; ads and creative history both key on that id.
Find advertiser
POST /api/v1/googleads/advertisersStart here. Turns a brand name into the advertiser_id everything else keys on, and returns a total-ads band so you know the scale before you page.
Creative + history
POST /api/v1/googleads/creativeThe only endpoint carrying creative history — every size variation and how the creative changed over time. That timeline is what reveals a strategy shift.
Advertiser's ads
POST /api/v1/googleads/searchEvery ad one advertiser is currently running, straight from Google's own Ads Transparency Center rather than a third-party reconstruction.
All 3 Ads Transparency endpoints
Every route is a POST, returns JSON, and takes the same API key. 1 credit per successful call.
| Endpoint | Returns | Credits |
|---|---|---|
Find advertiser (start here)/api/v1/googleads/advertisers | A brand NAME to its advertiser_id, region and total-ads band | 1 |
Advertiser's ads/api/v1/googleads/search | Every ad an advertiser is running, from the Transparency Center | 1 |
Creative + history/api/v1/googleads/creative | One creative in full — every size variation and its change history | 1 |
50 free credits on signup covers 50 calls of any kind. See plans
Brand name to their whole ad library
Resolve the advertiser, then list what they are running. The response on the right is a real capture, field names and all.
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Step 1: brand name -> advertiser_id (nothing else works without it)
hits = client.googleads.advertisers(query="Nike", region="US")
aid = hits["data"]["suggestions"][0]["advertiser_id"]
# Step 2: every ad they are running - 1 credit
ads = client.googleads.search(advertiser_id=aid){
"data": {
"suggestions": [
{
"type": "advertiser",
"advertiser_id": "AR16735076323512287233",
"advertiser_name": "Nike, Inc.",
"region_code": "US",
"total_ads_min": 9000,
"total_ads_max": 10000,
"advertiser_url": "https://adstransparency.google.com/advertiser/AR16735076323512287233?region=US"
}
]
},
"response_time": 1380,
"credits_used": 1,
"credits_remaining": 4688
}Why not browse the Transparency Center?
You can, and for one advertiser on one day that is fine. Tracking is a different problem.
Browsing it by hand
- No public API — the Transparency Center is a web UI only
- advertiser_id is buried in a URL rather than searchable programmatically
- Creative history has to be reconstructed from repeated manual visits
- Tracking more than a handful of advertisers does not scale
Scavio Ads Transparency API
- One API key, issued at signup — no Google Ads account
- Brand name resolved to advertiser_id in a documented call
- Creative history and size variations returned as structured data
- Same key and JSON envelope as 30 other Scavio platforms
Scavio returns data Google itself publishes for transparency, and never authenticates as a Google user.
What developers build with it
Competitor ad monitoring
See every ad a rival is running right now, from Google's own disclosure surface. Poll on a schedule and new creatives appear as diffs rather than as something a colleague happened to notice.
advertisers + searchCreative strategy analysis
The creative endpoint carries history — how a creative changed and which size variations exist. A messaging pivot is visible as a timeline rather than inferred from one screenshot.
creativeSpend and scale estimation
The advertiser lookup returns a total-ads band, which is a fast proxy for how heavily a brand is investing before you commit to paging their whole library.
advertisersBrand protection
Find advertisers running ads on your brand terms or using your creative assets, with the advertiser identity Google itself publishes attached.
advertisers + searchAgency pitch research
Walk into a pitch knowing exactly what the prospect and their competitors are running, and for how long, rather than guessing from the public site.
advertisers + search + creativeHow to get Ads Transparency data as JSON
- 1
Get an API key
Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, with no card required and no Google Ads account.
- 2
Resolve the brand to an advertiser_id
Send {"query": "Nike", "region": "US"} to https://api.scavio.dev/api/v1/googleads/advertisers. The advertiser_id it returns exists only inside the Ads Transparency Center, and both other endpoints key on it.
- 3
Then list ads, or open one creative
Each is 1 credit. Search returns every ad for that advertiser; creative returns one ad in full with its size variations and change history — the only endpoint that carries the timeline.
Google Ads Transparency API FAQ
What is the Scavio Google Ads Transparency API?
+
It is a REST API that returns data from Google's Ads Transparency Center as structured JSON. Three POST endpoints cover advertiser lookup by brand name, every ad an advertiser is running, and one creative in full with its size variations and change history. You authenticate with a Scavio API key.
Who are these endpoints for?
+
Competitive intelligence and paid-media teams; agencies researching pitches; brand-protection teams watching for misuse; developers building ad-intelligence tools; AI agent builders wiring the Transparency Center in as an MCP or SDK tool; and analysts tracking category spend. Same API for all of them.
Why do I have to call /advertisers first?
+
Because advertiser_id is Google's internal identifier for a verified advertiser and cannot be derived from a brand name, domain or Ads account. The search and creative endpoints both key on it, so resolving the name is genuinely step one.
What is the Ads Transparency Center?
+
Google's own public disclosure surface, which shows the ads a verified advertiser is running, where and since when. This API reads that surface, so the data is Google's own disclosure rather than a third-party reconstruction of it.
What does creative history give me?
+
The creative endpoint is the only one carrying history: every size variation of an ad and how it changed over time. That timeline is what distinguishes a brand testing a new message from one that has fully repositioned.
How much does a request cost?
+
Every Google Ads Transparency endpoint costs 1 credit, including the advertiser lookup. New accounts get 50 free credits on signup, one time, with no card required. Paid plans start at $30 per month for 7,000 credits.
Do I need a Google Ads account?
+
No. You call the Scavio endpoint with your Scavio API key. There is no Google Ads account, no OAuth and no developer token — this reads the public Transparency Center rather than any account's own campaign data.
What does the response look like?
+
The API wraps the payload under a data key and adds credits_used and credits_remaining. The advertiser lookup returns suggestions with type, advertiser_id, advertiser_name, region_code, a total_ads_min and total_ads_max band, and an advertiser_url.
Why is the ad count a range?
+
Google publishes advertiser scale as a band rather than an exact figure, so the response reports total_ads_min and total_ads_max honestly rather than inventing a precise number that does not exist.
Is using Ads Transparency data legal?
+
Scavio returns data Google itself publishes for transparency purposes, and does not authenticate as a user. You remain responsible for how you use it, including compliance with Google's terms. Talk to your own counsel for your specific use case.
Explore more of Scavio
Meta Ad Library API
Facebook and Instagram ads as JSON.
Google Search API
The full SERP, including top and bottom ads.
Google Shopping API
Products, prices and every seller.
G2 API
B2B software ratings and reviews.
MCP server
Every platform as a callable tool for agents.
Pricing
Credit packs and plans, no per-platform surcharge.
Start pulling competitor ads today
50 free credits on signup, no card. Your first request is a POST with a brand name.