{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Brand Monitor & Visibility — Perplexity, Gemini, ChatGPT",
    "description": "A single AI answer is not repeatable: ask again and the sources change. This tool asks repeatedly and scores how stable each cited source is. No key needed for Perplexity (24 languages), Google AI Overviews (English) and Gemini; ChatGPT and Claude use yours.",
    "version": "0.2",
    "x-build-id": "jOYLdR8l2EL7ToIKV"
  },
  "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",
        "required": [
          "queries",
          "brandDomains",
          "engines"
        ],
        "properties": {
          "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. The default, Perplexity, needs no API key from you and answers in all 24 languages — it runs on our key, with 12 calls per run on a free Apify plan (200 on paid plans), and each successful citation record bills $0.05. Google AI Overview needs no key either but answers English queries only. Gemini is included too, on our key, grounded with Google Search. ChatGPT, Claude and legacy Perplexity Sonar require your own API key (see the 'Bring your own keys' section below).",
            "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",
            "type": "string",
            "description": "Optional. Get one at https://platform.openai.com/api-keys. Used for ChatGPT engine via the gpt-4o-mini-search-preview model. ~$0.025 per query."
          },
          "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}