Our own visit statistics are always on. Google Analytics, which helps us understand how people use our public pages (not your signed-in workspace), is enabled only with your permission. See our Privacy policy.

POST

API health

24h health
Normal
24h average time
—
  • Healthy / normal
  • Available
  • Limited
  • Mostly down
Normal

List up to 100 ads a company has run on Google, from the Google Ads Transparency Center, by advertiser domain or advertiser ID. Each row has ad ID, format (text, image or video), first and last shown time, preview image and the ad's Transparency Center link. Filter by country, format, surface and first-shown dates. Spend and impressions are not included.

Price $0.68 per 1,000 requests ($0.000681 per call). Failed calls and empty results are not charged. Synchronous. For slow jobs add "mode": "async" to the body, take the job_id and poll.

AI prompt

Please help me write a data collection script with the EveryInfra Google Ads Transparency Center Ads endpoint (google_ads_transparency/ads).

How the endpoint works:
- Request: POST https://api.everyinfra.com/api/v1/social with the header Authorization: Bearer <API key>. Read the key from the EVERYINFRA_API_KEY environment variable and never hard-code it.
- In the request body, set platform to google_ads_transparency and action to ads, and put the parameters inside params.
- Required parameters:
  - advertiser: Whose ads to list: a domain such as nike.com, or an advertiser ID starting with AR such as AR01614014350098432001. A Transparency Center advertiser link also works.
- Optional parameters:
  - country: A two-letter country code such as us or gb to keep only ads shown in that country. Leave it out for all regions.
  - end_date: Keep only ads first shown on or before this date, YYYY-MM-DD; not before start_date.
  - format: Keep only one ad format: text, image or video. (allowed: image / text / video)
  - start_date: Keep only ads first shown on or after this date, YYYY-MM-DD.
  - surface: Keep only ads shown on one Google product: search, youtube, play, maps or shopping.
  - limit: The most rows to return in this call, an integer from 1 to 100. The default applies when you leave it out, and a call can return fewer rows. Larger values return 422 before any charge. (default: 100)
- Returns a list of records. Main fields of each record: rank, ad_id (Ad creative ID in the Google Ads Transp…), advertiser_id (Advertiser ID (starts with AR)), advertiser_name (The advertiser's verified name, which m…), domain, format (Ad format: text, image or video), first_shown_at (When the ad was first shown, UTC, ISO 8…), last_shown_at (When the ad was last shown, UTC, ISO 86…), image_url (Preview image of the creative archived…), url (The ad's page in the Google Ads Transpa…), advertiser_ads_estimate (The Transparency Center's estimate of h…).
- Example request body:
{
  "platform": "google_ads_transparency",
  "action": "ads",
  "params": {
    "advertiser": "lululemon.com"
  }
}
- Price: $0.68 per 1,000 requests; failed and empty results are not charged.
- For dozens or hundreds of targets, add "mode": "async" to the body: you get a job_id at once and poll GET https://api.everyinfra.com/api/v1/jobs/{job_id} for the result.
- On 422, fix the request using the suggested parameter names and allowed values in the error; on 429 or 503, wait for Retry-After and try again.

Before writing code, ask me which targets I need, how many, which fields, and what output format I want; then confirm the plan and the rough cost with me.

Request parameters

NameInTypeRequiredDefaultDescription
AuthorizationheaderstringYes-Bearer followed by your API key. Create it in the console; never put it in a URL or a code repository.
platformbodystringYesgoogle_ads_transparencyPlatform identifier, fixed value.
actionbodystringYesadsCapability identifier, fixed value.
advertiserbody.paramsstringYes-Whose ads to list: a domain such as nike.com, or an advertiser ID starting with AR such as AR01614014350098432001. A Transparency Center advertiser link also works.
countrybody.paramsstringNo-A two-letter country code such as us or gb to keep only ads shown in that country. Leave it out for all regions.
end_datebody.paramsdateNo-Keep only ads first shown on or before this date, YYYY-MM-DD; not before start_date.
formatbody.paramsstring (enum)No-Keep only one ad format: text, image or video.Allowed valuesimagetextvideo
start_datebody.paramsdateNo-Keep only ads first shown on or after this date, YYYY-MM-DD.
surfacebody.paramsstringNo-Keep only ads shown on one Google product: search, youtube, play, maps or shopping.
limitbody.paramsinteger (1–100)No100The most rows to return in this call, an integer from 1 to 100. The default applies when you leave it out, and a call can return fewer rows. Larger values return 422 before any charge.

Code samples

bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "google_ads_transparency",
  "action": "ads",
  "params": {
    "advertiser": "lululemon.com"
  }
}'

OpenAPI definition (JSON)Samples read the key from the EVERYINFRA_API_KEY environment variable; copied code never contains your key.

Response example

Field preview

No sample response is available for these parameters yet. This preview shows the response shape and fields from the API definition, with … as placeholders; it is not the result of a live call.

json
{
  "id": "req_…",
  "platform": "google_ads_transparency",
  "action": "ads",
  "results": [
    {
      "rank": …,
      "ad_id": …,
      "advertiser_id": …,
      "advertiser_name": …,
      "domain": …,
      "format": …,
      "first_shown_at": …,
      "last_shown_at": …,
      "image_url": …,
      "url": …,
      "advertiser_ads_estimate": …,
      "platform": …
    }
  ],
  "count": …,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Response fields

Business data is in results. The table lists the fields a record can contain; values the platform does not show are never made up.

FieldMeaning
rankKeeps the platform's own meaning
ad_idAd creative ID in the Google Ads Transparency Center (starts with CR).
advertiser_idAdvertiser ID (starts with AR); pass it as advertiser to list that advertiser's ads.
advertiser_nameThe advertiser's verified name, which may be a subsidiary or agency.
domainKeeps the platform's own meaning
formatAd format: text, image or video.
first_shown_atWhen the ad was first shown, UTC, ISO 8601.
last_shown_atWhen the ad was last shown, UTC, ISO 8601.
image_urlPreview image of the creative archived by Google; missing on some text ads.
urlThe ad's page in the Google Ads Transparency Center.
advertiser_ads_estimateThe Transparency Center's estimate of how many ads the advertiser has for the chosen filters, the same on every row.
platformSource platform identifier, the same as platform in the request (for example xiaohongshu, tiktok).

Errors and billing

401
Missing or invalid key.
402
Insufficient balance. Top up first.
422
Invalid parameter name or value. Fix it using the suggestions in the error. No charge.
429
Per-minute request limit reached. Wait for Retry-After, then try again.
503
Could not complete. The held charge is returned to your balance. If the outcome is unknown, verify it before you retry.
200 empty
No data. No charge.

Errors

Official references

Used only to check objects and terms. They do not imply authorization or endorsement of EveryInfra by the platform.

  • My Ad Center Help: Advertiser Verification and the Ads Transparency Center ↗

    Google's help page says advertisers must verify their identity with legal documentation, and that the Ads Transparency Center lets you search by advertiser name or website and filter by serving region and date. The source supports searching by domain or advertiser and filtering by country and dates; this API's parameters are defined by EveryInfra, and the source does not vouch for results.

    Checked 2026-11-01