{
  "openapi": "3.0.1",
  "info": {
    "title": "Google AI Overview Brand Monitor",
    "description": "Check any keyword list for Google AI Overviews — plus Google AI Mode and Brave AI — and see whether YOUR brand gets cited, or your competitors. Full answers, all citations, share of voice, gap keywords, cross-engine comparison, change alerts. Built for GEO/AEO reporting and scheduling.",
    "version": "1.0",
    "x-build-id": "g4z6KaEL6zzPNWqIl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/leohryndev~google-ai-overview-brand-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-leohryndev-google-ai-overview-brand-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/leohryndev~google-ai-overview-brand-monitor/runs": {
      "post": {
        "operationId": "runs-sync-leohryndev-google-ai-overview-brand-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/leohryndev~google-ai-overview-brand-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-leohryndev-google-ai-overview-brand-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": [
          "queries"
        ],
        "properties": {
          "queries": {
            "title": "Keywords / queries",
            "minItems": 1,
            "type": "array",
            "description": "Search queries to check for AI Overviews (one per line). Example: your money keywords, category terms, comparison queries your buyers search.",
            "items": {
              "type": "string"
            }
          },
          "brandDomains": {
            "title": "Your brand domain(s)",
            "type": "array",
            "description": "Domains that count as YOUR brand when they appear in AI Overview citations, e.g. `yourbrand.com`. Subdomains match automatically.",
            "items": {
              "type": "string"
            }
          },
          "brandNames": {
            "title": "Your brand name(s)",
            "type": "array",
            "description": "Optional brand names to detect as plain-text mentions inside the AI Overview answer (case-insensitive), e.g. `HubSpot`.",
            "items": {
              "type": "string"
            }
          },
          "competitorDomains": {
            "title": "Competitor domain(s)",
            "type": "array",
            "description": "Competitor domains to track in citations, e.g. `salesforce.com`, `zoho.com`.",
            "items": {
              "type": "string"
            }
          },
          "competitorNames": {
            "title": "Competitor name(s)",
            "type": "array",
            "description": "Optional competitor names to detect as plain-text mentions inside the AI Overview answer.",
            "items": {
              "type": "string"
            }
          },
          "countryCode": {
            "title": "Country",
            "pattern": "^[a-zA-Z]{2}$",
            "type": "string",
            "description": "Google country (gl parameter + proxy country). Two-letter code, e.g. `us`, `gb`, `de`, `es`, `fr`.",
            "default": "us"
          },
          "languageCode": {
            "title": "Language",
            "type": "string",
            "description": "Google UI language (hl parameter), e.g. `en`, `de`, `es`, `fr`, `pt-BR`.",
            "default": "en"
          },
          "includeAiMode": {
            "title": "Also check Google AI Mode",
            "type": "boolean",
            "description": "Additionally analyze Google's AI Mode (the conversational search tab) for each keyword: full answer, comparison tables, all cited sources, and brand/competitor visibility. Counts as a second analyzed query per keyword.",
            "default": false
          },
          "includeBrave": {
            "title": "Also check Brave AI answers",
            "type": "boolean",
            "description": "Additionally analyze Brave Search's 'Answer with AI' for each keyword — a second search engine with its own AI answer and a different citation set. Counts as one more analyzed query per keyword. Adds cross-engine comparison to every row.",
            "default": false
          },
          "trackChanges": {
            "title": "Track changes vs previous run",
            "type": "boolean",
            "description": "Remember each run's results and report what changed since last time: brand citations GAINED/LOST per keyword, AI Overviews appearing/disappearing, new competitor citations. Ideal for scheduled monitoring — free, no extra charge.",
            "default": false
          },
          "trackingKey": {
            "title": "Tracking key",
            "type": "string",
            "description": "Namespace for change tracking. Use a different key per client/keyword set.",
            "default": "default"
          },
          "includeOrganicResults": {
            "title": "Include top organic results",
            "type": "boolean",
            "description": "Also extract the top classic organic results for each query, so you can compare AI visibility vs organic rankings (spot keywords where you rank #1 organically but are invisible in the AI answer).",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many queries to process in parallel.",
            "default": 3
          },
          "browserFallback": {
            "title": "Browser verification for missing AI Overviews",
            "type": "boolean",
            "description": "When the fast HTTP tier finds no AI Overview for a query, verify with a real browser (AI Overviews sometimes render only client-side). More accurate, slightly slower. Disable for maximum speed/cheapness.",
            "default": true
          },
          "includeScreenshot": {
            "title": "Capture AI Overview screenshot (proof of citation)",
            "type": "boolean",
            "description": "Save a PNG screenshot of the AI Overview box whenever one is found, and add its URL to the row (`screenshotUrl`). Useful as visual proof for client reports. Forces the browser tier for every query with an AI Overview (not just uncertain ones), so it uses more browser time than the default HTTP-first flow.",
            "default": false
          },
          "debugSaveHtml": {
            "title": "Save raw HTML (debug)",
            "type": "boolean",
            "description": "Store fetched SERP HTML into the key-value store for troubleshooting.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy for the browser tier. Residential proxies in the target country are strongly recommended (default).",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}