# ChatGPT Brand Tracker - ChatGPT SEO & AI Visibility Tool (`santhej/chatgpt-brand-tracker`) Actor

ChatGPT SEO and LLM SEO tool: ask your buyer's questions and see if ChatGPT recommends you or a competitor. Mention count, position, share of voice, the exact wording used about you, plus cited sources in web-grounded mode. From $0.005 per prompt. No API keys.

- **URL**: https://apify.com/santhej/chatgpt-brand-tracker.md
- **Developed by:** [Santhej Kallada](https://apify.com/santhej) (community)
- **Categories:** SEO tools, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## ChatGPT Brand Tracker — ChatGPT SEO & AI Visibility Tool

**Ask ChatGPT what your buyers ask, and find out whether it recommends you, ignores you, or names a competitor instead.**

Buyers now ask ChatGPT "what's the best X for Y" before they ever open Google. Whatever ChatGPT answers *is* your shortlist position. This Actor runs any list of prompts and reports, per prompt: whether your brand was named, how many times, how early, exactly how it was described, and how that compares with a competitor set.

### What you get per prompt

| Field | What it tells you |
|---|---|
| `brand_mentioned` + `brand_mention_count` | Whether ChatGPT named you, and how often |
| `brand_position_score` | How early you appear, bucketed 1–10 (1 = opening sentence) |
| `brand_context` | The exact sentence around your first mention — the words used about you |
| `share_of_voice_pct` | Your mentions as a share of you + all named competitors |
| `competitor_mentions` | Per-competitor mention counts in the same answer |
| `answer_text` | ChatGPT's complete answer |
| `citations` / `cited_domains` | Cited sources — **web-grounded mode only** |

The run summary adds your overall mention rate and, in grounded mode, a ranked table of the domains ChatGPT cites most.

### Two modes, two prices — pick deliberately

| Mode | What it measures | Citations | Price |
|---|---|---|---|
| **Trained knowledge** (default) | What ChatGPT says from its own model — what most users actually get | No | **$0.005** / prompt |
| **Web-grounded** | ChatGPT searches the live web first, then answers | Yes | **$0.06** / prompt |

Web search costs roughly **8.5× more** to run and its cost is volatile — a citation-heavy prompt can cost several times a plain one. Rather than blend that into one inflated price, the two modes bill under separate events so an ungrounded run stays genuinely cheap.

**Most brand tracking wants the default.** Turn grounding on when you specifically need the source list.

| Event | Price |
|---|---|
| Actor start | $0.001 per run |
| Prompt check (trained knowledge) | $0.005 per prompt |
| Prompt check (web-grounded) | $0.06 per prompt |

A 25-prompt weekly check costs **$0.126** ungrounded, or $1.50 grounded.

### Use cases

- **AI shortlist monitoring** — track weekly whether ChatGPT still names you for your core buying questions.
- **Share of voice** — quantify your presence against named competitors, prompt by prompt.
- **Messaging audit** — `brand_context` shows the words ChatGPT uses to describe you; correct them at the source.
- **Category discovery** — find which brands ChatGPT thinks lead your category.
- **Digital PR targeting** — in grounded mode, the cited-domains table is a ranked outreach list.
- **Client reporting** — dated, exportable AI-visibility evidence for retainers.

### Input example

```json
{
  "prompts": [
    "What are the best CRM tools for a small business?",
    "Is HubSpot worth the price for a 20 person sales team?"
  ],
  "brandName": "HubSpot",
  "competitorNames": ["Salesforce", "Zoho", "Pipedrive"],
  "webSearch": false
}
```

### Output example

```json
{
  "prompt": "What are the best CRM tools for a small business?",
  "answered": true,
  "mode": "trained_knowledge",
  "brand_mentioned": true,
  "brand_mention_count": 3,
  "brand_position_score": 1,
  "brand_context": "...HubSpot CRM is often the best starting point for small businesses because its free tier...",
  "share_of_voice_pct": 42.9,
  "competitor_mentions": [{ "name": "Zoho", "count": 2 }, { "name": "Pipedrive", "count": 2 }],
  "checked_at": "2026-08-23T09:14:00.000Z"
}
```

### FAQ

**Do I need an OpenAI API key?** No. Everything is handled for you — add prompts and run.

**Are these real ChatGPT answers?** Yes, generated live per prompt. Nothing is simulated or replayed from a cache.

**Why no citations in the default mode?** Because ChatGPT is not searching the web — it is answering from trained knowledge, so there is nothing to cite. That is also what most users see. Enable web-grounded mode if you need sources.

**Why do answers change between runs?** LLM output is non-deterministic. Track the trend across weekly runs rather than reading one run as fact.

**Do I have to supply a brand?** No. Leave the brand fields empty and you still get every full answer.

**Want other engines?** See our [Perplexity Brand Tracker](https://apify.com/santhej/perplexity-brand-tracker), [Google AI Overview Tracker](https://apify.com/santhej/google-ai-overview-tracker) and [Google AI Mode Tracker](https://apify.com/santhej/google-ai-mode-tracker).

### Track every AI surface

Each Actor in this family covers one AI surface deliberately, so you only pay for the check you need:

- [Google AI Overview Tracker](https://apify.com/santhej/google-ai-overview-tracker) — does Google's AI Overview cite you for your keywords?
- [Google AI Mode Tracker](https://apify.com/santhej/google-ai-mode-tracker) — Google's conversational AI tab, tracked the same way.
- [Perplexity Brand Tracker](https://apify.com/santhej/perplexity-brand-tracker) — full live answers plus the numbered citation list Perplexity is known for.
- [AI Citation Gap Finder](https://apify.com/santhej/ai-citation-gap-finder) — which domains Google's AI cites across your whole keyword set, and where competitors are cited but you are not.
- [AI Rank Tracker Pro](https://apify.com/santhej/ai-rank-tracker-pro) — every platform in one run, with share-of-voice reports across ChatGPT, Perplexity, Gemini and Google AI.

***

*Tags: chatgpt seo, chatgpt visibility, chatgpt api, chatgpt monitoring, llm seo, ai seo tool, aeo tool, ai search optimization, ai brand monitoring, ai brand visibility, ai visibility, brand visibility, GEO, AEO, generative engine optimization, answer engine optimization, share of voice, llm monitoring, ai search, ai mentions*

# Actor input Schema

## `prompts` (type: `array`):

The questions to ask ChatGPT — write them the way a buyer would. Recommendation and comparison questions surface brand preferences most clearly.

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

The brand to look for in the answer, e.g. HubSpot. Matched on whole words, case-insensitively.

## `brandAliases` (type: `array`):

Other ways your brand is written — product names, an abbreviation, a legal entity. Any of these counts as a mention.

## `brandDomains` (type: `array`):

Domains you own, e.g. hubspot.com. Only meaningful in web-grounded mode, which is the only mode that returns cited sources.

## `competitorNames` (type: `array`):

Competitor brands to count in the same answer. Used to compute your share of voice.

## `competitorDomains` (type: `array`):

Competitor domains, e.g. salesforce.com. Only meaningful in web-grounded mode.

## `webSearch` (type: `boolean`):

OFF (default): ChatGPT answers from trained knowledge — this is what it tells most users, it is fast, and it is billed at $0.005 per prompt. ON: ChatGPT searches the live web first and returns cited sources, billed at $0.06 per prompt because web search costs roughly 8.5x more to run. Turn this on only when you need the citation list.

## `includeAnswerText` (type: `boolean`):

Return ChatGPT's complete answer on every row. Turn off for a lighter dataset. Does not change the price.

## Actor input object example

```json
{
  "prompts": [
    "What are the best CRM tools for a small business?",
    "Which email marketing platform should an ecommerce store use?",
    "Is HubSpot worth the price for a 20 person sales team?"
  ],
  "brandName": "HubSpot",
  "brandDomains": [
    "hubspot.com"
  ],
  "competitorNames": [
    "Salesforce",
    "Zoho",
    "Pipedrive"
  ],
  "competitorDomains": [
    "salesforce.com",
    "zoho.com"
  ],
  "webSearch": false,
  "includeAnswerText": true
}
```

# Actor output Schema

## `dataset` (type: `string`):

One row per query, plus aggregate rows where applicable.

## `summary` (type: `string`):

Coverage, citation rates, billing breakdown and net margin for the run.

# 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 = {
    "prompts": [
        "What are the best CRM tools for a small business?",
        "Which email marketing platform should an ecommerce store use?",
        "Is HubSpot worth the price for a 20 person sales team?"
    ],
    "brandName": "HubSpot",
    "brandDomains": [
        "hubspot.com"
    ],
    "competitorNames": [
        "Salesforce",
        "Zoho",
        "Pipedrive"
    ],
    "competitorDomains": [
        "salesforce.com",
        "zoho.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("santhej/chatgpt-brand-tracker").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 = {
    "prompts": [
        "What are the best CRM tools for a small business?",
        "Which email marketing platform should an ecommerce store use?",
        "Is HubSpot worth the price for a 20 person sales team?",
    ],
    "brandName": "HubSpot",
    "brandDomains": ["hubspot.com"],
    "competitorNames": [
        "Salesforce",
        "Zoho",
        "Pipedrive",
    ],
    "competitorDomains": [
        "salesforce.com",
        "zoho.com",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("santhej/chatgpt-brand-tracker").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "prompts": [
    "What are the best CRM tools for a small business?",
    "Which email marketing platform should an ecommerce store use?",
    "Is HubSpot worth the price for a 20 person sales team?"
  ],
  "brandName": "HubSpot",
  "brandDomains": [
    "hubspot.com"
  ],
  "competitorNames": [
    "Salesforce",
    "Zoho",
    "Pipedrive"
  ],
  "competitorDomains": [
    "salesforce.com",
    "zoho.com"
  ]
}' |
apify call santhej/chatgpt-brand-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,santhej/chatgpt-brand-tracker"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/fstn3I1JiQzfPdMfR/builds/RTG7Vgk7eRfRRhvQC/openapi.json
