# AI Brand Visibility Monitor (`xanthic_smock/ai-brand-visibility-monitor`) Actor

Track how any brand appears across ChatGPT, Perplexity, Claude, and Gemini. BYO API keys.

- **URL**: https://apify.com/xanthic\_smock/ai-brand-visibility-monitor.md
- **Developed by:** [Chirag](https://apify.com/xanthic_smock) (community)
- **Categories:** AI, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## AI Brand Visibility Monitor

Track how any brand, company, or product appears across AI search platforms — ChatGPT, Perplexity, Claude, and Gemini. Bring your own API keys for maximum flexibility and cost control.

### What it does

Queries multiple AI platforms with the same brand question, then returns structured results showing how each AI platform perceives and describes your brand. Essential for:

- **AI SEO** — understand your brand's visibility in the AI search era
- **Competitive intelligence** — see how competitors appear across AI platforms
- **Reputation monitoring** — track sentiment and accuracy of AI-generated brand information
- **Agency reporting** — deliver "AI share of voice" reports to clients

### Features

- **4 AI platforms**: OpenAI (ChatGPT), Perplexity, Anthropic (Claude), Google (Gemini)
- **BYO API keys**: Use your own keys — no markup, no middleman
- **Pick any subset**: Query 1, 2, 3, or all 4 platforms per run
- **Custom queries**: Ask any question about any brand
- **Structured output**: JSON with platform-by-platform results, token usage, and metadata
- **MCP-ready**: Expose as MCP server for AI agents to query AI about brands

### Input

| Field | Required | Description |
|-------|----------|-------------|
| `brandName` | Yes | Brand/company/product name to research |
| `query` | No | Custom query (default: asks for overview, facts, reputation, news) |
| `platforms` | Yes | Array of platforms: `openai`, `perplexity`, `anthropic`, `google` |
| `openaiApiKey` | If openai selected | Your OpenAI API key |
| `perplexityApiKey` | If perplexity selected | Your Perplexity API key |
| `anthropicApiKey` | If anthropic selected | Your Anthropic API key |
| `googleApiKey` | If google selected | Your Google AI API key |
| `maxTokens` | No | Max tokens per response (default: 1024) |

### Output

```json
{
  "brand": "Apify",
  "query": "What can you tell me about Apify?...",
  "timestamp": "2026-07-04T12:00:00Z",
  "results": {
    "openai": {
      "model": "gpt-4o",
      "response": "Apify is a web scraping and automation platform...",
      "tokenUsage": { "input": 45, "output": 312 },
      "cost": 0.0012,
      "error": null
    },
    "perplexity": {
      "model": "sonar-pro",
      "response": "Apify is the largest marketplace of web scraping tools...",
      "tokenUsage": { "input": 52, "output": 289 },
      "cost": 0.0008,
      "error": null,
      "citations": ["https://apify.com", "https://docs.apify.com"]
    },
    "anthropic": { ... },
    "google": { ... }
  },
  "summary": {
    "platformsQueried": 4,
    "platformsSucceeded": 4,
    "totalCost": 0.0042
  }
}
````

### API Keys (free tiers available)

| Platform | Get Key Here | Free Tier |
|----------|-------------|-----------|
| OpenAI | https://platform.openai.com/api-keys | $5 credit for new users |
| Perplexity | https://www.perplexity.ai/settings/api | $5 credit for new users |
| Anthropic | https://console.anthropic.com/ | $5 credit for new users |
| Google | https://aistudio.google.com/apikey | Free tier with rate limits |

### Pricing

This Actor is **free to use** — you only pay your chosen AI platform's API costs directly. No markup, no hidden fees.

### Usage ideas

- **Daily brand monitoring**: Schedule this Actor to run daily and track how AI platforms describe your brand over time
- **Competitor benchmarking**: Compare your brand's AI visibility against 5 competitors
- **Launch monitoring**: Track AI awareness of a new product launch across platforms
- **Agency reports**: Generate monthly "AI brand visibility" reports for clients

# Actor input Schema

## `brandName` (type: `string`):

The brand, company, or product name to research.

## `query` (type: `string`):

Custom question. Use {brand} as placeholder.

## `useOpenai` (type: `boolean`):

Query ChatGPT about the brand.

## `usePerplexity` (type: `boolean`):

Query Perplexity (brings web citations).

## `useAnthropic` (type: `boolean`):

Query Claude about the brand.

## `useGoogle` (type: `boolean`):

Query Gemini about the brand.

## `maxTokens` (type: `integer`):

Maximum tokens per AI response. Higher = more detailed answers (costs more).

## `openaiApiKey` (type: `string`):

Required if OpenAI is selected. Get one at https://platform.openai.com/api-keys

## `openaiModel` (type: `string`):

Model for OpenAI queries.

## `perplexityApiKey` (type: `string`):

Required if Perplexity is selected. Get one at https://www.perplexity.ai/settings/api

## `perplexityModel` (type: `string`):

Model for Perplexity queries.

## `anthropicApiKey` (type: `string`):

Required if Anthropic is selected. Get one at https://console.anthropic.com/settings/keys

## `anthropicModel` (type: `string`):

Model for Claude queries.

## `googleApiKey` (type: `string`):

Required if Google is selected. Get one at https://aistudio.google.com/apikey

## `googleModel` (type: `string`):

Model for Gemini queries.

## Actor input object example

```json
{
  "brandName": "Apify",
  "query": "What can you tell me about {brand}? Include what they do, products, reputation, and recent news.",
  "useOpenai": true,
  "usePerplexity": true,
  "useAnthropic": true,
  "useGoogle": true,
  "maxTokens": 2048,
  "openaiModel": "gpt-4o",
  "perplexityModel": "sonar-pro",
  "anthropicModel": "claude-sonnet-4-20250514",
  "googleModel": "gemini-2.5-flash"
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "brandName": "Apify",
    "query": "What can you tell me about {brand}? Include what they do, products, reputation, and recent news."
};

// Run the Actor and wait for it to finish
const run = await client.actor("xanthic_smock/ai-brand-visibility-monitor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "brandName": "Apify",
    "query": "What can you tell me about {brand}? Include what they do, products, reputation, and recent news.",
}

# Run the Actor and wait for it to finish
run = client.actor("xanthic_smock/ai-brand-visibility-monitor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "brandName": "Apify",
  "query": "What can you tell me about {brand}? Include what they do, products, reputation, and recent news."
}' |
apify call xanthic_smock/ai-brand-visibility-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=xanthic_smock/ai-brand-visibility-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AI Brand Visibility Monitor",
        "description": "Track how any brand appears across ChatGPT, Perplexity, Claude, and Gemini. BYO API keys.",
        "version": "0.0",
        "x-build-id": "dxhJKeWBweCbm4qWd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/xanthic_smock~ai-brand-visibility-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-xanthic_smock-ai-brand-visibility-monitor",
                "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/xanthic_smock~ai-brand-visibility-monitor/runs": {
            "post": {
                "operationId": "runs-sync-xanthic_smock-ai-brand-visibility-monitor",
                "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/xanthic_smock~ai-brand-visibility-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-xanthic_smock-ai-brand-visibility-monitor",
                "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"
                ],
                "properties": {
                    "brandName": {
                        "title": "Brand Name",
                        "type": "string",
                        "description": "The brand, company, or product name to research."
                    },
                    "query": {
                        "title": "Custom Query (optional)",
                        "type": "string",
                        "description": "Custom question. Use {brand} as placeholder."
                    },
                    "useOpenai": {
                        "title": "OpenAI (ChatGPT)",
                        "type": "boolean",
                        "description": "Query ChatGPT about the brand.",
                        "default": true
                    },
                    "usePerplexity": {
                        "title": "Perplexity",
                        "type": "boolean",
                        "description": "Query Perplexity (brings web citations).",
                        "default": true
                    },
                    "useAnthropic": {
                        "title": "Anthropic (Claude)",
                        "type": "boolean",
                        "description": "Query Claude about the brand.",
                        "default": true
                    },
                    "useGoogle": {
                        "title": "Google (Gemini)",
                        "type": "boolean",
                        "description": "Query Gemini about the brand.",
                        "default": true
                    },
                    "maxTokens": {
                        "title": "Max Response Tokens",
                        "minimum": 256,
                        "maximum": 8192,
                        "type": "integer",
                        "description": "Maximum tokens per AI response. Higher = more detailed answers (costs more).",
                        "default": 2048
                    },
                    "openaiApiKey": {
                        "title": "OpenAI API Key",
                        "type": "string",
                        "description": "Required if OpenAI is selected. Get one at https://platform.openai.com/api-keys"
                    },
                    "openaiModel": {
                        "title": "OpenAI Model",
                        "enum": [
                            "gpt-4o",
                            "gpt-4o-mini",
                            "gpt-4-turbo",
                            "o4-mini"
                        ],
                        "type": "string",
                        "description": "Model for OpenAI queries.",
                        "default": "gpt-4o"
                    },
                    "perplexityApiKey": {
                        "title": "Perplexity API Key",
                        "type": "string",
                        "description": "Required if Perplexity is selected. Get one at https://www.perplexity.ai/settings/api"
                    },
                    "perplexityModel": {
                        "title": "Perplexity Model",
                        "enum": [
                            "sonar-pro",
                            "sonar",
                            "sonar-reasoning-pro",
                            "sonar-reasoning"
                        ],
                        "type": "string",
                        "description": "Model for Perplexity queries.",
                        "default": "sonar-pro"
                    },
                    "anthropicApiKey": {
                        "title": "Anthropic (Claude) API Key",
                        "type": "string",
                        "description": "Required if Anthropic is selected. Get one at https://console.anthropic.com/settings/keys"
                    },
                    "anthropicModel": {
                        "title": "Claude Model",
                        "enum": [
                            "claude-sonnet-4-20250514",
                            "claude-3-5-sonnet-20241022",
                            "claude-3-5-haiku-20241022",
                            "claude-opus-4-20250514"
                        ],
                        "type": "string",
                        "description": "Model for Claude queries.",
                        "default": "claude-sonnet-4-20250514"
                    },
                    "googleApiKey": {
                        "title": "Google (Gemini) API Key",
                        "type": "string",
                        "description": "Required if Google is selected. Get one at https://aistudio.google.com/apikey"
                    },
                    "googleModel": {
                        "title": "Gemini Model",
                        "enum": [
                            "gemini-2.5-flash",
                            "gemini-2.5-pro",
                            "gemini-2.0-flash"
                        ],
                        "type": "string",
                        "description": "Model for Gemini queries.",
                        "default": "gemini-2.5-flash"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
