{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Search Visibility Tracker: ChatGPT, Gemini, Perplexity",
    "description": "See how often ChatGPT, Gemini and Perplexity name and cite your brand versus competitors, with a confidence range for every rate and changes since the last run. Official APIs, 41 countries, full answers and sources.",
    "version": "1.0",
    "x-build-id": "lHlBGuxufMkZqUSZ1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/layerwiselabs~ai-visibility-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-layerwiselabs-ai-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/layerwiselabs~ai-visibility-tracker/runs": {
      "post": {
        "operationId": "runs-sync-layerwiselabs-ai-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/layerwiselabs~ai-visibility-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-layerwiselabs-ai-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": [
          "brand",
          "prompts"
        ],
        "properties": {
          "brand": {
            "title": "Brand",
            "type": "string",
            "description": "The brand, company or product you want to find in AI answers."
          },
          "brandAliases": {
            "title": "Other names",
            "type": "array",
            "description": "Other names that count as your brand, e.g. \"HubSpot CRM\" or inflected forms such as \"HubSpota\". Case, umlauts and accents are ignored (\"Mueller\" finds \"Müller\").",
            "items": {
              "type": "string"
            }
          },
          "brandDomains": {
            "title": "Your domains",
            "type": "array",
            "description": "Your websites, e.g. \"hubspot.com\". An answer that links to them (or a subdomain) counts as citing you.",
            "items": {
              "type": "string"
            }
          },
          "competitors": {
            "title": "Competitors",
            "type": "array",
            "description": "One competitor per line. Add other names and domains after a \"|\": \"Pipedrive | Pipedrive CRM | pipedrive.com\".",
            "items": {
              "type": "string"
            }
          },
          "prompts": {
            "title": "Prompts",
            "type": "array",
            "description": "The questions your buyers ask, in their language. Keep the same list over time to see trends.",
            "items": {
              "type": "string"
            }
          },
          "engines": {
            "title": "AI engines",
            "type": "array",
            "description": "Each answer is billed per engine.",
            "items": {
              "type": "string",
              "enum": [
                "chatgpt",
                "gemini",
                "perplexity"
              ],
              "enumTitles": [
                "ChatGPT (OpenAI API with web search)",
                "Gemini (Gemini API with Google Search)",
                "Perplexity (Agent API with web search)"
              ]
            },
            "default": [
              "chatgpt",
              "gemini"
            ]
          },
          "samplesPerPrompt": {
            "title": "Samples per prompt",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How often each prompt is asked per engine. AI answers change from one ask to the next; more samples give a narrower range for each rate.",
            "default": 3
          },
          "country": {
            "title": "Country",
            "enum": [
              "AU",
              "AT",
              "BE",
              "BA",
              "BR",
              "BG",
              "CA",
              "HR",
              "CZ",
              "DK",
              "FI",
              "FR",
              "DE",
              "GR",
              "HU",
              "IN",
              "IE",
              "IT",
              "JP",
              "LU",
              "MX",
              "ME",
              "NL",
              "NZ",
              "MK",
              "NO",
              "PL",
              "PT",
              "RO",
              "RS",
              "SG",
              "SK",
              "SI",
              "ZA",
              "ES",
              "SE",
              "CH",
              "TR",
              "AE",
              "GB",
              "US"
            ],
            "type": "string",
            "description": "Ask as a user in this country. Leave empty for no location."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "Optional, e.g. \"Munich\". Makes local answers more precise."
          },
          "compareWithPreviousRun": {
            "title": "Compare with the previous run",
            "type": "boolean",
            "description": "Show how each rate changed since the previous run with the same brand, competitors, names, matching rules, prompts, engines, models, location and API keys (yours or ours), and whether the change is larger than chance. A saved task keeps its own history; changing these settings starts a new one. Runs with this option off are not kept as history.",
            "default": true
          },
          "matchCase": {
            "title": "Match case",
            "type": "boolean",
            "description": "Only count names written with the same capital letters. Use it for brands that are also common words, like \"Notion\" or \"Apple\".",
            "default": false
          },
          "openaiApiKey": {
            "title": "Your OpenAI API key",
            "type": "string",
            "description": "Optional. With your own key OpenAI bills you directly and each answer costs only the lower own-key price."
          },
          "geminiApiKey": {
            "title": "Your Gemini API key",
            "type": "string",
            "description": "Optional, same as above. Keys at aistudio.google.com, with billing turned on for Google Search."
          },
          "perplexityApiKey": {
            "title": "Your Perplexity API key",
            "type": "string",
            "description": "Optional, same as above. Keys at perplexity.ai, API settings."
          },
          "chatgptModel": {
            "title": "OpenAI model",
            "type": "string",
            "description": "Without your own key: gpt-5-mini or gpt-5-nano. With your own key: any OpenAI model with web search.",
            "default": "gpt-5-mini"
          },
          "geminiModel": {
            "title": "Gemini model",
            "type": "string",
            "description": "Without your own key: gemini-3.8-flash or gemini-3.1-flash-lite. With your own key: any Gemini model with Google Search grounding.",
            "default": "gemini-3.8-flash"
          },
          "perplexityModel": {
            "title": "Perplexity model",
            "type": "string",
            "description": "Without your own key: perplexity/sonar. With your own key: any Agent API model.",
            "default": "perplexity/sonar"
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Lower it if your own API key has tight rate limits.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}