SERP + AI Answer Monitor avatar

SERP + AI Answer Monitor

Pricing

from $40.00 / 1,000 keyword checkeds

Go to Apify Store
SERP + AI Answer Monitor

SERP + AI Answer Monitor

For each keyword: your Google rank, whether an AI Overview appeared and cited you, and whether ChatGPT, Claude, Gemini or Perplexity name your domain. Diff against your last snapshot. Pay per keyword.

Pricing

from $40.00 / 1,000 keyword checkeds

Rating

0.0

(0)

Developer

Laxman Kafle

Laxman Kafle

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Categories

Share

One keyword list, two answers: where you rank on Google, and whether Google's AI Overview, ChatGPT, Claude, Gemini and Perplexity name you.

Rank trackers tell you position 1–100. They don't tell you that an AI Overview now sits above position 1 citing three competitors, or that Perplexity recommends someone else when a buyer asks the same question. This Actor checks both for every keyword and scores them separately, so an SEO report can show "search visibility" and "AI visibility" side by side — and what changed since last time.

What you get

For one domain and up to 200 keywords, per keyword:

FieldWhat it tells you
rankGoogle organic position of your domain (1–100) or null
rankedUrlThe page that ranks
topUrls[]Top 10 organic URLs for the keyword
aiOverview.presentGoogle showed an AI Overview for this query
aiOverview.citedYour domain is one of the overview's sources
aiEngines[]Per engine: named or not, rank among the domains it mentioned, cited as a source, snippet
searchVisibility0–100: rank curve, adjusted for being cited / not cited in an AI Overview
aiVisibility0–100: presence and position across the AI assistants
diffvs. your previous snapshot: rank up / down / new / lost, citations gained / lost per engine

Plus overall searchVisibility, aiVisibility, a summary (top 3, top 10, AI Overviews seen/cited, AI mentions), a changes block listing improved / declined / newly cited / lost keywords, and a compact snapshot to feed into the next run.

Example (one keyword, trimmed):

{
"keyword": "best note taking app",
"rank": 2,
"rankedUrl": "https://www.notion.so/product",
"topUrls": ["https://zapier.com/blog/best-note-taking-apps/", "https://www.notion.so/product", "..."],
"aiOverview": { "present": true, "cited": true, "citedUrls": ["https://zapier.com/...", "https://www.notion.so/help/..."] },
"aiEngines": [
{ "engine": "openai", "mentioned": true, "rank": 2, "domainsMentioned": ["obsidian.md", "notion.so", "evernote.com"], "cited": false },
{ "engine": "perplexity", "mentioned": true, "rank": 1, "domainsMentioned": ["notion.so", "obsidian.md"], "cited": true }
],
"searchVisibility": 97,
"aiVisibility": 93,
"diff": { "previousRank": 5, "rankChange": 3, "rankDirection": "up", "aiOverviewCitation": "gained", "aiEngines": [{ "engine": "openai", "change": "unchanged" }, { "engine": "perplexity", "change": "gained" }] }
}

The dataset has one flat row per keyword (ready for Google Sheets / Looker). The full report, summary and snapshot are in the run's key-value store as REPORT, REPORT_SUMMARY and SNAPSHOT.

Who uses this

  • SEO agencies adding an "AI answers" column to monthly rank reports without a second tool.
  • SEO platforms and dashboards that want an AI Overview + assistant feed per keyword via API.
  • In-house SEO / content teams watching which queries lost clicks to AI Overviews and whether they are cited in them.
  • AI agents that need a structured "how visible is this site for these queries" answer.

Pricing

Pay per event. No subscription.

  • $0.04 per keyword checked (Google rank, top 10, AI Overview status)
  • $0.03 per AI check (one engine × one keyword)

50 keywords on Google plus ChatGPT and Perplexity: 50 × $0.04 + 100 × $0.03 = $5.00. Google-only for 100 keywords: $4.00.

Google results are cached for 6 hours and AI answers for 24 hours, so re-running the same list the same day (for example after fixing an input) costs nothing extra upstream.

Bring your own keys: the Google lookups use SerpAPI. Add your own SerpAPI key — and optionally OpenAI / Anthropic / Google AI / Perplexity keys — in the input to run on your quota. Per-event prices stay the same; upstream usage is then on your accounts.

Input

FieldRequiredNotes
domainyesnotion.so — subdomains count
keywordsyes1–200 queries
brandNotion — how assistants name you; defaults to the domain label
countryGoogle gl, default us
languageGoogle hl, default en
enginessubset of openai, anthropic, google, perplexity; empty = all configured
previousSnapshotthe SNAPSHOT object from a previous run, enables diff and changes
serpApiKeybring your own SerpAPI key
openaiApiKey, anthropicApiKey, googleApiKey, perplexityApiKeybring your own AI keys

Use from code or an AI agent

Apify API (Node), with week-over-week diff:

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const previousSnapshot = await fs.readFile("snapshot.json", "utf8").then(JSON.parse, () => undefined);
const run = await client.actor("exepal/serp-ai-monitor").call({
domain: "notion.so", brand: "Notion",
keywords: ["best note taking app", "notion alternatives"],
country: "us", engines: ["openai", "perplexity"], previousSnapshot,
});
const kv = client.keyValueStore(run.defaultKeyValueStoreId);
const { value: report } = await kv.getRecord("REPORT");
await fs.writeFile("snapshot.json", JSON.stringify(report.snapshot));
console.log(report.searchVisibility, report.aiVisibility, report.changes);

Scheduled monitoring: create an Apify Schedule for the Actor and pass the last run's SNAPSHOT as previousSnapshot (an Apify webhook or a 10-line integration task does this). Each run then reports what moved.

MCP (Claude, ChatGPT, Cursor): add exepal/serp-ai-monitor to the Apify MCP server at https://mcp.apify.com and ask: "Check where notion.so ranks for 'best note taking app' and 'notion alternatives' in the US, and whether ChatGPT and Perplexity mention it." The agent fills the input and pays per keyword.

Direct HTTP with USDC (x402): the same tool is available at https://api.exepal.com/v1/serp-ai-monitor for agents that pay per request in stablecoins. See exepal.com.

How it works

  1. For each keyword, fetches the Google results page for your country and language through SerpAPI: organic results, and the ai_overview block when Google rendered one (including its source links).
  2. Asks each configured AI engine a neutral question — "Answer the query: <keyword>. Name specific websites or companies." — with no hint of your brand, so this measures unprompted recall.
  3. Parses every answer for domain names and your brand name, ranks your position among the domains named, and checks the engine's citations (Gemini grounding, Perplexity sources) for your domain.
  4. Scores: searchVisibility follows a click-curve (position 1 = 100, position 10 ≈ 30, page 2 = 15) and is lifted when an AI Overview cites you, lowered when one appears and doesn't. aiVisibility averages presence across engines (first-named = 100, each later position −15).
  5. If you passed a previous snapshot, diffs rank and citations per keyword and lists what improved, declined, was newly cited or lost.

Limits and notes

  • Ranks come from a single fetch per keyword; Google personalises and rotates results, so treat ±2 positions as noise and track trends.
  • AI Overviews are shown for a subset of queries and vary by country; present: false means none was rendered for that fetch.
  • Domain detection in AI answers is regex-based plus brand-name matching. Common-word brands (e.g. "Monday") can over-match; set brand to the exact form assistants use.
  • Keyword lists above 200 are truncated; split into several runs.

About Exepal

Exepal builds paid, agent-ready tools: upstream APIs in, computed answers out. Questions or custom runs: contact@laxmankafle.com