{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Ads Transparency Center Advertiser Ads Scraper",
    "description": "Pulls every publicly listed ad creative for a Google advertiser (by domain or name) from the Ads Transparency Center: format, first/last shown dates, regions shown, preview URL and ad text when Google exposes it. No login needed.",
    "version": "0.1",
    "x-build-id": "kxEqvGywo1ds1kbeQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/bareezh_codes~google-ads-transparency-advertiser-ads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-bareezh_codes-google-ads-transparency-advertiser-ads",
        "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/bareezh_codes~google-ads-transparency-advertiser-ads/runs": {
      "post": {
        "operationId": "runs-sync-bareezh_codes-google-ads-transparency-advertiser-ads",
        "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/bareezh_codes~google-ads-transparency-advertiser-ads/run-sync": {
      "post": {
        "operationId": "run-sync-bareezh_codes-google-ads-transparency-advertiser-ads",
        "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": {
          "advertiserDomains": {
            "title": "Advertiser domains",
            "maxItems": 50,
            "type": "array",
            "description": "Website domains to look up (e.g. \"nike.com\"). Every advertiser account Google has linked to that domain is scraped. Leave empty if you use advertiser names instead. Up to 50 domains per run (extras beyond 50, and exact duplicates, are dropped).",
            "items": {
              "type": "string"
            },
            "default": [
              "nike.com"
            ]
          },
          "advertiserNames": {
            "title": "Advertiser names",
            "maxItems": 50,
            "type": "array",
            "description": "Advertiser names to look up (e.g. \"Nike, Inc.\"). The best-matching advertiser from Google's own search suggestions is used. Prefer advertiser domains when you know them — names can match the wrong company when several advertisers share a similar name. Up to 50 names per run (extras beyond 50, and exact duplicates, are dropped).",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "region": {
            "title": "Region",
            "type": "string",
            "description": "Two-letter country code (e.g. \"US\", \"GB\", \"IN\") to only return ads that ran in that country. Leave empty for worldwide (\"anywhere\").",
            "default": ""
          },
          "dateFrom": {
            "title": "Last shown from",
            "type": "string",
            "description": "Only include ads last shown on or after this date (YYYY-MM-DD). Leave empty for no lower bound."
          },
          "dateTo": {
            "title": "Last shown to",
            "type": "string",
            "description": "Only include ads last shown on or before this date (YYYY-MM-DD). Leave empty for no upper bound."
          },
          "formats": {
            "title": "Ad formats",
            "type": "array",
            "description": "Only include ads of these formats. Leave empty to include all formats. Format detection is best-effort: Google does not publish its internal format codes, so a small share of image/video creatives can be mislabeled — the raw formatCode field is always included so you can verify.",
            "items": {
              "type": "string",
              "enum": [
                "TEXT",
                "IMAGE",
                "VIDEO"
              ]
            },
            "default": []
          },
          "maxItemsPerAdvertiser": {
            "title": "Max ads per advertiser",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Stop after this many ads for each domain/name in the input (each list can have up to 50 domains/names). Google's Ads Transparency Center pages 40 ads per request, so with 'Fetch exact region breakdown per ad' off this is roughly 1 request per 40 ads per advertiser (a few seconds). With it on, expect roughly 1 extra request per ad at this actor's ~1 request/second pace, e.g. around 100 seconds for 100 ads for one advertiser.",
            "default": 20
          },
          "fetchRegions": {
            "title": "Fetch exact region breakdown per ad",
            "type": "boolean",
            "description": "When on, fetches each ad's full list of countries it has run in as a separate request per ad, paced at roughly 1/second — this roughly doubles the number of requests and adds about 1 second per ad to the run time versus leaving it off. When off (default), 'regions' is just the Region filter above if you set one, or empty for a worldwide search. Turn this on only when you specifically need the per-country breakdown.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}