{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Search Visibility Tracker: ChatGPT, Claude & Perplexity",
    "description": "AI rank tracker for GEO & AEO, AI brand monitoring and ChatGPT visibility: AI Visibility Score 0-100 vs competitors in ChatGPT, Claude, Perplexity, Gemini & AI Overviews. Mentions, citations, share of voice, sources, daily changes. $0.05 per answer, no API key. LLM visibility, AI search visibility.",
    "version": "0.2",
    "x-build-id": "XypbpfxyM76IJy1Jw"
  },
  "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.0001 at the default memory. Turn it off to measure your full question set.",
            "default": false
          },
          "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, Claude, Google AI Overview and Gemini are all included and need no API key from you. Perplexity answers in all 24 languages; Google AI Overview is English only. ChatGPT and Claude each have their own included allowance: 3 calls per run on a free Apify plan, and on a paid plan 60 for ChatGPT and 200 for Claude — supply your own openaiApiKey or anthropicApiKey to run that engine on your own quota with no cap. Each successful citation record bills $0.05. Tick Perplexity, OpenAI / ChatGPT and Claude for the full audit.",
            "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 (included, no API key)",
                "Perplexity Sonar — legacy chat API (your key)",
                "Anthropic Claude (included, no API key)"
              ]
            },
            "default": [
              "perplexity-agent"
            ]
          },
          "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). Cost = prompts x engines x samples x $0.05. 3 samples is the stability-score setting; the $4.80 audit uses 2.",
            "default": 1
          },
          "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"
          },
          "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.). To track one page on a shared site, add its path, e.g. 'apps.shopify.com/my-app': only URLs under that path count. List every domain your brand is cited under (e.g. both notion.so and notion.com).",
            "items": {
              "type": "string"
            }
          },
          "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 more than the shared pool allows — up to 100 calls per run (queries x samples), limited by the run's Maximum charge; your own key lifts it — 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 gpt-4o-mini with web search, about $0.012 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 — Claude is already included, with 3 calls per run on a free Apify plan and 200 on a paid plan. Supply your own key only if you want to run Claude on more queries than that, or pick the model yourself, on your own quota and your own bill. Get one at https://console.anthropic.com/. Uses Claude Haiku with web search."
          },
          "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 with web search (falls back to gpt-4.1-mini)."
          },
          "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, with your own anthropicApiKey only. Default: claude-haiku-5-5 (falls back to claude-haiku-4-5)."
          },
          "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}