AI Monitor
AI Monitor runs check how the major AI engines describe a site. The API exposes the latest completed run: the composite visibility score and the per-engine component breakdown that produced it.
Get latest AI Monitor run
/api/v1/sites/{siteId}/ai-monitorscope: read:ai-monitorReturns the most recent completed AI Monitor run for the site. Runs still in progress, or runs that failed, are not returned.
Path parameters
| Parameter | Type | Description |
|---|---|---|
siteId | string | Site ID. |
Example request
Example response
aiMonitor is null when no AI Monitor run has ever completed for the site. Note the field is runId, not id.
Engine keys
componentScores is keyed by engine identifier, not by product name. The scored engines are openai (ChatGPT), perplexity (Perplexity), anthropic (Claude), and gemini (Gemini).
Only engines that produced usable rows for the run appear. An engine whose adapter failed is left out rather than reported as zero, so treat a missing key as "not measured this run", never as a score of nothing. Read the keys present rather than assuming a fixed set.
google_aio) and Grok (grok) are measured as signals only. They appear on GroundScore surfaces but are deliberately excluded from componentScores and from compositeScore, so they never appear here.Composite score
Scoring runs in two steps. First, each engine's five components are combined into that engine's own score using fixed weights:
Then the headline compositeScore is the plain average of those per-engine scores across the engines that produced usable rows, rounded to an integer in the range 0 to 100. Engines that failed are excluded from the average rather than counted as zero, so a run measured on fewer engines is still comparable.
Component keys
| Key | Meaning |
|---|---|
surfacing | Share of prompts where the engine surfaced the site at all. |
sov | Share of Voice: how often the site appears relative to competitors in the same answers. |
prominence | Position and emphasis within answers when surfaced. |
brandRecognition | How the engine describes the brand when prompted by name. |
citation | Whether the engine cites the site's own URLs as sources. |
prominence and brandRecognition are the two components that can come back null. Null means the component could not be graded for that engine on that run, which is different from a graded result of zero. A null component drops out of that engine's score and the remaining weights are renormalized, so a site that could not be graded never reads as a site that scored nothing. surfacing, sov, and citation are always numbers.Errors
| Code | When |
|---|---|
not_found | Site does not exist or is not owned by the authenticated user. |
insufficient_scope | Key lacks read:ai-monitor. |