{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Brand Visibility Tracker - AI Overview | $0.3 = 20 checks",
    "description": "Scan how Google AI Overviews, ChatGPT, Perplexity, Gemini and Copilot mention your brand vs competitors. Input: brand + 3-15 buyer queries. One $0.30 query = ~20 real AI checks, ground-truth validated. Output: visibility score, share of voice, citations and gaps per engine. MCP tool for AI agents.",
    "version": "0.0",
    "x-build-id": "rGFT5mISLVlGWA1oq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/doesaiknow~ai-brand-visibility-tracker-chatgpt-perplexity-gemini/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-doesaiknow-ai-brand-visibility-tracker-chatgpt-perplexity-gemini",
        "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/doesaiknow~ai-brand-visibility-tracker-chatgpt-perplexity-gemini/runs": {
      "post": {
        "operationId": "runs-sync-doesaiknow-ai-brand-visibility-tracker-chatgpt-perplexity-gemini",
        "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/doesaiknow~ai-brand-visibility-tracker-chatgpt-perplexity-gemini/run-sync": {
      "post": {
        "operationId": "run-sync-doesaiknow-ai-brand-visibility-tracker-chatgpt-perplexity-gemini",
        "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": [
          "brand"
        ],
        "properties": {
          "brand": {
            "title": "Brand",
            "maxLength": 100,
            "type": "string",
            "description": "The brand you want to analyze. Unicode letters supported (e.g. 'Żabka', 'Müller', 'L'Oréal')."
          },
          "brandUrl": {
            "title": "Brand website (optional)",
            "maxLength": 2048,
            "type": "string",
            "description": "Your brand's website — full URL or bare domain ('https://mercury.com' or 'mercury.com'). Set it when other companies share your brand name: answers about a same-name different company stop counting as your visibility, and citations of this domain (and subdomains) are attributed to your brand. Leave empty if your brand name is unambiguous."
          },
          "queries": {
            "title": "Queries (what people ask AI engines)",
            "minItems": 0,
            "maxItems": 15,
            "type": "array",
            "description": "3-15 questions a buyer would ask an AI assistant about this product category, in the language your customers use (e.g. 'best CRM for small business', 'HubSpot vs Salesforce'). Max 200 chars each. REQUIRED for paid scans (tier=quick_tester / pro_auditor / agency_scale). Each query is fanned out into ~4 semantic variants by the backend, executed across all selected AI engines. Total cost = N_queries × $0.30. OPTIONAL for tier=demo (cached preview, no real scan, no charge — backend ignores queries on the demo path).",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language / country",
            "enum": [
              "us",
              "gb",
              "ca",
              "au",
              "de",
              "fr",
              "es",
              "it",
              "pl",
              "nl",
              "se",
              "no",
              "dk",
              "fi",
              "br",
              "pt",
              "jp",
              "in",
              "mx",
              "ie",
              "at",
              "ch",
              "be",
              "cz",
              "ro",
              "ae",
              "ar",
              "bg",
              "cl",
              "co",
              "ee",
              "eg",
              "gr",
              "hr",
              "hu",
              "id",
              "il",
              "kr",
              "lt",
              "lv",
              "my",
              "ng",
              "nz",
              "pe",
              "ph",
              "pk",
              "sa",
              "sg",
              "sk",
              "th",
              "tr",
              "ua",
              "vn",
              "za"
            ],
            "type": "string",
            "description": "ISO-3166 country code (lowercase, 2 chars). Drives geo + locale routing. 'us'=English/United States (default), 'pl'=Polish/Poland, 'de'=German/Germany, 'fr'=French/France, 'es'=Spanish/Spain, 'it'=Italian/Italy, 'gb'=English/United Kingdom, 'br'=Portuguese/Brazil, 'jp'=Japanese/Japan, etc. (53 countries supported). Unknown codes silently fall back to US/English.",
            "default": "us"
          },
          "competitors": {
            "title": "Competitors (optional)",
            "maxItems": 5,
            "type": "array",
            "description": "Up to 5 tracked competitors. Leave empty to let the system pick from AI engine responses.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Category (optional)",
            "maxLength": 100,
            "type": "string",
            "description": "Optional product / market category (e.g. 'CRM software', 'opony do samochodu', 'projekty domów'). Backend treats it as 'general' if omitted — paid scans use your queries verbatim and don't strictly need it. Unicode letters supported."
          },
          "platforms": {
            "title": "AI engines",
            "type": "array",
            "description": "Which AI engines to query. Default 5 covers the highest-traffic engines; full set (7) adds Grok and Google AI Mode.",
            "items": {
              "type": "string",
              "enum": [
                "chatgpt",
                "perplexity",
                "gemini",
                "copilot",
                "grok",
                "ai_overview",
                "ai_mode"
              ]
            },
            "default": [
              "chatgpt",
              "perplexity",
              "gemini",
              "copilot",
              "ai_overview"
            ]
          },
          "includePerception": {
            "title": "Brand Perception report (+1 paid event)",
            "type": "boolean",
            "description": "Adds HOW AI describes your brand — attributes (e.g. 'affordable', 'unreliable'), sentiment and recommended-vs-warned-against stance per engine, for your brand AND each tracked competitor — computed from the same AI answers this scan collects (no extra engine calls). Every attribute is validated against the actual answer text, so nothing is invented. Billed as ONE `perception` event per run ($0.09–0.15 by Apify plan) on top of per-query pricing; not charged if the report can't be produced. Ignored on tier=demo.",
            "default": false
          },
          "tier": {
            "title": "Tier",
            "enum": [
              "demo",
              "quick_tester",
              "pro_auditor",
              "agency_scale"
            ],
            "type": "string",
            "description": "pro_auditor (default) = real scan, 3-15 queries, $0.30/query, query fan-out enabled. quick_tester = 3-5 queries ($0.30/query). agency_scale = bulk ($0.30/query). demo = free cached sample of a different brand — only previews the output shape, never real data for your brand.",
            "default": "pro_auditor"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}