Get aggregated visibility data for a topic
Scores, model breakdown, competitors and top lists. Does NOT include per-answer detail: use /visibility/aggregated/detailed for detailedResults and sourceCategories. Deprecated since 2026-10-07, removed on 2027-01-15. Use `GET /api/v2/domains/{domainId}/topics/{topicId}/visibility`, `GET /api/v2/domains/{domainId}/topics/{topicId}/visibility/models`, `GET /api/v2/domains/{domainId}/topics/{topicId}/visibility/brands` instead.
Deprecated
X-API-Key<token>API Key for programmatic access
domainId*stringDomain ID
topicId*stringTopic ID
startDate?stringStart date for the report range (ISO 8601). On aggregated endpoints, omit to default to the last 6 months (there is no "all time"); an explicit start is honoured at any length.
endDate?stringEnd date for the report range (ISO 8601). Defaults to now when omitted.
models?array<string>Filter by specific models
topicId?stringFilter by specific topic ID
promptId?stringFilter raw results to a single prompt ID. Used by the sentiment heatmap drawer to lazy-load one cell's LLM response instead of bundling all responses in the aggregate.
includeVariation?booleanInclude variation calculation comparing to previous period
truepage?numberPage number for paginated responses
1 <= value1limit?numberItems per page for paginated responses
1 <= value <= 10050marketLanguageCodePairId?stringFilter by specific market/language pair ID
tagIds?array<string>Filter by tag IDs (visibility_result joined with prompt_tag)
application/json- response
averageScore*numberAverage visibility score across all selected reports and models
scoreVariation*numberScore variation percentage compared to previous period
brandShareOfVoice*numberOwn brand's overall share of voice (% of all mentions in range). Resolved server-side against the full mention list, so it stays correct even when the brand ranks outside the top mentions shown in topMentions. 0 when the brand is unmentioned.
availableModels*array<string>List of available models in the data
chartData*array<>Time series data for charts
modelBreakdown*array<>Breakdown by model
competitors*array<>Competitor analysis data
topMentions*array<>Top mentioned brands with counts and percentages
topDomains*array<>Top domains from visibility citations
topCitedUrls*array<>Top 10 cited URLs across all visibility responses
topDomainsOverTime*array<>Top 5 domains citation trend over time
topUrlsOverTime?array<>Top 5 URLs citation trend over time
reportCount*numberNumber of measured entries: one per (analysis run, model) with at least one answer in scope, so a run answered on two models counts twice
dateRange*Date range of included reports
totalPromptsTested*numberTotal number of prompts tested for visibility
totalAnswers*numberNumber of answers the scores are computed from: the results of the runs in range, narrowed by the model and tag filters
domainSourceAnalysis?Domain source analysis for visibility citations only
totalCitations*numberTotal number of citations across ALL domains (not just top 20)
detailedResults?array<>Detailed visibility results with citations
sourceCategories?Resolved category paths keyed by citation domain (e.g. "booking.com" → ["Tech / SaaS"]). Present only when includeDetailedResults=true.
curl -X GET 'https://api.getmint.ai/api/domains/507f1f77bcf86cd799439011/topics/507f1f77bcf86cd799439012/visibility/aggregated'{ "averageScore": 72, "scoreVariation": 3.2, "brandShareOfVoice": 0, "availableModels": [ "chatgpt", "claude" ], "chartData": [ { "date": "2026-05-25T10:30:00.000Z", "brand": 72, "competitors": { "Adidas": 58, "Puma": 41 }, "shareOfVoice": 34 } ], "modelBreakdown": [ { "model": "chatgpt", "score": 72, "variation": 3.2 } ], "competitors": [ { "name": "Adidas", "averageScore": 58, "variation": -2.1, "modelBreakdown": [ { "model": "chatgpt", "score": 72, "variation": 3.2 } ] } ], "topMentions": [ { "mention": "Nike", "count": 156, "percentage": 34 } ], "topDomains": [ { "domain": "techcrunch.com", "count": 42, "percentage": 18.5 } ], "topCitedUrls": [ { "url": "https://nike.com/air-max", "domain": "nike.com", "count": 24, "percentage": 10.5 } ], "topDomainsOverTime": [ { "date": "2026-05-25T10:30:00.000Z", "domains": { "techcrunch.com": 42, "nike.com": 24 } } ], "topUrlsOverTime": [ { "date": "2026-05-25T10:30:00.000Z", "urls": { "https://nike.com/air-max": 24 } } ], "reportCount": 12, "dateRange": { "start": "2026-04-25T00:00:00.000Z", "end": "2026-05-25T10:30:00.000Z" }, "totalPromptsTested": 240, "totalAnswers": 236, "domainSourceAnalysis": { "brandDomainPercentage": 22, "otherSourcesPercentage": 78, "brandDomainCount": 112, "otherSourcesCount": 400, "competitorBreakdown": [ { "name": "Adidas", "count": 64, "percentage": 12.5 } ], "unknownSourcesCount": 18, "unknownSourcesPercentage": 3.5 }, "totalCitations": 512, "detailedResults": [ { "model": "chatgpt", "promptIndex": 0, "brandMentioned": true, "originalPrompt": "What are the best running shoes?", "response": "Nike, Adidas, and Brooks are among the top picks...", "usedWebSearch": true, "citations": [ { "url": "https://nike.com/air-max", "title": "Nike Air Max", "website": "nike.com", "domain": "nike.com", "brandMentioned": true, "brandMentionContext": "...Nike Air Max leads the lineup..." } ], "queries": [ "best running shoes 2026" ], "extractedCompanies": [ "nike", "adidas", "brooks" ] } ], "sourceCategories": { "booking.com": [ "Tech / SaaS" ], "techcrunch.com": [ "Internet and Telecom / Technology News" ] }}