{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Brand Visibility Tracker - GPT, Gemini & Claude Mentions",
    "description": "Check how AI models answer your buyers' questions: is your brand mentioned, at what rank and list position, with what sentiment, which competitors appear, which sites are cited, and your share of voice per model. GPT, Gemini, Claude, Llama or Sonar via OpenRouter. $0.01 per check + tokens.",
    "version": "0.1",
    "x-build-id": "PraOvxdHrkrhhS443"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/actor-forge~ai-brand-visibility/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-actor-forge-ai-brand-visibility",
        "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/actor-forge~ai-brand-visibility/runs": {
      "post": {
        "operationId": "runs-sync-actor-forge-ai-brand-visibility",
        "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/actor-forge~ai-brand-visibility/run-sync": {
      "post": {
        "operationId": "run-sync-actor-forge-ai-brand-visibility",
        "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",
            "type": "string",
            "description": "The brand or product name to look for in AI answers (whole-word, case-insensitive)."
          },
          "brandAliases": {
            "title": "Brand aliases",
            "type": "array",
            "description": "Other spellings or product names that count as your brand, e.g. Notion AI, notion.so.",
            "items": {
              "type": "string"
            }
          },
          "brandDomain": {
            "title": "Brand website",
            "type": "string",
            "description": "Optional, e.g. notion.so: sets brandCited when the answer cites your own site (most useful in web mode)."
          },
          "competitors": {
            "title": "Competitors",
            "type": "array",
            "description": "Competitor brands to compare against: each answer reports whether, where and how they are mentioned, and the summary gives share of voice.",
            "items": {
              "type": "string"
            }
          },
          "prompts": {
            "title": "Buyer prompts",
            "type": "array",
            "description": "Questions your buyers ask AI assistants, e.g. \"best note-taking app for teams\", \"Notion vs Confluence for documentation\", \"what CRM should a 10-person startup use\". Each is sent as-is, without mentioning your brand.",
            "items": {
              "type": "string"
            }
          },
          "models": {
            "title": "AI models",
            "type": "array",
            "description": "OpenRouter model ids (openrouter.ai/models): openai/gpt-4o-mini (ChatGPT's model family), google/gemini-2.5-flash-lite (Gemini), anthropic/claude-3.5-haiku, meta-llama/llama-3.3-70b-instruct, perplexity/sonar (searches the web)… Reasoning models such as openai/gpt-5-nano are run with low reasoning effort.",
            "default": [
              "openai/gpt-4o-mini",
              "google/gemini-2.5-flash-lite"
            ],
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "memory",
              "web"
            ],
            "type": "string",
            "description": "Memory (default, cheapest): what the model says from its training. Web: the model searches the web first (OpenRouter :online web search, ≈ $0.02 per check on paid plans, 10× on the free plan; Perplexity Sonar searches natively) and its cited sources are reported.",
            "default": "memory"
          },
          "samplesPerPrompt": {
            "title": "Samples per prompt",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "AI answers vary between runs; ask each prompt this many times per model for a steadier mention rate (each sample is one charged check).",
            "default": 1
          },
          "maxOutputTokens": {
            "title": "Max answer tokens",
            "minimum": 100,
            "maximum": 4000,
            "type": "integer",
            "description": "max_tokens for each answer (reasoning models get at least 2,000). Recommendation answers usually need 400–800.",
            "default": 700
          },
          "maxLlmCostUsd": {
            "title": "Max AI token cost per run (USD)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Hard cap on the AI token (and web-search) charges this run may cause on your Apify account, estimated with the 10× free-plan rate when it applies. Each check's worst case is reserved before the call; the run stops cleanly before passing the cap. Separate from this actor's per-check fee, which the run's maximum total charge limits.",
            "default": 0.1
          },
          "includeAnswer": {
            "title": "Include the full answer",
            "type": "boolean",
            "description": "Keep the model's full answer text in each row.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}