{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Ads Transparency & Winner Scraper Pro",
    "description": "Extract competitor Google Ads from Google Ads Transparency Center by Domain, Brand Name, or Advertiser ID (AR...). Decodes hidden text headlines, descriptions, landing domains, YouTube/MP4 video URLs, and longevity winner tiers without a headless browser.",
    "version": "1.1",
    "x-build-id": "at5ussEqc1Ijwdonu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/voxatools~google-ads-transparency-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-voxatools-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/voxatools~google-ads-transparency-scraper/runs": {
      "post": {
        "operationId": "runs-sync-voxatools-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/voxatools~google-ads-transparency-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-voxatools-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": {
          "resultType": {
            "title": "1. Output Mode (Ad Creatives vs. B2B Lead-Gen Advertiser Check)",
            "enum": [
              "ads",
              "advertisers"
            ],
            "type": "string",
            "description": "Choose 'ads' to extract full ad creatives + decoded headlines + Winner Tiers ($1.50/1k all-inclusive), or choose 'advertisers' for B2B Lead-Gen Ad-Check mode to quickly verify if a list of domains is running Google Ads ($2.50/1k advertisers).",
            "default": "ads"
          },
          "queries": {
            "title": "2. Competitor Domains, Brand Names, Advertiser IDs, or Transparency URLs",
            "type": "array",
            "description": "Enter competitor website domains (e.g., 'shopify.com', 'hubspot.com'), brand names (e.g., 'Nike'), Google Advertiser IDs (e.g., 'AR01625195283841286145'), or full adstransparency.google.com URLs.",
            "default": [
              "shopify.com",
              "hubspot.com",
              "canva.com"
            ],
            "items": {
              "type": "string"
            }
          },
          "urlsFromFile": {
            "title": "3. Bulk Import from CSV / TXT URL or Google Sheet Link (Optional)",
            "type": "string",
            "description": "Paste a public Google Sheet link, a URL to a .csv / .txt file, or a comma/newline-separated list of domains to merge with 'queries'."
          },
          "region": {
            "title": "4. Target Country / Region",
            "enum": [
              "ALL",
              "US",
              "GB",
              "CA",
              "AU",
              "DE",
              "FR",
              "NL",
              "ES",
              "IT",
              "PL",
              "SE",
              "CH",
              "SG",
              "VN",
              "JP",
              "KR",
              "IN",
              "BR",
              "MX",
              "AE",
              "ZA"
            ],
            "type": "string",
            "description": "Filter ads shown in a specific country (ISO-2 code like US, GB, DE, FR, VN, SG, AU, CA, JP) or select 'ALL' for global ads.",
            "default": "US"
          },
          "adFormat": {
            "title": "5. Ad Creative Format",
            "enum": [
              "ALL",
              "TEXT",
              "IMAGE",
              "VIDEO"
            ],
            "type": "string",
            "description": "Filter by ad creative format: All formats, Text Search Ads, Image Display Ads, or Video/YouTube Ads.",
            "default": "ALL"
          },
          "platforms": {
            "title": "6. Google Surface Platforms Filter (Optional)",
            "type": "array",
            "description": "Filter ads by specific Google properties where the ad was served: SEARCH, YOUTUBE, SHOPPING, MAPS, or PLAY. Leave empty for all properties.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startDate": {
            "title": "7. Start Date Filter (YYYY-MM-DD, Optional)",
            "type": "string",
            "description": "Only return ads active on or after this date (e.g. '2026-01-01')."
          },
          "endDate": {
            "title": "8. End Date Filter (YYYY-MM-DD, Optional)",
            "type": "string",
            "description": "Only return ads active on or before this date (e.g. '2026-12-31')."
          },
          "maxAdsPerQuery": {
            "title": "9. Max Ads per Query / Domain",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of ad creatives to extract per domain/advertiser query.",
            "default": 20
          },
          "onlyLongRunningWinners": {
            "title": "10. 🏆 Only Long-Running 'Winning Ads' (30+ Days Active)",
            "type": "boolean",
            "description": "Exclusive Winner Filter: Skip short-lived test ads and only output proven, profitable ads running for at least 30 days (or minDaysActive).",
            "default": false
          },
          "minDaysActive": {
            "title": "11. Minimum Active Days Filter (e.g. 30, 60, or 90 Days)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return ads that have been actively running for at least this many days (0 = return all; 90 = Evergreen Winners only).",
            "default": 0
          },
          "deduplicateVisualClones": {
            "title": "12. 📈 Smart Ad-Group Clone Deduplication & Scaling Signal (Zero Double-Charging)",
            "type": "boolean",
            "description": "When enabled (recommended), automatically merges identical creatives duplicated across multiple Ad Groups so you only pay ONCE per unique ad, while outputting 'adGroupScaleCount', 'clonedAdGroupIds', and 'clonedCreativeIds' to show which ads your competitor is aggressively scaling!",
            "default": true
          },
          "includeDetails": {
            "title": "13. Deep EU Reach, Impressions & A/B Variations Add-On (+$2.50 / 1,000 ads)",
            "type": "boolean",
            "description": "Note: Ad Headlines, Descriptions, Video URLs & Winner Tiers are ALREADY included FREE in the base tier! Enable this only if you also need per-creative GetCreativeById lookups for all A/B variations, EU transparency impression ranges, and audience targeting signals.",
            "default": false
          },
          "onlyNewAds": {
            "title": "14. 📡 Scheduled Radar: Only Output Newly Launched Ads",
            "type": "boolean",
            "description": "When enabled on scheduled daily/weekly runs, remembers previously extracted creativeIds in a named Key-Value Store and only outputs brand-new competitor ads!",
            "default": false
          },
          "monitorStoreName": {
            "title": "15. Monitor Key-Value Store Name",
            "type": "string",
            "description": "Named Key-Value Store used to persist seen creativeIds across scheduled runs when 'onlyNewAds' is enabled.",
            "default": "ads-transparency-monitor"
          },
          "proxyConfiguration": {
            "title": "16. Proxy Configuration (Optional — $0 Direct RPC Works by Default)",
            "type": "object",
            "description": "Our Zero-Browser Protobuf RPC engine runs at $0 proxy cost for standard runs (<60 pages). Only enable Datacenter/Residential proxy if scraping 50,000+ ads in bulk."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}