AI Search Visibility Tracker — AEO & Citation Audit
Pricing
from $90.00 / 1,000 keyword visibility checks
AI Search Visibility Tracker — AEO & Citation Audit
Check if your domain gets cited by Perplexity, ChatGPT, Claude & Gemini. Tracks citation rank, content gaps & competing domains per keyword. AEO audit. MCP/API-ready.
Pricing
from $90.00 / 1,000 keyword visibility checks
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
2
Bookmarked
40
Total users
16
Monthly active users
4 days ago
Last modified
Share
AI Search Visibility Tracker — AEO & Citation Audit is an Apify Actor for SEO teams, content marketers, website owners, and agencies that want to check whether a target domain is cited by AI search platforms. You provide a domain, topic keywords, and optional target URLs, competitor domains, platform choices, and query templates. The actor returns one record per keyword, query, and platform combination, so each record represents a single visibility check. The returned fields show whether the domain was cited, where it appeared in the source list, which page was cited, whether a content gap was detected, how many sources were cited overall, which competing domains appeared, and a short excerpt of the AI answer. The output helps you review citation presence and the pages associated with AI search visibility.
Best fit and connected workflows
This Actor fits workflows where you want to audit topic-level AI citations for a website rather than track brand mentions. It is useful when you already have a list of topics, page URLs, or competitor domains and want to compare citation patterns across Perplexity, ChatGPT, Claude, and Gemini.
Common workflow paths:
- Topic planning: execution keywords first, then review
content_gapandcompeting_domainsto shape content updates. - Page review: add
targetUrlswhen you want to see whether specific pages are cited. - Competitor comparison: set
competitorDomainsto focus the result set on selected rival domains. - Follow-up analysis: use the output records to pick pages for deeper review in AI Overviews Tracker - Brand Visibility in AI Answers when you have a returned public URL or ID and need downstream detail data.
- Automation: send the run summary to a webhook for reporting, dashboards, or team notifications.
Practical scenario
Maya is a content strategist at a SaaS company. She starts with targetDomain set to example.com, adds topics like "keyword research" and "site audits", and includes a few target page URLs from her content library. After the run, she reviews records where domain_cited is false and content_gap is true. She also checks cited_page_url, citation_rank, and competing_domains to see which pages from her site were cited and which rival domains appeared instead. Her next step is to refresh the pages that were absent from AI citations and schedule another run to compare the next audit.
Input fields
| Field | Type | Purpose |
|---|---|---|
targetDomain | string | Domain to track, entered without https:// or www |
keywords | array of strings | Topic queries to check across AI platforms |
targetUrls | array of strings | Optional exact page URLs from the target domain |
competitorDomains | array of strings | Optional competitor domains to highlight in results |
platforms | array of strings | AI platforms to query: perplexity, chatgpt, claude, gemini |
queryTemplates | array of strings | Built-in query categories such as topic_authority, how_to, what_is, comparison, expert_picks |
customQueries | array of strings | Plain-English questions to submit for every keyword |
maxQueriesPerKeyword | integer | Maximum number of unique queries per keyword, from 1 to 10 |
responseFormat | string | concise or detailed excerpt storage |
webhookUrl | string | HTTPS endpoint that receives the run summary on completion |
demoMode | boolean | Health-check mode that confirms the Actor works without AI API calls |
Focused input example
{"targetDomain": "ahrefs.com","keywords": ["SEO", "keyword research", "backlink analysis"],"targetUrls": ["https://ahrefs.com/blog/seo-basics/"],"competitorDomains": ["semrush.com", "moz.com"],"platforms": ["perplexity", "chatgpt", "gemini"],"queryTemplates": ["topic_authority", "how_to", "what_is"],"maxQueriesPerKeyword": 3,"responseFormat": "detailed","demoMode": false}
Output fields
Each dataset item is one check for one keyword, query, and platform combination.
| Field | Type | Purpose |
|---|---|---|
run_id | string | Apify run ID for grouping records |
platform | string | Platform that produced the result |
keyword | string | Topic or keyword tested |
query | string | Exact question submitted |
query_template | string | Template source for the query |
target_domain | string | Normalized tracked domain |
domain_cited | boolean | Whether any URL from the target domain was cited |
citation_rank | integer or null | 1-based position of the first target-domain URL in the cited sources |
domain_citation_count | integer | Number of distinct target-domain URLs cited |
cited_page_url | string or null | First cited page from the target domain |
cited_pages | array of strings | All cited pages from the target domain |
page_from_targets_cited | boolean | Whether one of the configured target URLs was cited |
content_gap | boolean | Whether the AI cited sources for the query without citing the target domain |
total_sources_cited | integer | Total cited URLs in the AI response |
ai_coverage_ratio | number | Fraction of cited sources that belong to the target domain |
competing_domains | array of strings | Other cited domains in the response |
ai_answer_excerpt | string | Stored excerpt of the AI answer |
model_used | string | Model identifier used for the check |
checked_at | string | ISO 8601 timestamp of the check |
Illustrative output record
{"run_id": "abc123XYZ","platform": "perplexity","keyword": "SEO","query": "What are the suitable resources and guides for learning about SEO?","query_template": "topic_authority","target_domain": "ahrefs.com","domain_cited": true,"citation_rank": 2,"domain_citation_count": 2,"cited_page_url": "https://ahrefs.com/blog/seo-basics/","cited_pages": ["https://ahrefs.com/blog/seo-basics/","https://ahrefs.com/blog/keyword-research/"],"page_from_targets_cited": false,"content_gap": false,"total_sources_cited": 7,"ai_coverage_ratio": 0.29,"competing_domains": ["semrush.com", "moz.com", "backlinko.com"],"ai_answer_excerpt": "When it comes to learning SEO, several resources stand out as authoritative...","model_used": "perplexity/sonar","checked_at": "2026-05-01T14:30:00.000Z"}
How it works
The Actor submits topic-based queries to the selected AI search platforms and checks whether the target domain appears in the cited sources for each response. It uses built-in query templates such as topic authority, how-to, and what-is, and it can also run custom questions. When targetUrls are provided, the Actor also checks whether those exact pages appear in the citation list. The dataset records the citation position, the cited pages, competing domains, and a response excerpt for review. A run summary is stored in the key-value store as LAST_RUN_SUMMARY, and optional webhook delivery sends that summary to your endpoint after completion.
Pricing
This Actor uses Pay per event pricing on the Apify platform. Each keyword-visibility-checked event represents one keyword x one query x one AI platform check, and AI API costs are included in the event price. There is also a standard Apify actor start charge for compute usage. For the current pricing details, open the live Pricing tab on the Actor page.
Example: if you run 5 keywords across 3 queries on 2 platforms, that produces 30 keyword visibility checks, plus the Apify platform usage for the run start.
Use with AI agents (MCP)
This Actor is available through Apify MCP as the Actor identity khadinakbar/ai-search-visibility-tracker. It is suited for agent workflows that need to inspect AI citations for a domain and topic set, then read the resulting dataset records or run summary.
Tool behavior:
- Input: domain, topics, optional target URLs, optional competitors, platforms, and query templates
- Output: one record per keyword-query-platform check, with citation status, rank, cited pages, competing domains, and an excerpt
- Provenance: records reflect the platform used for each check and include
checked_atplusmodel_used - Scope: topic-based citation tracking for website domains, with optional exact-page tracking
- Pagination/cost guidance: larger keyword, query, and platform combinations increase the number of checked events
Check whether
example.comis cited as a source for "keyword research" and "site audits" across Perplexity, ChatGPT, and Gemini. Return the dataset records and summarize which pages were cited, which topics produced content gaps, and which competing domains appeared most often.
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/ai-search-visibility-tracker').call({targetDomain: 'ahrefs.com',keywords: ['SEO', 'keyword research'],platforms: ['perplexity', 'chatgpt', 'gemini'],maxQueriesPerKeyword: 3,responseFormat: 'detailed',});const dataset = client.dataset(run.defaultDatasetId);const { items } = await dataset.listItems();for (const item of items) {console.log(item.keyword, item.platform, item.domain_cited, item.citation_rank);}
Best results and outcome guidance
Start with a small set of tightly related topics that match the content on your domain. Add targetUrls when you already know which pages you want to audit. Use competitorDomains when you want the result set to focus on selected rivals. Keep queryTemplates aligned with the kind of questions your audience asks, and use customQueries when you have specific prompts that mirror real user intent. For trend work, keep the input structure stable across runs so the run_id, citation rank, and cited page patterns are easy to compare.
Design note
I found that the dataset contract includes both cited_page_url and cited_pages, which makes the record useful for seeing the first cited page and the full set of cited pages in the same check.
FAQ
Is this Actor for brand mentions or domain citations?
It is for domain and page citations in AI search answers. For brand-name tracking, use the ai-search-brand-monitor workflow referenced in the input description.
Which platforms are available by default?
Perplexity, ChatGPT, and Gemini are the default platform choices in the input schema. Claude is available when you add it explicitly for deeper audits.
What does content_gap mean?
It marks checks where the AI cited sources for the query and none of the cited sources came from the target domain.
How should I use citation_rank?
Use it as the 1-based position of the first target-domain URL in the cited source list. Lower values indicate the domain appears earlier in the list.
Can I focus the audit on specific competitors?
Yes. Set competitorDomains to the domains you want to emphasize in the competing_domains field.
Can I receive the run summary outside Apify?
Yes. Set webhookUrl to an HTTPS endpoint to receive the full run summary JSON when the Actor finishes.
Related Actors
- AI Overviews Tracker - Brand Visibility in AI Answers - Use it after this Actor when you have a returned public URL or ID and want downstream detail data for selected AI records.
Responsible use
Use this Actor for legitimate SEO research, content strategy, and website analytics. Review the terms of service for each AI platform you query, and make sure any scheduled audits fit your internal data handling and automation policies.