{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Visibility Tracker (GEO/AEO): ChatGPT, Perplexity & Claude",
    "description": "AI visibility and rank tracker for GEO/AEO: see how often ChatGPT, Gemini, Perplexity, Claude, Google AI Overviews and AI Mode recommend your brand vs competitors. Real app answers with sources: share of voice, list rank, citations and citation gaps. Pay per check, failed checks free.",
    "version": "0.1",
    "x-build-id": "ULQWAdQvQ5C2AlEju"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/touchrock~ai-share-of-voice/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-touchrock-ai-share-of-voice",
        "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/touchrock~ai-share-of-voice/runs": {
      "post": {
        "operationId": "runs-sync-touchrock-ai-share-of-voice",
        "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/touchrock~ai-share-of-voice/run-sync": {
      "post": {
        "operationId": "run-sync-touchrock-ai-share-of-voice",
        "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": [
          "brandName",
          "prompts"
        ],
        "properties": {
          "brandName": {
            "title": "Your brand",
            "maxLength": 200,
            "type": "string",
            "description": "The brand you want to track, e.g. \"HubSpot\"."
          },
          "brandDomain": {
            "title": "Your website domain",
            "maxLength": 200,
            "type": "string",
            "description": "Used to detect when AI engines cite your site, e.g. \"hubspot.com\". It is not used to detect mentions: add every name people use as an alias."
          },
          "brandAliases": {
            "title": "Brand aliases (optional)",
            "maxItems": 20,
            "type": "array",
            "description": "Other names AI engines may use for your brand: short names, former names, product names. E.g. for \"monday.com\" add \"Monday\" only if AI answers name the tool that way (plain words like \"Monday\" can also match the weekday). Up to 20.",
            "items": {
              "type": "string"
            }
          },
          "competitors": {
            "title": "Competitors",
            "maxItems": 50,
            "type": "array",
            "description": "One per line, up to 50. Format: \"Name (domain.com)\". Aliases after a pipe, separated by \";\": \"Zoho CRM (zoho.com) | Zoho\". Only the name and aliases count as mentions; the domain is used for citations.",
            "items": {
              "type": "string"
            }
          },
          "prompts": {
            "title": "Prompts (buyer questions; max 10 on the Free plan)",
            "minItems": 1,
            "maxItems": 200,
            "type": "array",
            "description": "Questions your buyers ask AI assistants. Each prompt is sent to every selected engine. Max 200 per run (10 on the Apify Free plan), up to 2,000 characters each (Google AI Overviews and AI Mode read the first 700).",
            "items": {
              "type": "string"
            }
          },
          "engines": {
            "title": "AI engines",
            "minItems": 1,
            "type": "array",
            "description": "ChatGPT and Gemini reflect the answers consumers see in the apps. Claude is billed as a separate event (see Claude tier).",
            "items": {
              "type": "string",
              "enum": [
                "chatgpt",
                "gemini",
                "perplexity",
                "claude",
                "google_ai_overview",
                "google_ai_mode"
              ],
              "enumTitles": [
                "ChatGPT",
                "Gemini",
                "Perplexity",
                "Claude",
                "Google AI Overviews",
                "Google AI Mode"
              ]
            },
            "default": [
              "chatgpt",
              "perplexity",
              "google_ai_overview"
            ]
          },
          "claudeTier": {
            "title": "Claude tier (Premium: paying users only)",
            "enum": [
              "standard",
              "premium"
            ],
            "type": "string",
            "description": "Standard uses Claude Sonnet 5. Premium uses Claude Opus 5.5 with web search (higher price per check); on the Apify Free plan it runs as Standard. Only applies when Claude is selected.",
            "default": "standard"
          },
          "country": {
            "title": "Country",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "IE",
              "NZ",
              "IN",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "SE",
              "BR",
              "MX",
              "AR",
              "CO",
              "CL",
              "SG",
              "JP",
              "ZA",
              "AE"
            ],
            "type": "string",
            "description": "Country for localized results.",
            "default": "US"
          },
          "language": {
            "title": "Language",
            "pattern": "^[a-zA-Z]{2,3}([-_]([a-zA-Z]{2}|[a-zA-Z]{4}|[0-9]{3}))?$",
            "type": "string",
            "description": "Language code, e.g. en, de, es or pt-BR. Used by ChatGPT, Gemini, Google AI Overviews and AI Mode (Claude and Perplexity answer in the prompt's language).",
            "default": "en"
          },
          "runsPerPrompt": {
            "title": "Runs per prompt (1 on the Free plan)",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "AI answers vary between runs. Use 2-3 runs for more stable share-of-voice numbers (each run is billed). The Apify Free plan runs each prompt once.",
            "default": 1
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many checks run in parallel.",
            "default": 4
          },
          "dryRun": {
            "title": "Dry run (demo data)",
            "type": "boolean",
            "description": "Generate synthetic answers without calling any AI engine. Free; useful to preview the output format.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}