Citations and Mentions
AI provider responses may contain citations (URL references to web pages) and mentions (textual references to brand names). These are extracted and stored for each prompt run.
Brand citations
Brand citations are aggregated by URL, giving you a view of which pages are most frequently cited for a brand. Each result includes the AI providers and topics that cited the URL.
query GetAiVisibilityBrandCitations(
$accountId: ObjectID!
$aiVisibilityProjectId: ObjectID!
$aiVisibilityBrandId: ObjectID!
$dateRange: AiVisibilityDateRangeInput
) {
getAiVisibilityBrandCitations(
accountId: $accountId
aiVisibilityProjectId: $aiVisibilityProjectId
aiVisibilityBrandId: $aiVisibilityBrandId
dateRange: $dateRange
first: 20
orderBy: [{ field: totalBrandCitations, direction: DESC }]
) {
nodes {
pageId
canonicalUrl
url
title
aiProviderTypes
topicNames
avgBrandPosition
totalBrandCitations
avgCitationScore
}
pageInfo {
hasNextPage
endCursor
}
totalCount
}
}
Fields
| Field | Description |
|---|---|
pageId | Stable id for the cited page, shared with every other AI Visibility query |
canonicalUrl | Canonical form of the cited URL; the key rows are grouped by |
url | A representative raw cited URL, for linking |
title | Search-result title for the page, or null if SERP discovery has never seen it |
aiProviderTypes | Array of AI providers that cited this URL |
topicNames | Array of topic names associated with this URL's citations |
avgBrandPosition | Average citation position across all appearances |
totalBrandCitations | Total number of times this URL was cited |
avgCitationScore | Average citation quality score (nullable) |
Each node is one page, not one URL spelling: citations of https://example.com/p?ref=chat and https://example.com/p aggregate into a single row, and totalCount counts pages. Join a row to page scores, discovered pages and page runs on pageId — see Page Identity.
Sorting
Citations can be sorted by: url, avgBrandPosition, totalBrandCitations, avgCitationScore. The url field sorts on canonicalUrl.
Default sort is totalBrandCitations DESC, canonicalUrl ASC.
Filtering
All parameters that filter brand citations:
| Parameter | Type | Description |
|---|---|---|
aiVisibilityProjectId | ObjectID! | Required. Scopes to a project |
aiVisibilityBrandId | ObjectID! | Required. The brand (including merged variants) |
aiVisibilityTopicId | ObjectID | Optional. Filter to a specific topic |
aiVisibilityPromptId | ObjectID | Optional. Filter to a specific prompt |
dateRange | AiVisibilityDateRangeInput | Optional. Defaults to last 30 days |
aiProviderTypes | [AiVisibilityAiProviderType] | Optional. Filter by AI platform |
search | String | Optional. Search the cited page's canonical URL |
search drops pages whose canonical URL does not contain the text, without changing the metrics of the pages it keeps, and totalCount counts only the matching pages — see Searching pages.
Brand mentions
Brand mentions return individual mention rows with full details including the mention text, its position in the response, and sentiment analysis.
query GetAiVisibilityBrandMentions(
$accountId: ObjectID!
$aiVisibilityProjectId: ObjectID!
$aiVisibilityBrandId: ObjectID!
$dateRange: AiVisibilityDateRangeInput
) {
getAiVisibilityBrandMentions(
accountId: $accountId
aiVisibilityProjectId: $aiVisibilityProjectId
aiVisibilityBrandId: $aiVisibilityBrandId
dateRange: $dateRange
first: 20
orderBy: [{ field: brandMentionQualityScore, direction: DESC }]
) {
nodes {
rawId
text
textSpan {
start
end
}
position
brandName
brandType
sentiment
sentimentJustification
brandMentionQualityScore
aiProviderType
createdAt
}
pageInfo {
hasNextPage
endCursor
}
totalCount
}
}
Fields
| Field | Description |
|---|---|
rawId | Unique mention identifier |
text | The mention text |
textSpan | Character offset range (start and end) within the full response |
position | Position of the mention within the answer |
brandName | Original brand name (preserved even for merged brands) |
brandType | Brand type (own, competitor, other) |
sentiment | Sentiment score |
sentimentJustification | Explanation for the sentiment rating |
brandMentionQualityScore | Quality score (0-100) |
aiProviderType | Which AI provider generated this mention |
createdAt | When the prompt run was created |
citations | Citations the answer used to support this mention (see below) |
Citations behind a mention
citations lists the sources the answer used to support each mention, in answer order. These are the citations placed in the passage that names the brand, or those the AI platform itself reported as backing it. A citation's publisher is not necessarily the mentioned brand: a review site can support a mention of your competitor, and publisherBrandName tells you who publishes the page.
Each citation carries:
| Field | Description |
|---|---|
position | Position of the citation within the answer |
url / canonicalUrl | The cited URL as returned, and its canonical page key |
domain | Host of the cited page, lowercased and without www. |
domainOwnership | Own, Competitor or Other, checked against your brands' domains |
publisherBrandName | Brand that publishes the cited page, when one was recognised |
sourceType | Authoritative, Listicle or Weak: the kind of page the source is |
backing | How the citation was tied to the passage: Grounded (reported by the platform), Inline, Marker or None |
citationQualityScore | Citation quality score (0-100) |
domainOwnership compares the cited page's host with the domains of your project's own and competitor brands. A brand domain covers subdomains only when includeSubdomains is set on it, and www. is ignored on both sides. When a domain belongs to both an own and a competitor brand, it counts as Own.
citations is empty when the answer's sources could not be tied to the passage. Some AI platforms, such as Google AI Overviews and AI Mode, never report where their sources sit, so their mentions have no backing citations. Mentions from runs processed before citations were linked to mentions are also empty.
sourceType can differ between two runs that cite the same page, so compare it across many mentions rather than reading a single citation's value as settled.
query GetAiVisibilityBrandMentionsFromIndependentSources(
$accountId: ObjectID!
$aiVisibilityProjectId: ObjectID!
$aiVisibilityBrandId: ObjectID!
$dateRange: AiVisibilityDateRangeInput
) {
getAiVisibilityBrandMentions(
accountId: $accountId
aiVisibilityProjectId: $aiVisibilityProjectId
aiVisibilityBrandId: $aiVisibilityBrandId
dateRange: $dateRange
citationSource: NonOwnDomain
first: 20
) {
nodes {
rawId
text
sentiment
brandMentionQualityScore
aiProviderType
citations {
position
url
domain
domainOwnership
publisherBrandName
sourceType
backing
}
}
pageInfo {
hasNextPage
endCursor
}
totalCount
}
}
Sorting
Mentions can be sorted by: id, position, brandMentionQualityScore, createdAt.
Default sort is brandMentionQualityScore DESC.
Filtering
Same filtering parameters as brand citations (project, brand, topic, prompt, date range, AI provider types), plus filters on the citations behind each mention:
| Argument | Description |
|---|---|
citationSource | Cited, Uncited, OwnDomain, NonOwnDomain (backed by a page outside your own domains) or ThirdPartyDomain (outside own and competitor domains) |
citationSourceTypes | Only mentions backed by a citation of these source types |
citationDomains | Only mentions backed by a citation on one of these domains or their subdomains, such as reddit.com |
answerMentionsOwnBrand | true or false: whether the same answer also mentions one of your own brands |
citationSource, citationSourceTypes and citationDomains must all hold for the same backing citation: citationSource: NonOwnDomain with citationSourceTypes: [Listicle] returns mentions backed by a listicle outside your domains. Combining Uncited with either of the other two returns no mentions. totalCount reflects every filter.
To find competitor mentions in answers that leave your brand out, sourced from independent pages, query the competitor's mentions with answerMentionsOwnBrand: false and citationSource: ThirdPartyDomain.
Schema reference
AiVisibilityCitationListItem-- Citation aggregation typeAiVisibilityMentionListItem-- Mention row typeAiVisibilityMentionCitation-- Citation backing a mentionAiVisibilityMentionCitationSource-- Citation source filterAiVisibilityTextSpan-- Text span typeAiVisibilityCitationQualityScoreComponent-- Citation quality breakdownAiVisibilityMentionQualityScoreComponent-- Mention quality breakdown