# AI Search Visibility Tracker — AI Overviews, ChatGPT, Gemini (`intelscrape/ai-search-visibility-tracker`) Actor

AI Search Visibility Tracker: check if your brand is mentioned and cited in Google AI Overviews (no key needed) and in ChatGPT, Perplexity and Gemini with your own API keys. Get mention position, cited URLs, share of voice vs competitors, answer text and Google top 10. Pay per check.

- **URL**: https://apify.com/intelscrape/ai-search-visibility-tracker.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (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?

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 Search Visibility Tracker — AI Overviews, ChatGPT, Gemini

![AI Search Visibility Tracker — AI Overviews, ChatGPT, Gemini](https://api.apify.com/v2/key-value-stores/hRabN9WfDGrT4nSvV/records/ai-search-visibility-tracker-banner.png)

🇨🇳 **AI搜索可见度追踪器**：检查你的品牌是否出现在 Google AI 概览（AI Overviews）中、排名第几、是否被引用，以及相对竞争对手的声量占比；附带谷歌前10自然结果。可选用你自己的 API 密钥检查 ChatGPT、Perplexity 和 Gemini。

🇸🇬 **Penjejak Keterlihatan Carian AI**: semak sama ada jenama anda disebut dan dipetik dalam Google AI Overviews, kedudukannya, dan bahagian suara berbanding pesaing, berserta 10 hasil teratas Google. Pilihan untuk ChatGPT, Perplexity dan Gemini dengan kunci API anda sendiri.

#### 🤖 NEW: Connect This To Your AI!

Use this actor from Claude, ChatGPT, Cursor or any MCP client through the **[IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace)**, or call it directly over the Apify API.

#### 🏆 Featured Bots by IntelScrape

- [Skip Trace Pro](https://apify.com/intelscrape/skip-trace-pro)
- [TruePeopleSearch Scraper](https://apify.com/intelscrape/truepeoplesearch-scraper)
- [TikTok Email Scraper](https://apify.com/intelscrape/tiktok-scraper)
- [Amazon Product Reviews Scraper](https://apify.com/intelscrape/amazon-product-review-scraper)
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper)
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace)

⚡ Works with n8n, Make, Zapier, Google Sheets and the Apify API.

![price](https://img.shields.io/badge/price-%2420%20per%201K%20checks-blue) ![billing](https://img.shields.io/badge/billing-pay%20per%20check-green) ![API key](https://img.shields.io/badge/API%20key-not%20required%20%28optional%20BYOK%29-brightgreen) ![engines](https://img.shields.io/badge/engines-AI%20Overviews%20%2B%203%20BYOK-orange)

**Measure your brand's share of voice in AI answers: mentions, position, citations and competitors for every prompt, with Google top 10 included.**

> **Honest coverage & billing:** Google AI Overviews appear only for some queries and vary by run, time and location. You pay only for results actually delivered, and a built-in cost guard stops the run at your max-charge limit.

🌍 Built for teams in the **US, China and Singapore**, and anyone who needs this data in a spreadsheet or pipeline.

⭐ Found it useful? Please leave a review; it helps others find it.

⚖️ **Lawful business use only.** Collect public data only, and comply with the source site's terms, copyright and data-protection laws (GDPR, CCPA, China PIPL, Singapore PDPA).

*Examples below are illustrative; names and values may be fictional or out of date.*

### What is AI Search Visibility Tracker?

Buyers now ask AI before they click. **AI Search Visibility Tracker** runs the questions your customers ask and reports whether your brand appears in the answer, where it ranks against competitors, and whether your site is cited as a source, starting with **Google AI Overviews (no API key needed)** and optionally **ChatGPT, Perplexity and Gemini** with your own keys.

### What does it do?

- **Google AI Overviews**: is there an AI Overview, is your brand in it, at what position, and is your domain cited?
- **Google top 10 organic results** on every Google check, plus whether your domain ranks there
- **Competitor share of voice**: mentions and citations for each competitor
- **Brands ranked by first mention** in each answer
- **Citations**: the sources the AI answer links to
- **Full answer text (on by default)** for audits and screenshots
- **ChatGPT, Perplexity, Gemini (optional)**: with your own API keys, billed to your accounts

### Why choose us over cheaper scrapers?

- **Honest output**: limits are documented, missing data is labeled, never invented
- **Clean, consistent schema** ready for Excel, Sheets, BI tools or an LLM
- **No account risk**: no logins, no cookies
- **Pay per result** with a cost guard; no subscription
- **Maintained by IntelScrape** and fixed fast when the source changes

### Who is it for?

- **GEO / AEO (generative engine optimisation)**: track AI visibility like rankings
- **SEO agencies**: monthly AI-visibility reports for clients
- **Brand & PR teams**: see how AI describes you versus competitors
- **Content strategy**: find prompts where competitors are cited and you are not
- **Product marketing**: monitor category questions ("best X for Y")
- **Investor & market research**: see which vendors AI recommends in a category

### How to use it

#### In Apify Console (no code)

1. Click **Try for free** / **Start**. The form is prefilled with a working example.
2. Change the inputs (see examples below).
3. Click **Start**, then export the results as **JSON, CSV, Excel, XML or HTML**, or open them in Google Sheets.
4. Optional: **Schedule** the actor to run hourly, daily or weekly.

#### Via API

```bash
curl -X POST "https://api.apify.com/v2/acts/intelscrape~ai-search-visibility-tracker/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"prompts": ["best crm for small business", "hubspot vs salesforce for startups", "easiest crm to use"], "brandName": "HubSpot", "brandDomains": ["hubspot.com"], "competitors": ["Salesforce", "Zoho", "Pipedrive", "monday.com"], "engines": ["google_ai_overview"], "includeAnswerText": true}'
```

Or use the official [Apify JavaScript](https://docs.apify.com/api/client/js/) and [Python](https://docs.apify.com/api/client/python/) clients:

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("intelscrape/ai-search-visibility-tracker").call(run_input={"prompts": ["best crm for small business", "hubspot vs salesforce for startups", "easiest crm to use"], "brandName": "HubSpot", "brandDomains": ["hubspot.com"], "competitors": ["Salesforce", "Zoho", "Pipedrive", "monday.com"], "engines": ["google_ai_overview"], "includeAnswerText": true})
for item in client.dataset(run["default_dataset_id"]).iterate_items():
    print(item)
```

#### With AI agents (MCP)

Add Apify's MCP server (`https://mcp.apify.com`) or the [IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace) to Claude Desktop, Cursor, ChatGPT or any MCP client, then ask in plain language, e.g. *"Run intelscrape/ai-search-visibility-tracker with the default input and summarise the results."*

### Input examples

**Default: Google AI Overviews, 3 prompts**

```json
{
  "prompts": ["best crm for small business", "hubspot vs salesforce for startups", "easiest crm to use"],
  "brandName": "HubSpot",
  "brandDomains": ["hubspot.com"],
  "competitors": ["Salesforce", "Zoho", "Pipedrive", "monday.com"],
  "engines": ["google_ai_overview"],
  "includeAnswerText": true
}
```

**Add ChatGPT and Perplexity with your keys**

```json
{
  "prompts": ["best project management tool"],
  "brandName": "Asana",
  "engines": ["google_ai_overview", "openai", "perplexity"],
  "openaiApiKey": "sk-...",
  "perplexityApiKey": "pplx-..."
}
```

### Output fields

| Field | Description |
|---|---|
| `prompt / engine / model` | What was checked, where |
| `answerPresent` | Did the engine produce an AI answer? |
| `brandMentioned / brandPosition / brandCited` | Your visibility |
| `brand` | Mentions count, cited URLs, position |
| `competitors` | The same metrics for each competitor |
| `brandsRankedByFirstMention` | Order brands appear in the answer |
| `citations` | Sources linked by the answer |
| `answerText` | Full AI answer text |
| `googleTopResults / brandInGoogleTop10` | Google organic top 10 (Google checks) |
| `note / error` | Why an answer is missing, or an engine error |

#### Sample output

```json
{
  "prompt": "best crm for small business",
  "engine": "google_ai_overview",
  "answerPresent": true,
  "brandMentioned": true,
  "brandPosition": 1,
  "brandCited": false,
  "brandsRankedByFirstMention": ["HubSpot", "Zoho"],
  "citations": [{ "title": "PCMag", "url": "https://www.pcmag.com/…" }],
  "brandInGoogleTop10": true
}
```

### Pricing (pay per event)

| Event | When it is charged | Price |
|---|---|---|
| **Actor start** | once per run | $0.005 |
| **Google AI Overview check** | per prompt (includes Google top 10) | $0.02 |
| **AI check with your key** | per prompt per engine (ChatGPT, Perplexity or Gemini) | $0.01 |

#### Cost examples

| Run | Cost |
|---|---|
| Default run: 3 prompts on Google AI Overviews | up to $0.065 |
| 50 prompts on Google | $1.005 |
| 50 prompts on Google + ChatGPT + Perplexity (your keys) | $2.005 + your own API usage |

Platform usage is included in these prices. Set **Max charge per run** in the run options to cap spend; the actor stops cleanly when the limit is reached and keeps everything collected so far.

### FAQ

#### Do I need an API key?

No for Google AI Overviews. ChatGPT, Perplexity and Gemini need your own API key (usage is billed to your account by that provider).

#### Why did a prompt show no AI Overview?

Google shows AI Overviews only for some queries, and it varies by time and location. "answerPresent": false is a real result; the Google top 10 is still returned.

#### Do you scrape the ChatGPT or Perplexity websites?

No. Those engines are checked through their official APIs with your key. API answers can differ from the consumer apps.

#### How is share of voice calculated?

For each answer we count which brands are mentioned, their first-mention order and which domains are cited; aggregate across prompts for share of voice.

#### Which countries and languages?

Set "country" and "language" for Google (e.g. us/en, gb/en, de/de).

#### Am I charged when no AI Overview appears?

Yes, when Google confirms there is no AI Overview, because the check still returns that result and the Google top 10. Checks that could not be read (blocked, or the AI Overview was still loading) and engine errors are saved but not charged.

#### How often should I run it?

Weekly or monthly is typical. AI answers change, so schedule it to see the trend.

#### Can I track many brands at once?

Add competitors to each run; their mentions and citations are measured in the same check.

#### Can an AI agent use it?

Yes, via the Apify API or the IntelScrape MCP server.

### Honest limits

- Google AI Overviews appear only for some queries and vary by run, time and location.
- ChatGPT, Perplexity and Gemini require your own API keys and are checked via their APIs, not their websites.
- Results are a snapshot; schedule runs to measure change.
- Charged per prompt checked, not per mention found.

### Related IntelScrape bots

- [Keyword Search Volume](https://apify.com/intelscrape/keyword-search-volume): estimated monthly Google searches
- [Google News Scraper](https://apify.com/intelscrape/google-news-scraper): headlines & summaries
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper): emails, phones & socials from sites
- [Weibo Scraper](https://apify.com/intelscrape/weibo-scraper): 微博 hot search, posts, comments
- [Bilibili Scraper](https://apify.com/intelscrape/bilibili-scraper): B站 videos, views, comments
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace): IntelScrape tools for AI agents

### Legal

This actor collects publicly available data only. You are responsible for using the results lawfully and in line with the source's terms and applicable privacy laws (GDPR, CCPA, PIPL, PDPA). Process personal data only with a legitimate purpose. IntelScrape is not affiliated with, endorsed by or sponsored by the data source; all trademarks belong to their owners.

# Actor input Schema

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

Questions your customers ask AI search, one per line (up to 500).

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

Brand name to look for in AI answers.

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

Other names or product names, e.g. 'HubSpot CRM'.

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

Your website domains, used to detect when AI cites you as a source.

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

Competitor names or domains for share of voice.

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

Google AI Overviews works out of the box. ChatGPT, Perplexity and Gemini need your own API key below (billed to your account).

## `country` (type: `string`):

Two-letter country code for Google AI Overviews.

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

Interface language for Google.

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

Enables ChatGPT (Responses API with web search).

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

Model used with the web_search tool.

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

Enables Perplexity Sonar.

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

sonar, sonar-pro...

## `geminiApiKey` (type: `string`):

Enables Gemini with Google Search grounding.

## `geminiModel` (type: `string`):

Gemini model name.

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

Save the AI answer text with each check.

## Actor input object example

```json
{
  "prompts": [
    "best crm for small business",
    "hubspot vs salesforce for startups",
    "easiest crm to use"
  ],
  "brandName": "HubSpot",
  "brandAliases": [],
  "brandDomains": [
    "hubspot.com"
  ],
  "competitors": [
    "Salesforce",
    "Zoho",
    "Pipedrive",
    "monday.com"
  ],
  "engines": [
    "google_ai_overview"
  ],
  "country": "us",
  "language": "en",
  "openaiModel": "gpt-4.1-mini",
  "perplexityModel": "sonar",
  "geminiModel": "gemini-2.5-flash",
  "includeAnswerText": true
}
```

# Actor output Schema

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

No description

# 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": [
        "best crm for small business",
        "hubspot vs salesforce for startups",
        "easiest crm to use"
    ],
    "brandName": "HubSpot",
    "brandDomains": [
        "hubspot.com"
    ],
    "competitors": [
        "Salesforce",
        "Zoho",
        "Pipedrive",
        "monday.com"
    ],
    "engines": [
        "google_ai_overview"
    ],
    "includeAnswerText": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/ai-search-visibility-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": [
        "best crm for small business",
        "hubspot vs salesforce for startups",
        "easiest crm to use",
    ],
    "brandName": "HubSpot",
    "brandDomains": ["hubspot.com"],
    "competitors": [
        "Salesforce",
        "Zoho",
        "Pipedrive",
        "monday.com",
    ],
    "engines": ["google_ai_overview"],
    "includeAnswerText": True,
}

# Run the Actor and wait for it to finish
run = client.actor("intelscrape/ai-search-visibility-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": [
    "best crm for small business",
    "hubspot vs salesforce for startups",
    "easiest crm to use"
  ],
  "brandName": "HubSpot",
  "brandDomains": [
    "hubspot.com"
  ],
  "competitors": [
    "Salesforce",
    "Zoho",
    "Pipedrive",
    "monday.com"
  ],
  "engines": [
    "google_ai_overview"
  ],
  "includeAnswerText": true
}' |
apify call intelscrape/ai-search-visibility-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,intelscrape/ai-search-visibility-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/uq67CueLnLapLodzD/builds/9jElRObgaNeMmvzl4/openapi.json
