{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Brand Visibility: ChatGPT, Perplexity, Gemini",
    "description": "Ask ChatGPT, Perplexity, Gemini, and Claude your buyers' questions with your own API keys.  Each answer shows whether your brand is named, in what position, which competitors appear, and which sources are cited, plus a share-of-voice summary.  One flat price per answer.",
    "version": "0.1",
    "x-build-id": "kqZo2Y7iQy9jy8nKF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maniginam~ai-brand-visibility-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maniginam-ai-brand-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/maniginam~ai-brand-visibility-tracker/runs": {
      "post": {
        "operationId": "runs-sync-maniginam-ai-brand-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/maniginam~ai-brand-visibility-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-maniginam-ai-brand-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": "Your brand",
            "maxLength": 100,
            "type": "string",
            "description": "The brand you want AI assistants to recommend, as people write it, like Apify."
          },
          "brandAliases": {
            "title": "Other names for your brand",
            "maxItems": 10,
            "type": "array",
            "description": "Other spellings or product names that count as your brand, like Apify Store.  Up to 10.",
            "items": {
              "type": "string"
            }
          },
          "brandDomain": {
            "title": "Your website",
            "type": "string",
            "description": "Your domain, like apify.com.  Each answer then says whether a cited source is on your website."
          },
          "competitors": {
            "title": "Competitors",
            "maxItems": 25,
            "type": "array",
            "description": "Competitors to count, one per line.  Add other names after a bar, like Bright Data | BrightData.  Up to 25.",
            "items": {
              "type": "string"
            }
          },
          "prompts": {
            "title": "Prompts",
            "maxItems": 100,
            "type": "array",
            "description": "Questions your buyers ask AI assistants, one per line.  Each prompt is asked once per provider and repeat.  Up to 100.",
            "items": {
              "type": "string"
            }
          },
          "repeats": {
            "title": "Times to ask each prompt",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "AI answers change from one ask to the next, so asking the same prompt 2 or 3 times gives a steadier picture.  Every repeat is a separate charged answer.",
            "default": 1
          },
          "openaiApiKey": {
            "title": "OpenAI API key",
            "type": "string",
            "description": "Your own OpenAI API key, from platform.openai.com/api-keys.  The Actor sends it only to OpenAI, never logs it, and never saves it.  Leave it empty to skip OpenAI.  OpenAI bills you for the answers."
          },
          "openaiModel": {
            "title": "OpenAI model",
            "type": "string",
            "description": "Model to ask, like gpt-4.1-mini, gpt-4.1, or gpt-4o.",
            "default": "gpt-4.1-mini"
          },
          "perplexityApiKey": {
            "title": "Perplexity API key",
            "type": "string",
            "description": "Your own Perplexity API key, from perplexity.ai/settings/api.  The Actor sends it only to Perplexity, never logs it, and never saves it.  Leave it empty to skip Perplexity.  Perplexity bills you for the answers."
          },
          "perplexityModel": {
            "title": "Perplexity model",
            "type": "string",
            "description": "Model to ask, like sonar or sonar-pro.",
            "default": "sonar"
          },
          "geminiApiKey": {
            "title": "Gemini API key",
            "type": "string",
            "description": "Your own Gemini API key, from aistudio.google.com/apikey.  The Actor sends it only to Gemini, never logs it, and never saves it.  Leave it empty to skip Gemini.  Gemini bills you for the answers."
          },
          "geminiModel": {
            "title": "Gemini model",
            "type": "string",
            "description": "Model to ask, like gemini-3.5-flash-lite or gemini-3.8-flash.",
            "default": "gemini-3.5-flash-lite"
          },
          "anthropicApiKey": {
            "title": "Anthropic API key",
            "type": "string",
            "description": "Your own Anthropic API key, from console.anthropic.com.  The Actor sends it only to Anthropic, never logs it, and never saves it.  Leave it empty to skip Anthropic.  Anthropic bills you for the answers."
          },
          "anthropicModel": {
            "title": "Anthropic model",
            "type": "string",
            "description": "Model to ask, like claude-haiku-4-5 or claude-sonnet-4-5.",
            "default": "claude-haiku-4-5"
          },
          "maxAnswerTokens": {
            "title": "Longest answer (tokens)",
            "minimum": 100,
            "maximum": 4000,
            "type": "integer",
            "description": "Most tokens each answer may use.  Longer answers name more brands and cost more on your provider bill.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Questions at once per provider",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many questions each provider is asked at the same time.  Lower it if a provider says your key is over its rate limit.",
            "default": 2
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}