Home › Guides › Google Ads Transparency API

Google Ads Transparency API: look up a domain's or brand's Google ads in real time

The Google Ads Transparency API is a real-time HTTP API over Google's public Ads Transparency Center. Send a domain, brand name or advertiser ID to GET /ads and the ads come back in the response: ad text (read from the ad's picture by OCR when Google keeps only a picture), image or preview, Shopping price, YouTube video ID, first and last shown dates, per-country impressions and platforms for the EEA and Turkey, the targeting approach, the topic and the advertiser's legal name. It is the Standby (always-on) edition of the Google Ads Transparency Scraper: same code, same fields, same pricing events.

Who it's for

Call it

Each request carries your Apify API token in the Authorization header. Three example requests:

curl -H "Authorization: Bearer YOUR_APIFY_TOKEN" "https://foxlabs--google-ads-transparency-api.apify.actor/ads?query=nike.com&maxAds=10"

curl -H "Authorization: Bearer YOUR_APIFY_TOKEN" "https://foxlabs--google-ads-transparency-api.apify.actor/ads?query=Decathlon&region=FR&maxAds=5"

curl -H "Authorization: Bearer YOUR_APIFY_TOKEN" "https://foxlabs--google-ads-transparency-api.apify.actor/advertisers?query=hubspot"

Endpoints

GET /ads

ParameterValuesDefault
query (required)Domain (nike.com), brand name (Nike), advertiser ID (AR…) or Transparency Center URL—
regionISO country code (US, DE, TR …) or anywhereanywhere
adFormatall, text, image, videoall
platformall, search, youtube, maps, play, shoppingall
datePresetany, last7, last30, last90, last365, custom (with dateFrom / dateTo as YYYY-MM-DD)any
maxAds1–100 per request40
maxAdvertisersBrand names only: how many of the brand's advertiser entities (1–5)1
includeDetailsRegions, impressions, platforms, targeting, topictrue
includeAdCopyText lines, CTA, display URL, YouTube ID, Shopping title, price and merchanttrue
ocrRead the text of ads Google keeps only as a picture (Latin-script languages)true

The response holds query, count, items — each item has the same fields as a dataset row of the scraper — and a report object (status, ads, totalAdsLow, totalAdsHigh, advertisersMatched, message, note), plus dateNote. report.note says when no advertiser carries the exact brand name and the closest match was used; dateNote says when a fixed period overrode dateFrom / dateTo.

Errors are explicit: HTTP 400 with an error giving the reason (a missing query, an unknown region, format, platform or date preset, a malformed or reversed date, a non-numeric limit), and HTTP 502 when Google cannot be reached or keeps rate-limiting.

GET /advertisers

Advertiser accounts matching a name, closest match first, with ID, country and ad-count range, plus matching domains. region prefers advertisers based in that country. Not billed. An OpenAPI 3 description of both endpoints is attached to the actor.

Measured response times

Requests on the Apify platform on 2026-09-23:

RequestResultTime
/ads?query=nike.com&maxAds=10, first request (cold start)10 ads, all with details10.7 s
/ads?query=Decathlon&region=FR&maxAds=5, warm5 ads, matched Decathlon France SASU5.4 s
/advertisers?query=hubspot3 advertiser accounts + 10 domains1.1 s

OCR adds 0.6–7.5 seconds per picture, depending on how busy the platform's server is, so a request is slower when many of the advertiser's ads are pictures. Set ocr=false when you do not need the text of image-only ads.

API or batch scraper?

You needUse
One query at a time from an app or agent, with the answer in the responseThis API — up to 100 ads per request
Large lists, schedules, new-ad monitoringThe batch scraper — up to 100,000 ads per query, onlyNewAds monitoring

Honest limits

Pricing

Pay per event, the same as the scraper: one ad event for every delivered ad, plus ad-detail when details were returned and ad-copy when text or other copy fields were read, from the preview or by OCR. /advertisers, requests that return no ads and requests refused with HTTP 400 are not charged. Current prices are on the actor's Pricing tab on Apify.

Get an API token, then call /ads: the first ads of a domain come back in seconds, as JSON.

Open the Google Ads Transparency API →

Related

The Google Ads Transparency Scraper guide has the full field list, data-quality measurements and the OCR accuracy review. For LinkedIn's public Ad Library, see the LinkedIn company data guide. All Google datasets are in the Google data section.

Frequently asked questions

How do I authenticate?

Every request needs an Apify API token, sent as a Bearer token in the Authorization header. No Google account or Google API key is involved.

How many ads can one request return?

Between 1 and 100, set with maxAds (default 40). The platform expects the first response within five minutes. For more ads per query, schedules or monitoring, use the batch Google Ads Transparency Scraper.

Is it the same data as the Google Ads Transparency Scraper?

Yes. The API is the Standby (always-on) edition of the scraper: same code, same fields and same pricing events. Each item in the response has the same fields as a dataset row of the scraper.

What does the /advertisers endpoint do?

It lists the advertiser accounts that match a name, closest match first, with ID, country and ad-count range, plus matching domains. A region parameter prefers advertisers based in that country. It is not billed.

What happens with an invalid parameter?

The API answers HTTP 400 with the reason, for example a missing query, an unknown region or format, or a reversed date range. Requests refused with HTTP 400 are not charged. HTTP 502 means Google could not be reached or kept rate-limiting.

Google Ads Transparency API — real-time, pay per event, OpenAPI description included.

Call the API on Apify →