{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Ads Transparency Scraper – Ad Copy, Countries & Reach",
    "description": "Scrape the Google Ads Transparency Center: every ad a competitor runs on Search, YouTube, Shopping, Maps & Play with headline, text, landing page, images, countries, EU impressions, audience & political spend. No login, no start fee.",
    "version": "0.1",
    "x-build-id": "T6ApSbUm0SGWGQGjr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/smoldesk~google-ads-transparency-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-smoldesk-google-ads-transparency-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/smoldesk~google-ads-transparency-scraper/runs": {
      "post": {
        "operationId": "runs-sync-smoldesk-google-ads-transparency-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/smoldesk~google-ads-transparency-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-smoldesk-google-ads-transparency-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "domains": {
            "title": "Domains",
            "type": "array",
            "description": "Websites whose ads you want, e.g. nike.com or booking.com. Google returns every advertiser that sends traffic to the domain (the brand itself plus resellers and affiliates).",
            "items": {
              "type": "string"
            }
          },
          "advertisers": {
            "title": "Advertisers",
            "type": "array",
            "description": "Advertiser names (e.g. Shopify), advertiser IDs (AR…) or advertiser page URLs. Google lists advertisers under their legal names, so a name is matched to the biggest account carrying it (Shopify → Shopify Inc.); when no big account has that name (e.g. Temu, Canva), the Actor uses the brand's domain instead and says so in the log. IDs and URLs are used exactly.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Ads Transparency Center URLs",
            "type": "array",
            "description": "Paste any adstransparency.google.com URL: an advertiser page, a domain search, a single ad page, or the political-ads page. Filters in the URL (region, format, platform, dates) are kept.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "politicalAdsOnly": {
            "title": "Political ads only",
            "type": "boolean",
            "description": "Only election ads (from verified election advertisers), with impression and spend ranges. With no domain or advertiser it lists the latest political ads in the chosen countries (US if none).",
            "default": false
          },
          "regions": {
            "title": "Countries",
            "type": "array",
            "description": "Where the ads were shown: 2-letter country codes like US, GB, DE, MY (or English names). Empty = anywhere. Several countries = ads shown in any of them.",
            "items": {
              "type": "string"
            }
          },
          "adFormat": {
            "title": "Ad format",
            "enum": [
              "ALL",
              "TEXT",
              "IMAGE",
              "VIDEO"
            ],
            "type": "string",
            "description": "Text = Search-style ads, Image = display and Shopping ads, Video = YouTube ads.",
            "default": "ALL"
          },
          "platform": {
            "title": "Google platform",
            "enum": [
              "ALL",
              "SEARCH",
              "YOUTUBE",
              "SHOPPING",
              "MAPS",
              "PLAY"
            ],
            "type": "string",
            "description": "Only ads shown on this Google product.",
            "default": "ALL"
          },
          "startDate": {
            "title": "Shown on or after",
            "type": "string",
            "description": "Only ads shown on or after this date: YYYY-MM-DD, today, yesterday or -30 (30 days ago). The Center keeps ads from about 2020."
          },
          "endDate": {
            "title": "Shown on or before",
            "type": "string",
            "description": "Only ads shown on or before this date (same formats)."
          },
          "maxAdsPerSearch": {
            "title": "Max ads per domain / advertiser",
            "minimum": 0,
            "type": "integer",
            "description": "Stop each domain, advertiser or URL after this many ads (newest first). 0 = all. Big brands run tens of thousands of ads.",
            "default": 100
          },
          "maxAds": {
            "title": "Max ads in total",
            "minimum": 0,
            "type": "integer",
            "description": "Stop the whole run after this many ads. 0 = no limit (the maximum cost per run still applies).",
            "default": 0
          },
          "includeAdContent": {
            "title": "Ad copy (headline, text, landing page)",
            "type": "boolean",
            "description": "Read each ad's preview for its headline, description, call to action, landing page, image URLs, YouTube video and product title. Included in the ad price. Turn off for the fastest list of ad IDs and dates.",
            "default": true
          },
          "includeDetails": {
            "title": "Full details (countries, impressions, audience, all variations)",
            "type": "boolean",
            "description": "Extra paid event per ad: every country the ad ran in with first/last shown dates, impression ranges per country and per Google platform (EU and political ads), audience selection (demographics, locations, contextual, customer lists, interests), Google's topic label, the advertiser's legal name and country, and up to 5 ad variations with their copy. Single-ad URLs always include details.",
            "default": false
          },
          "allAdvertiserMatches": {
            "title": "All advertisers with that name",
            "type": "boolean",
            "description": "Big brands often have one advertiser account per country (e.g. several 'Booking.com'). On = scrape every account with that exact name; off = only the best match.",
            "default": false
          },
          "onlyNewAds": {
            "title": "Only new ads (monitoring)",
            "type": "boolean",
            "description": "Skip ads already returned by an earlier run of this exact search (same domain/advertiser and filters). Schedule the Actor daily or weekly to get just the new creatives. You pay only for new ads.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed — the Actor uses the run's own IP and switches to Apify datacenter proxies by itself if Google rate-limits it.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}