# AI Answer Brand Monitor: ChatGPT, Copilot, Google AI Overviews (`appgild/ai-answer-brand-monitor`) Actor

See whether ChatGPT, Microsoft Copilot and Google AI Overviews mention your brand for the prompts your customers ask: list position, competitors named, cited sources and whether your domain is cited. Powered by cloro.

- **URL**: https://apify.com/appgild/ai-answer-brand-monitor.md
- **Developed by:** [AppGild Team](https://apify.com/appgild) (community)
- **Categories:** AI, SEO tools
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$30.00 / 1,000 prompt checked on one engines

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## AI Answer Brand Monitor: ChatGPT, Copilot, Google AI Overviews

Find out whether ChatGPT, Microsoft Copilot and Google AI Overviews mention your brand when your customers ask them for a recommendation. For each prompt and each engine, this Actor reports whether the brand was mentioned, its position when the answer lists options, the competitors the answer named, the sources it cited and whether your own domain was among them.

**Powered by cloro** for ChatGPT and Microsoft Copilot answers, as ChatGPT and Microsoft Copilot answer users. Google AI Overviews come from Google search results through DataForSEO.

Not affiliated with or endorsed by OpenAI, Microsoft or Google. ChatGPT, Copilot and Google are trademarks of their owners.

### Who it is for

- **SEO and GEO analysts** tracking "AI share of voice" for a brand or a client.
- **Agencies** reporting which prompts mention a client, which competitors are named instead, and which pages the assistants cite.
- **Brand and content teams** checking whether new pages start getting cited.

### What you get for each prompt and engine

| Field | What it means |
| --- | --- |
| `mentioned` | The brand (or one of its other names, or its domain) appears in the answer. |
| `listPosition` | When the answer lists options, the brand's place in that list (1 is first); `null` when it is not in a list. |
| `listLength` | How many options the answer listed. |
| `competitorsNamed` | The other names the answer listed or showed as cards. |
| `knownCompetitorsMentioned` | Which of the competitors you entered the answer mentions. |
| `citedUrls` | The sources the answer cited. |
| `brandDomainCited` | Whether any cited source is on your domain. |
| `answerExcerpt` | About 500 characters around the first mention (or the start of the answer). |
| `aiOverviewPresent` | Google only: whether Google showed an AI Overview for the prompt. |
| `engine`, `prompt`, `checkedAt` | Which engine, which prompt, and when (UTC). |
| `poweredBy` | `"cloro (https://cloro.dev)"` on every ChatGPT and Copilot result. |

### Example output

One real result from a test run on 2026-10-20 (cited sources cut to three of 25, one of them on the brand's domain). HubSpot and the other brands here are named as the AI answer named them; AppGild is not affiliated with them.

```json
{
  "brand": "HubSpot",
  "prompt": "What is the best CRM for a small business?",
  "engine": "chatgpt",
  "checkedAt": "2026-10-20T12:22:17.949Z",
  "poweredBy": "cloro (https://cloro.dev)",
  "status": "ok",
  "mentioned": true,
  "listPosition": 1,
  "listLength": 5,
  "competitorsNamed": [
    "Pipedrive",
    "Zoho CRM",
    "Freshsales",
    "Less Annoying CRM"
  ],
  "knownCompetitorsMentioned": [
    "Salesforce",
    "Pipedrive",
    "Zoho"
  ],
  "citedUrls": [
    "https://www.stacknpilot.com/articles/best-crm-for-small-businesses-2026-7-top-picks-compared",
    "https://www.spotsaas.com/blog/best-crm-software-2026-reviews-pricing-feature-comparison",
    "https://www.hubspot.com/products/crm"
  ],
  "brandDomainCited": true,
  "answerExcerpt": "…actually use consistently: it should be easy to set up, affordable, and good at tracking leads, customer relationships, and follow-ups without creating extra admin work. My default recommendation is HubSpot CRM for most small businesses, especially if you want to get organized quickly and potentially add marketing and sales tools as you grow. But it isn't the best fit for everyone.…"
}
```

### Input

- **Brand name** (required), plus optional **other names** and your **domain**.
- **Prompts**: the questions your customers ask, one per line. Or **keywords**, each turned into "What are the best {keyword}? Name the top options."
- **Engines**: any of ChatGPT, Microsoft Copilot and Google AI Overview (all three by default).
- **Competitors to watch** (optional).
- **US state** (optional): ask ChatGPT and Copilot from a state, for local answers.
- **Google location** and **language** for AI Overviews.

### Use from an AI agent / MCP

Agents can call this Actor as a tool through Apify's MCP server (`https://mcp.apify.com`) or the Apify API, by its ID `appgild/ai-answer-brand-monitor`. Every input except the brand and its prompts has a default, and every row is plain JSON with the fields above.

```json
{
  "brand": "HubSpot",
  "domain": "hubspot.com",
  "prompts": [
    "What is the best CRM for a small business?"
  ],
  "competitors": [
    "Salesforce",
    "Pipedrive"
  ],
  "engines": [
    "chatgpt",
    "copilot",
    "google_ai_overview"
  ]
}
```

The results are the run's default dataset, one row per prompt and engine. The run's summary (checks made, failed and not made, with its status message) is the `OUTPUT` record in the run's key-value store.

### Pricing

Pay per result: **$0.03 per prompt checked on one engine** (`prompt-engine-check`). Three engines on 50 prompts is 150 checks, $4.50. Apify platform usage is billed to you as well.

You are charged only for checks that came back. A check that fails at the data source is saved with its error and is not charged. Set a maximum charge on the run and the Actor stops before it would go over it.

### Limits

- Up to **200 prompts per run** (prompts and keywords together). A longer list is cut, and the run's status message says how many were not checked or charged.
- **Daily capacity**: the Actor has a daily data budget shared by all its users. When it is used up, runs stop cleanly with a status message, charge nothing more, and work again after 00:00 UTC.
- ChatGPT and Copilot answers have their own daily capacity, shared by all users. When it is reached, those checks come back with `status: "capacity_reached"` and a "try again tomorrow" message, are not charged, and Google AI Overview checks carry on.
- Only a few ChatGPT and Copilot answers are asked at once across all users. When every slot stays busy for a few minutes, the remaining ChatGPT and Copilot checks come back with `status: "capacity_reached"` and a "try again later" message, and are not charged.
- ChatGPT answers can take a minute or more, and Google AI Overview checks are queued (usually a few minutes), so a large run can take a while.
- Mentions, list positions and names are read from the answer's own text: its numbered lists, tables, headings and bullets. They are careful heuristics, not a human reading: a brand written very differently from its name, or a list in an unusual layout, can be missed.
- AI answers change from day to day and from person to person. One run is a sample, not a permanent ranking.

### Terms of use

By running this Actor you agree to the following.

- **As is.** The data is provided as is, without any warranty of accuracy, completeness or availability. AI answers and search results change constantly, and nothing here is advice.
- **No competing search engine.** You may not use the data, or any part of it, to build or train a search engine, a search index, or any service that substitutes for one.
- **Your use is your responsibility.** You must comply with all laws that apply to you and with the terms of the platforms involved, including Apify and the services whose answers are checked.
- **No affiliation.** Not affiliated with or endorsed by OpenAI, Microsoft or Google. ChatGPT, Copilot and Google are trademarks of their owners. Brands named in the examples and in the results (HubSpot and others) are reported as the AI answers named them, with no affiliation or endorsement.
- **Limitation of liability.** To the extent the law allows, AppGild's total liability for any claim is limited to the amount you paid for the runs involved.
- **Indemnity.** You agree to hold Meridian Data LLC (AppGild) harmless from claims that arise from your use of the data in breach of these terms.
- **Support:** support@appgild.ai

Published by AppGild. AppGild is a brand of Meridian Data LLC, Washington, USA.

# Actor input Schema

## `brand` (type: `string`):

The brand to look for in each answer, as people write it (for example "HubSpot"). Matching ignores case and treats spaces and hyphens alike.

## `aliases` (type: `array`):

Optional. Other names that count as a mention, such as a product name or a short form.

## `domain` (type: `string`):

Optional. Your domain (for example hubspot.com). The output says whether each answer cites it, and a mention of the domain counts as a mention of the brand.

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

Questions your customers ask an AI assistant, one per line. Up to 200 per run (prompts and keywords together). Each prompt is checked on every engine you choose. Leave empty when you use keywords instead.

## `keywords` (type: `array`):

Optional. Search keywords; each becomes the question "What are the best {keyword}? Name the top options."

## `engines` (type: `array`):

Which AI answers to check. ChatGPT and Copilot answers come from the live apps (via cloro); Google AI Overviews from Google search results (via DataForSEO). Each engine is one charged check per prompt.

## `competitors` (type: `array`):

Optional. Competitor names; the output lists which of them each answer mentions. Every name an answer lists is reported anyway.

## `state` (type: `string`):

Optional two-letter US state code (for example TX). ChatGPT and Copilot are asked from that state, for local answers. Leave empty for a national answer.

## `googleLocation` (type: `string`):

Where Google AI Overviews are checked from: a country, or a city as "City,State,Country" (for example "Austin,Texas,United States").

## `language` (type: `string`):

Two-letter language code for Google results.

## Actor input object example

```json
{
  "brand": "HubSpot",
  "aliases": [],
  "domain": "hubspot.com",
  "prompts": [
    "What is the best CRM for a small business?"
  ],
  "keywords": [],
  "engines": [
    "google_ai_overview"
  ],
  "competitors": [],
  "state": "",
  "googleLocation": "United States",
  "language": "en"
}
```

# Actor output Schema

## `results` (type: `string`):

One row per prompt and engine: mentioned, list position, competitors named, cited sources, or the error (not charged).

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

Counts for the run (requested, checked, failed, not checked) and its status message.

# 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 = {
    "brand": "HubSpot",
    "domain": "hubspot.com",
    "prompts": [
        "What is the best CRM for a small business?"
    ],
    "engines": [
        "google_ai_overview"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("appgild/ai-answer-brand-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 = {
    "brand": "HubSpot",
    "domain": "hubspot.com",
    "prompts": ["What is the best CRM for a small business?"],
    "engines": ["google_ai_overview"],
}

# Run the Actor and wait for it to finish
run = client.actor("appgild/ai-answer-brand-monitor").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 '{
  "brand": "HubSpot",
  "domain": "hubspot.com",
  "prompts": [
    "What is the best CRM for a small business?"
  ],
  "engines": [
    "google_ai_overview"
  ]
}' |
apify call appgild/ai-answer-brand-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,appgild/ai-answer-brand-monitor"
        }
    }
}
```

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/D30M3dE3CWKQH6lp4/builds/0vZIfsRy2gyhN639u/openapi.json
