{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Ads Transparency Scraper – Competitor Ads Monitor",
    "description": "Google Ads Transparency Center scraper to spy on competitors' Search, YouTube and Display ads. New and stopped ads each run, ad copy, images, videos, landing pages, how long each ad runs, history and HTML report.",
    "version": "1.0",
    "x-build-id": "KHw1NTR5RcMfpMytG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kirozhang~google-ads-competitor-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kirozhang-google-ads-competitor-monitor",
        "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/kirozhang~google-ads-competitor-monitor/runs": {
      "post": {
        "operationId": "runs-sync-kirozhang-google-ads-competitor-monitor",
        "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/kirozhang~google-ads-competitor-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-kirozhang-google-ads-competitor-monitor",
        "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",
        "required": [
          "competitors"
        ],
        "properties": {
          "competitors": {
            "title": "Competitors",
            "type": "array",
            "description": "Required. One competitor per line: an advertiser name (Pipedrive), an advertiser ID or Ads Transparency URL (AR08924170183925301249), or a website domain (pipedrive.com).",
            "items": {
              "type": "string"
            }
          },
          "region": {
            "title": "Region",
            "enum": [
              "anywhere",
              "us",
              "gb",
              "ca",
              "au",
              "ie",
              "nz",
              "in",
              "de",
              "at",
              "ch",
              "fr",
              "be",
              "nl",
              "es",
              "it",
              "pt",
              "se",
              "dk",
              "no",
              "fi",
              "pl",
              "br",
              "mx",
              "ar",
              "jp",
              "kr",
              "sg",
              "ae",
              "sa",
              "za",
              "ph",
              "id",
              "tr"
            ],
            "type": "string",
            "description": "Where the ads were shown.",
            "default": "us"
          },
          "lookbackDays": {
            "title": "Ads shown in the last (days)",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Only ads shown within this window are tracked.",
            "default": 30
          },
          "formats": {
            "title": "Ad formats",
            "type": "array",
            "description": "Leave empty for all formats.",
            "items": {
              "type": "string",
              "enum": [
                "text",
                "image",
                "video"
              ],
              "enumTitles": [
                "Text (Search)",
                "Image",
                "Video"
              ]
            }
          },
          "platform": {
            "title": "Google platform",
            "enum": [
              "all",
              "search",
              "youtube",
              "display",
              "shopping",
              "maps",
              "play"
            ],
            "type": "string",
            "description": "Optional filter.",
            "default": "all"
          },
          "outputMode": {
            "title": "What to save",
            "enum": [
              "new",
              "all"
            ],
            "type": "string",
            "description": "'New ads only' is ideal for scheduled monitoring: each run saves only ads you haven't received yet (the first run saves the current ads as a baseline).",
            "default": "new"
          },
          "maxAdsPerCompetitor": {
            "title": "Max ads per competitor",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Cap on ads saved per competitor in one run. Each saved ad is one 'ad' charge.",
            "default": 300
          },
          "fetchAdCopy": {
            "title": "Extract ad copy",
            "type": "boolean",
            "description": "Headlines, descriptions, call to action, display & landing URL and YouTube video for each saved ad.",
            "default": true
          },
          "trackingId": {
            "title": "Tracking name",
            "type": "string",
            "description": "Stable name for this competitor set, e.g. 'crm-competitors-us'. Runs with the same name share history (new and stopped ads). Defaults to the competitor list."
          },
          "slackWebhookUrl": {
            "title": "Slack webhook URL",
            "type": "string",
            "description": "Optional. A Slack <a href=\"https://api.slack.com/messaging/webhooks\" target=\"_blank\">Incoming Webhook</a> URL (https://hooks.slack.com/services/…). After a run you get one summary message in that channel. Stored encrypted."
          },
          "webhookUrl": {
            "title": "Webhook URL (JSON)",
            "type": "string",
            "description": "Optional. Any https endpoint (Make, Zapier, n8n, a Microsoft Teams workflow or your own server). Receives one JSON POST per run with counts, items and the report link. Stored encrypted."
          },
          "notifyOn": {
            "title": "Send a notification when",
            "enum": [
              "alerts",
              "always"
            ],
            "type": "string",
            "description": "When the Slack / webhook message is sent.",
            "default": "alerts"
          },
          "publicReport": {
            "title": "Shareable report link",
            "type": "boolean",
            "description": "Off by default. When on, the HTML report with 7- and 30-day trends is kept at one fixed link per Tracking name (shown in OUTPUT.reportUrl and in notifications) – send it to a client or your team. Anyone with the link can open it.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}