You can see which ads a company runs on Google by sending its domain, or its advertiser_id, to one REST endpoint and getting its public ads from the Ads Transparency Center as JSON. A second endpoint finds advertisers by name, and a third returns the details of one ad by URL. There is no Google Ads account or developer token involved, and each successful call is billed on its own.
| Endpoint | What it returns | Credits/call | USD/call (Freelance plan) |
|---|---|---|---|
/v1/google/ad | Ad Details | 1 | $0.0017 |
/v1/google/ads_advertisers_search | Advertiser Search | 1 | $0.0017 |
/v1/google/company_ads | Company Ads | 1 | $0.0017 |
/v1/google/adAd Details 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | yes | The url of the ad |
cache_max_age | string | no | If we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). |
Sample response (trimmed):
{
"advertiser_id": "AR07541154843046445057",
"creative_id": "CR17778900238552006657",
"first_shown": "2026-06-05T21:52:15.000Z",
"url": "https://adstransparency.google.com/advertiser/AR07541154843046445057/creative/CR17778900238552006657",
"last_shown": "2026-06-24T19:04:54.000Z",
"format": "image",
"overall_impressions": {
"min": "500000",
"max": "600000"
},
"spend": {
"currency": "USD",
"lower": "5000",
"upper": "6000"
},
"targeting": {
"age": {
"included": [
"25-34"
],
"excluded": [
"18-24"
]
},
"gender": {
"included": [
"female"
],
"excluded": []
},
"location": {
"included": [
{
"criterion_id": "2840",
"name": "United States",
"full_name": "United States",
"country_codes": [
"US"
]
}
],
"excluded": [
{
"criterion_id": "2578",
"name": "Norway",
"full_name": "Norway",
"country_codes": [
"NO"
]
}
]
}
},
"creative_regions": [
{
"region_code": "US",
"region_name": "United States"
}
],
"region_stats": [
{
"region_code": "US",
"region_name": "United States",
"first_shown": "2026-06-05T00:00:00.000Z",
"last_shown": "2026-06-24T00:00:00.000Z",
"impressions": {
"lower": "500000",
"upper": "600000"
},
"platform_impressions": []
}
],
"variations": [
{
"destination_url": "shop.gop/v1/google/ads_advertisers_searchAdvertiser Search 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | yes | The query to search for |
region | string | no | 2-letter country code to search in. Defaults to US when omitted. |
/v1/google/company_adsCompany Ads 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | no | The domain of the company |
advertiser_id | string | no | The advertiser id of the company |
topic | string | no | The topic to search for. If you search for 'political', you will also need to pass a 'region', like 'US' or 'AU' |
region | string | no | The region to search for. Defaults to anywhere |
start_date | string | no | Start date to search for. Format: YYYY-MM-DD |
end_date | string | no | End date to search for. Format: YYYY-MM-DD |
platform | string | no | Platform to search for. |
format | string | no | Ad format to search for. |
get_ad_details | string | no | Set to true to get the ad details. Will cost 25 credits. |
next_cursor | string | no | Cursor to paginate through results |
curl -H "X-Scapi-Key: $SCAPI_KEY" "https://api.scrapall.bipsport.com/scapi/v1/google/ad"import os, requests
r = requests.get("https://api.scrapall.bipsport.com/scapi/v1/google/ad",
headers={"X-Scapi-Key": os.environ["SCAPI_KEY"]})
print(r.json())Call the company ads endpoint with the website domain of the competitor, or with its advertiser_id, and your API key in the header. The JSON response lists the public ads of that advertiser from the Ads Transparency Center.
Use the advertiser search endpoint with the company or brand name. It returns the matching advertisers, so you can pass the right advertiser_id to the company ads endpoint.
Yes. The ad details endpoint takes the public URL of one ad from the Ads Transparency Center and returns its details as JSON.
No. Only public data from the Ads Transparency Center is read. You only need a Scrapall API key in the request header.
Each successful call is billed from your credit balance. The exact cost per endpoint is shown in the cost table on this page and comes from the live price list.
Open the Buy page, pick the Freelance plan and pay in USDT on TRC20 or ERC20. The key is shown once, right after the payment is confirmed on-chain.
The cost table on this page lists credits per call for each endpoint. The Freelance plan is $45 for 27,000 credits per 30 days.
Full reference: all google endpoints.