# Google AI Overview Checker — Is My Brand Cited by Google AI? (`highbrow_fame/ai-overview-citation-checker`) Actor

AI Overview citation checker: which sites Google AI Overviews cite for your keywords ($0.03 per keyword). Shows if your domain is cited, at what position, and who else is. English Google.

- **URL**: https://apify.com/highbrow_fame/ai-overview-citation-checker.md
- **Developed by:** [yestrue](https://apify.com/highbrow_fame) (community)
- **Categories:** SEO tools, AI, Marketing
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $21.00 / 1,000 keyword checkeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Google AI Overview Brand Citation Checker

**$0.03 per keyword checked: 50 keywords cost $1.50, and the free sample run checks your first 3 keywords with no keyword fee.**

Is your website one of the sources Google's AI Overview cites? Give this Actor your keywords and your domains and it answers, for every keyword: **does Google show an AI Overview, is one of your domains cited in it, at which position, and which competitors are cited next to you.** One clean row per keyword, ready for a spreadsheet, a dashboard or an API call.

It reads the Google results page the way a visitor sees it (through Apify's Google search proxy), so you do not need a Google account, an API key or a browser of your own.

**Try it in one minute:**

1. Press **Start**. The prefilled input checks three everyday keywords against `spotify.com` and three competitor domains.
2. Open the **Output** tab: each keyword has `aiOverviewShown`, `youCited`, `yourBestPosition`, `competitorsCited` and the full list of source domains.
3. Replace the prefill with your own keywords and domains, or tick **Free sample run** to check your first 3 keywords without any keyword fee.

### More AI visibility tools from highbrow_fame

| Tool | Question it answers | Price |
| --- | --- | --- |
| [AI Brand Monitor](https://apify.com/highbrow_fame/ai-search-visibility-tracker) | Is my brand cited by ChatGPT, Perplexity and Gemini? | $0.05 per answer; [full audit $4.80](https://apify.com/highbrow_fame/ai-search-visibility-tracker/examples/full-ai-visibility-audit-5-dollars) |
| [AI share of voice](https://apify.com/highbrow_fame/ai-brand-share-of-voice) | Which brands do ChatGPT, Perplexity and Gemini name in my category, and how often is mine named vs competitors? | $0.08 per prompt |
| [Page citation checker](https://apify.com/highbrow_fame/ai-page-citation-checker) | Is this URL cited by ChatGPT, Perplexity or Gemini? | $0.12 per URL |
| [Shopify AI Readiness Audit](https://apify.com/highbrow_fame/shopify-ai-readiness-audit) | Is my Shopify catalog ready for AI shopping assistants? | $0.01 per store |

### What you get for each keyword

| Field | What it tells you |
| --- | --- |
| `aiOverviewShown` | `true` if Google showed an AI Overview for this search, `false` if it did not |
| `youCited` | `true` if at least one cited source is on one of your domains (subdomains count) |
| `yourCitedUrls` | the exact pages of yours that are cited |
| `yourBestPosition` | where your best source sits in the overview's source list (1 = first) |
| `competitorsCited` | `[{ domain, position, url }]` for each competitor domain found in the same overview |
| `allSourceDomains` | every website the overview cites, in the order Google lists them |
| `status` / `error` | `OK`, or `FAILED` with the reason (free) |
| `country`, `language`, `checkedAt` | what was checked and when |

#### Sample output

```json
{
  "keyword": "how to start a podcast",
  "status": "OK",
  "aiOverviewShown": true,
  "youCited": true,
  "yourCitedUrls": ["https://creators.spotify.com/resources/start-a-podcast"],
  "yourBestPosition": 2,
  "competitorsCited": [
    { "domain": "reddit.com", "position": 3, "url": "https://www.reddit.com/r/podcasting/" },
    { "domain": "buzzsprout.com", "position": 4, "url": "https://www.buzzsprout.com/blog/how-to-start-a-podcast" }
  ],
  "allSourceDomains": ["supportingcast.fm", "creators.spotify.com", "reddit.com", "buzzsprout.com"],
  "country": "us",
  "language": "en",
  "checkedAt": "2026-10-22T10:56:28.919Z",
  "error": null
}
```

A keyword where Google shows no AI Overview comes back with `aiOverviewShown: false` and `youCited: false`, so a whole keyword list sorts into three piles: no overview, overview without you, overview with you.

### Input

- **Keywords to check** (required): up to 200 searches, written as a person would type them.
- **Your domain(s)** (required): bare hostnames such as `example.com`. A subdomain of a domain you list counts as yours.
- **Competitor domain(s)**: optional, empty by default.
- **Google country**: two-letter code (`us`, `gb`, `ca`, `au` ...). AI Overviews differ by country, so check the market you sell in.
- **Free sample run**: checks the first 3 keywords with no keyword fee.
- **Parallel checks**: 1-5 keywords at a time (default 3).

### Price

**$0.03 per keyword checked** (pay per event). You are charged only for keywords whose Google page was actually read, whether or not an AI Overview was shown. Keywords that could not be read (`status: FAILED`: bot check, page did not load, overview still being written) are not charged. Set a maximum charge on the run and it stops cleanly when the budget is used up. The sample run charges no keyword fee; Apify's small per-run start fee applies to every run on the platform.

Typical speed: about 10-20 seconds per keyword, three at a time.

### Honest limits

- **English only.** Google's AI Overview does not finish loading through the search proxy in other languages, so this Actor reads English-language Google (`hl=en`). The `country` setting changes the market, not the language. For citation checks in 24 languages use the AI Search Visibility Tracker linked below.
- **AI Overviews do not appear for every search.** Google decides per query, per country and per moment. `aiOverviewShown: false` means no overview was on the page at that time, not that one never appears.
- **One snapshot per keyword.** Overviews change from one request to the next; a single check is a sample, not a ranking. Run the same list on a schedule to see the trend.
- **Position means order in the source list.** Each website is counted once, in the order Google lists its sources; position 1 is the first source. It is not a click-through or visibility measurement.
- **Google can refuse.** If Google answers with a bot check, that keyword comes back `FAILED` (free) and is not retried or worked around. After three bot checks in a row the run stops instead of pushing on.
- **Google's page layout changes.** The Actor reads the page as rendered; if Google reshuffles it, results can come back empty until the Actor is updated.
- Not affiliated with or endorsed by Google. Only publicly visible search results are read; there is no login and no personal data.

### FAQ

**Can I schedule it?** Yes. Use an Apify schedule and compare the datasets, or pipe the dataset into your own sheet through the API.

**Why is a keyword failed?** Read the `error` field. It is free either way.

**Does it check ChatGPT or Perplexity?** No, only Google's AI Overview. The AI Brand Monitor in the table above covers the others.

If this Actor was useful, an honest review on its Store page helps other people find and judge it.

# Actor input Schema

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

The Google searches to check, exactly as a person would type them, for example "best project management software". One result row per keyword. Up to 200 per run.

## `yourDomains` (type: `array`):

Domains you own, bare hostnames such as "example.com" (no https://, no www.). A subdomain of a domain you list counts as yours: "blog.example.com" matches "example.com".

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

Optional. Domains to look for in the same AI Overview. For each keyword the result lists which of them are cited and at which position.

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

Two-letter country code Google answers as, for example us, gb, ca, au. AI Overviews differ by country, so pick the market you sell in. The results are in English whatever the country.

## `sampleRun` (type: `boolean`):

Checks only the first 3 keywords and charges no keyword fee, so you can see real output before paying. The platform's small run-start fee still applies.

## `maxConcurrency` (type: `integer`):

How many keywords are read at the same time (1-5). Each one opens its own browser. Lower it if you see timeouts.

## Actor input object example

```json
{
  "keywords": [
    "how to start a podcast",
    "how to repot a monstera",
    "how to remove a red wine stain"
  ],
  "yourDomains": [
    "spotify.com"
  ],
  "competitorDomains": [
    "buzzsprout.com",
    "reddit.com",
    "thespruce.com"
  ],
  "country": "us",
  "sampleRun": false,
  "maxConcurrency": 3
}
```

# Actor output Schema

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

One row per keyword: whether an AI Overview was shown, whether you are cited, your best position, the competitors cited and every source domain.

## `resultsCsv` (type: `string`):

The same rows as CSV, for a spreadsheet.

# 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 = {
    "keywords": [
        "how to start a podcast",
        "how to repot a monstera",
        "how to remove a red wine stain"
    ],
    "yourDomains": [
        "spotify.com"
    ],
    "competitorDomains": [
        "buzzsprout.com",
        "reddit.com",
        "thespruce.com"
    ],
    "country": "us"
};

// Run the Actor and wait for it to finish
const run = await client.actor("highbrow_fame/ai-overview-citation-checker").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 = {
    "keywords": [
        "how to start a podcast",
        "how to repot a monstera",
        "how to remove a red wine stain",
    ],
    "yourDomains": ["spotify.com"],
    "competitorDomains": [
        "buzzsprout.com",
        "reddit.com",
        "thespruce.com",
    ],
    "country": "us",
}

# Run the Actor and wait for it to finish
run = client.actor("highbrow_fame/ai-overview-citation-checker").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 '{
  "keywords": [
    "how to start a podcast",
    "how to repot a monstera",
    "how to remove a red wine stain"
  ],
  "yourDomains": [
    "spotify.com"
  ],
  "competitorDomains": [
    "buzzsprout.com",
    "reddit.com",
    "thespruce.com"
  ],
  "country": "us"
}' |
apify call highbrow_fame/ai-overview-citation-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,highbrow_fame/ai-overview-citation-checker"
        }
    }
}
```

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/LOfqWrDo6D2fF7b21/builds/XACyRnhdYlhfwvXCY/openapi.json
