Google Ads Transparency Creatives Search API
Search by brand, advertiser name or domain and get that advertiser's ads, filtered by country, format and Search or YouTube.
Sendquery
Returns12214133
Get the ads any brand runs on Google from the Ads Transparency Center, as JSON. Search by brand or domain, list an advertiser's ads, and filter by country, format and Search or YouTube.
| # | Advertiser | Ad ID | Advertiser ID | Format | 13 |
|---|---|---|---|---|---|
| 1 | Amazon | CR07630612285903339521 | AR12815412684405080065 | 2 | 42 |
| 2 | Amazon | CR16881709607964114945 | AR12815412684405080065 | 2 | 42 |
| 3 | Amazon | CR09727671231141904385 | AR12815412684405080065 | 2 | 42 |
| 4 | Amazon | CR00083634841593053185 | AR12815412684405080065 | 2 | 42 |
| 5 | Amazon | CR08198910263882153985 | AR12815412684405080065 | 2 | 42 |
| # | Advertiser | Advertiser ID | Region | Verified | Ads (min) | Ads (max) |
|---|---|---|---|---|---|---|
| 1 | Nike | AR06641858037806006273 | KE | true | 1 | 1 |
| 2 | nikey | AR13536189912721653761 | BG | 9 | 9 | |
| 3 | Nikena | AR00337221161131704321 | BG | 27 | 27 | |
| 4 | Nikesh | AR16743829861998526465 | IN | 3 | 3 | |
| 5 | NIKE SRL | AR17365672681860497409 | IT | 8 | 8 | |
| 6 | Nike Srl | AR03550664066492006401 | IT | 1 | 1 | |
| 7 | Jan Nikel | AR12473664696462868481 | CZ | 10 | 10 | |
| 8 | Nike, Inc. | AR16735076323512287233 | US | 9000 | 10,000 | |
| 9 | nikethan g | AR03405126230628892673 | IN | 19 | 19 | |
| 10 | Nike Klara | AR17567291692413878273 | US | 11 | 11 |
| # | Advertiser | Ad ID | Format | 1 | 13 |
|---|---|---|---|---|---|
| 1 | Amazon | CR07630612285903339521 | 2 | AR12815412684405080065 | 42 |
| 2 | Amazon | CR16881709607964114945 | 2 | AR12815412684405080065 | 42 |
| 3 | Amazon | CR09727671231141904385 | 2 | AR12815412684405080065 | 42 |
| 4 | Amazon | CR00083634841593053185 | 2 | AR12815412684405080065 | 42 |
| 5 | Amazon | CR08198910263882153985 | 2 | AR12815412684405080065 | 42 |
What each one takes and what it returns. Open one for a real response, every input and every field.
Search by brand, advertiser name or domain and get that advertiser's ads, filtered by country, format and Search or YouTube.
Sendquery
Returns12214133
Find an advertiser's Google advertiser ID from its name or domain, with its region, verification status and how many ads it runs.
Sendquery
Returnsnameadvertiser_idregionverifiedad_count_minad_count_max
List every ad of one advertiser by its advertiser ID, page by page, with the same filters.
Sendadvertiser_id
Returns12241133
Returns one Google creative's public detail for an advertiser and creative id pair: every ad variation and the regions and dates Google reports.
Sendadvertiser_idandcreative_id
Returns35
See which ads a rival runs on Google Search, YouTube and display, and how many it runs in each country.
Creatives searchAdvertiser creativesFind every advertiser account using your brand name and check which ones are verified.
Advertisers searchCreatives searchCollect the ads of the leaders in your market by format to see what they test.
Creatives searchAdvertiser creativesCheck an advertiser's ads on a schedule and spot new campaigns as they start.
Advertiser creativesAdvertisers searchOne request shape for every Google Ads Transparency endpoint: the endpoint ID and its input. No SDK needed.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "google-adstransparency.creative.search", "input": { "limit": 5, "query": "amazon" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "google-adstransparency.creative.search", "input": { "limit": 5, "query": "amazon" }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "google-adstransparency.creative.search", "input": { "limit": 5, "query": "amazon" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
{ "total_items": 5, "items": [ { "1": "AR12815412684405080065", "12": "Amazon", "13": 42, "2": "CR07630612285903339521", "4": 2, "3": { "3": { "2": "<img src=\"https://tpc.googlesyndication.com/archive/simgad/10876653414320579573\" height=\"100\" width=\"320\">" } }, "6": { "1": "1787719647", "2": 733817000 }, "7": { "1": "1791218116", "2": 651585000 } }, { "1": "AR12815412684405080065", "12": "Amazon", "13": 42, "2": "CR16881709607964114945", "4": 2, "3": { "3": { "2": "<img src=\"https://tpc.googlesyndication.com/archive/simgad/8012570873104701430\" height=\"50\" width=\"320\">" } }, "6": { "1": "1787725706", "2": 740476000 }, "7": { "1": "1791213203", "2": 962574000 } } ]}
https://data.upscrape.com/mcp
Using Upscrape, find the ads Amazon runs on Google in the Ads Transparency Center and list the first five with their ad IDs and formats.
With Upscrape, look up every Google advertiser account named Nike, with its region, whether it is verified and how many ads it runs.
Use Upscrape to list the Google ads of advertiser AR12815412684405080065, five at a time.
The short answers. The docs have the long ones.
The Ads Transparency Center has no public API for looking up an advertiser's ads. Upscrape reads its public pages and returns advertisers and ads as JSON.
Creatives search, advertisers search, advertiser creatives and creative detail. Each is its own endpoint with a published input schema, and the response is JSON.
Every Google Ads Transparency endpoint costs 1 credit per successful call. You buy credits once, with no subscription, and paid credits never expire. New accounts get free credits to try it.
No. Upscrape reads the pages Google Ads Transparency shows to any visitor, so you send the input the endpoint asks for and get the data back. Nothing runs on your account, and you share no password or cookie.
Yes. Connect any MCP client to the Upscrape MCP server with OAuth or an API key. The agent finds the Google Ads Transparency endpoint, checks its price and runs it with the same credits as the REST API.
Upscrape reads public pages only and needs no login. How you use the data is yours to decide under the laws that apply to you; we sign a data processing agreement for your legal review.
We fix the endpoint. Your request and the response fields stay the same.
Up to 100 free credits to start, no card needed.