{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Brand Monitor — AI Search Visibility in ChatGPT & Perplexity",
    "description": "See how ChatGPT, Perplexity, Gemini and Google AI Overviews cite your brand: citations, share of voice against competitors, and the sources AI answers use. 24 languages. Start with just your domain — no API key.",
    "version": "0.2",
    "x-build-id": "s9RMpIBx3y0azgx64"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/highbrow_fame~ai-search-visibility-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-highbrow_fame-ai-search-visibility-tracker",
        "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/highbrow_fame~ai-search-visibility-tracker/runs": {
      "post": {
        "operationId": "runs-sync-highbrow_fame-ai-search-visibility-tracker",
        "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/highbrow_fame~ai-search-visibility-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-highbrow_fame-ai-search-visibility-tracker",
        "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": {
          "brand": {
            "title": "Your brand domain",
            "type": "string",
            "description": "The only field you need. Pass your domain, e.g. \"example.com\", and this Actor writes a starter set of questions for you and tracks that domain across the keyless engines. Anything you fill in below wins over what this generates — use it once to see real output, then replace the generated questions with the ones your buyers actually ask."
          },
          "queries": {
            "title": "Queries to track",
            "minItems": 1,
            "maxItems": 200,
            "type": "array",
            "description": "List of search queries / prompts you want to monitor. Examples: 'best CRM for small business', 'top dental clinics in Budapest', 'fastest electric SUV 2026'. Each query is run on every selected engine.",
            "items": {
              "type": "string"
            }
          },
          "sampleRun": {
            "title": "Free sample run (no result fees)",
            "type": "boolean",
            "description": "Try the Actor before paying for it. Runs the first 3 queries at 3 samples each on the included engine - enough to compute the stability score, which shows how consistently each source is cited across repeated runs. No citation record is charged: the result fee is zero. The run-start fee still applies, as it does to every run on this platform: $0.0001 per GB, so $0.0004 at the default memory. Turn it off to measure your full question set.",
            "default": false
          },
          "brandDomains": {
            "title": "Your brand domain(s)",
            "minItems": 1,
            "type": "array",
            "description": "Domains you own and want to track. The actor reports whether each engine cites these domains for each query. Use bare hostnames, e.g. 'example.com' (no https://, no www.).",
            "items": {
              "type": "string"
            }
          },
          "competitorDomains": {
            "title": "Competitor domain(s)",
            "type": "array",
            "description": "Optional. Domains of your competitors. The actor reports head-to-head citation share for each query.",
            "items": {
              "type": "string"
            }
          },
          "engines": {
            "title": "Engines to query",
            "uniqueItems": true,
            "type": "array",
            "description": "Which AI engines to query. Perplexity, ChatGPT, Google AI Overview and Gemini all run on our keys and need nothing from you. Perplexity answers in all 24 languages; Google AI Overview is English only. ChatGPT is the expensive one to run, so it gets a smaller included allowance than the rest: 3 calls per run on a free Apify plan, 60 on a paid plan — supply your own openaiApiKey to run it on your own quota with no cap. Claude needs your own key. Each successful citation record bills $0.05.",
            "items": {
              "type": "string",
              "enum": [
                "perplexity-agent",
                "google-aio",
                "gemini",
                "openai",
                "perplexity",
                "anthropic"
              ],
              "enumTitles": [
                "Perplexity (included, no API key, all 24 languages)",
                "Google AI Overview (no API key, English only)",
                "Google Gemini (included, no API key, Google Search grounded)",
                "OpenAI / ChatGPT (your key)",
                "Perplexity Sonar — legacy, retires 2026-09-27 (your key)",
                "Anthropic Claude (your key)"
              ]
            },
            "default": [
              "perplexity-agent"
            ]
          },
          "language": {
            "title": "Query language",
            "enum": [
              "en",
              "de",
              "fr",
              "es",
              "it",
              "pt",
              "nl",
              "hu",
              "pl",
              "cs",
              "sk",
              "ro",
              "bg",
              "hr",
              "tr",
              "ja",
              "ko",
              "zh",
              "ru",
              "uk",
              "sv",
              "no",
              "da",
              "fi"
            ],
            "type": "string",
            "description": "Language of the answers, and which sources get cited — a German query surfaces German sources. Works on the default Perplexity engine and on every key-based engine (Gemini, ChatGPT, Claude). IMPORTANT: the 'Google AI Overview' engine is English-only and returns nothing for other languages, so pick another engine for any language except English.",
            "default": "en"
          },
          "samplesPerQuery": {
            "title": "Samples per query (stability score)",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many times each query is run on each engine. AI answers are non-deterministic — running 3 samples gives a stability score showing how consistently a source is cited. 1 = single shot (cheapest), 3 = recommended, 5 = high-confidence. Queries × samples is capped at 200 per engine; on the default Perplexity engine running on our key, free-plan runs cover 12 calls (for example 4 queries at 3 samples).",
            "default": 1
          },
          "geminiApiKey": {
            "title": "Gemini API key (optional — Gemini already runs on our key)",
            "type": "string",
            "description": "Optional — Gemini already runs on our key with no setup from you. Supply your own key only if you want a larger allowance than the shared pool (25 queries per run), more than one sample per query, or a different model. Get one at https://aistudio.google.com/apikey. Used for the Gemini engine and as the default citation parser."
          },
          "openaiApiKey": {
            "title": "OpenAI API key (optional — ChatGPT already runs on our key)",
            "type": "string",
            "description": "Optional — ChatGPT already runs on our key, with 3 calls per run on a free Apify plan and 60 on a paid plan. Supply your own key only if you want to run ChatGPT on more queries than that, on your own quota and your own bill. Get one at https://platform.openai.com/api-keys. Uses the gpt-4o-mini-search-preview model, ~$0.025 per query on your key."
          },
          "perplexityApiKey": {
            "title": "Perplexity API key",
            "type": "string",
            "description": "Optional. Get one at https://www.perplexity.ai/settings/api. Used for Perplexity engine via the 'sonar' model. ~$0.005-0.015 per query."
          },
          "anthropicApiKey": {
            "title": "Anthropic API key",
            "type": "string",
            "description": "Optional. Get one at https://console.anthropic.com/. Used for Claude engine with the web_search tool. ~$0.01 per search + tokens."
          },
          "geminiModel": {
            "title": "Gemini model override",
            "type": "string",
            "description": "Optional. Default: gemini-2.5-flash (free tier). Try gemini-2.5-flash-lite for higher daily quota, or gemini-2.5-pro / gemini-3-flash-preview if you have billing enabled."
          },
          "openaiModel": {
            "title": "OpenAI model override",
            "type": "string",
            "description": "Optional. Default: gpt-4o-mini-search-preview."
          },
          "perplexityModel": {
            "title": "Perplexity model override",
            "type": "string",
            "description": "Optional. Default: sonar. Try sonar-pro for richer citations."
          },
          "anthropicModel": {
            "title": "Anthropic model override",
            "type": "string",
            "description": "Optional. Default: claude-haiku-4-5-20251001."
          },
          "previousRunDatasetId": {
            "title": "Delta mode — diff vs a previous run",
            "type": "string",
            "description": "Optional. Provide a dataset ID from a previous run. The actor will compute citation gains/losses week-over-week and surface the diff. Perfect for daily/weekly scheduled tracking."
          },
          "maxConcurrency": {
            "title": "Max concurrent requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many engine requests to run in parallel. Lower if you hit rate limits on the free Gemini tier (10 req/min on Gemini 2.5 Flash free).",
            "default": 4
          },
          "serpCountry": {
            "title": "SERP country (Google AI Overview only)",
            "type": "string",
            "description": "Two-letter country code Google should answer as, e.g. us, de, hu. Only affects the Google AI Overview engine. AI Overviews differ by country as much as by language, so set this to the market you actually sell in.",
            "default": "us"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}