v1Resources/AEO/getGet the all-locations AEO roll-up
Get the all-locations AEO roll-up
Returns the latest AEO report summary per location, optionally scoped to a client and/or location tags, plus portfolio-wide trend and systemic-fix data. Locations with no report yet show null scores.
get
aeo:read/api/v1/aeo/rollupQuery parameters
clientIdstringoptional
Restrict results to one client. When your key is scoped to specific clients, this is required.
tagsstringoptional
Comma-separated location tag names. Only locations carrying at least one of these tags are included.
Response
dataobjectoptional
rowsarray of objectoptional
One row per in-scope location.
locationIdstringoptional
Unique identifier for the location.
namestringoptional
The location's business name.
citystringoptional
City, or null.
overallnumberoptional
Latest overall AI-visibility score (0-100), or null if never generated.
chatgptnumberoptional
Latest ChatGPT score, or null.
gemininumberoptional
Latest Gemini score, or null.
perplexitynumberoptional
Latest Perplexity score, or null.
generatedAtstringoptional
When the latest report was generated, as an ISO 8601 timestamp, or null if never generated.
yearMonthstringoptional
Month of the latest report (YYYY-MM), or null.
tagsarray of stringoptional
The location's internal tags.
historyarray of numberoptional
Overall-score history for this location, chronological, non-null values only.
deltanumberoptional
Overall-score change vs the previous report, or null on the first report or if there's no prior month.
topIssueobjectoptional
This location's weakest visibility factor, or null if it has no report yet.
labelstringoptional
tonestring (good | warn | bad)optional
configuredEnginesarray of string (ChatGPT | Gemini | Perplexity)optional
AI engines this agency has an API key configured for.
portfolioHistoryarray of objectoptional
Average overall score across in-scope locations, per month.
yearMonthstringoptional
Month in YYYY-MM form.
avgnumberoptional
Average overall score across reporting locations that month.
locationsnumberoptional
Number of locations with a report that month (the average's denominator).
systemicFixesarray of objectoptional
Cross-location weaknesses shared by multiple locations, each with a single batch fix, ranked by reach.
factorstringoptional
Machine-readable factor identifier.
labelstringoptional
Human-readable factor name.
detailstringoptional
Explanation of the systemic weakness.
targetstring (listings | citations | reviews | posts | competitors | prompts)optional
Which part of the product the fix routes to.
countnumberoptional
Number of locations affected.
pctnumberoptional
Percent of reporting locations affected.
Errors
401Missing, invalid, expired, or revoked API key.
403The key lacks the required scope, or isn't authorized for this client/location.
429Too many requests. Retry after the number of seconds in the Retry-After header.
get/api/v1/aeo/rollup
Your API key
clientId
tags
{
"data": {
"rows": [
{
"locationId": "cm_loc_1",
"name": "Acme Dental — Downtown",
"city": "Austin",
"overall": 62,
"chatgpt": 68,
"gemini": 56,
"perplexity": null,
"generatedAt": "2026-02-01T06:00:00.000Z",
"yearMonth": "2026-02",
"tags": [
"priority"
],
"history": [
57,
62
],
"delta": 5,
"topIssue": null
}
],
"configuredEngines": [
"ChatGPT",
"Gemini"
],
"portfolioHistory": [
{
"yearMonth": "2026-01",
"avg": 57,
"locations": 5
},
{
"yearMonth": "2026-02",
"avg": 62,
"locations": 5
}
],
"systemicFixes": [
{
"factor": "citations",
"label": "Citations",
"detail": "6 locations are missing citations on Yelp.",
"target": "citations",
"count": 6,
"pct": 30
}
]
}
}