v1Resources/AEO/getCompare two months of AI visibility

Compare two months of AI visibility

Compares one location's AI search visibility between two measurement months: overall and per-engine score changes, mention rate, average position and per-prompt changes. Prompt and engine pairs answered in both months are the unit of comparison: likeForLike gives the change over only those, and coverage says whether the months are comparable at all, so a change in what was measured is not mistaken for a change in visibility. Read-only: it never generates a report. A month with no report is a 404 naming the months that exist.

get/api/v1/aeo/reports/compare
aeo:read
Query parameters
locationIdstringrequired
The location.
clientIdstringoptional
Narrows the location lookup to this client.
fromstringoptional
The earlier month, YYYY-MM. Defaults to the report just before to.
tostringoptional
The later month, YYYY-MM. Defaults to the latest report.
Response
dataobjectoptional
fromobjectoptional
The earlier month: yearMonth and generatedAt.
toobjectoptional
The later month: yearMonth and generatedAt.
visibilityobjectoptional
The overall score in each month and the change.
enginesobjectoptional
Per engine: each month's score, the change, and whether each month queried that engine.
metricsobjectoptional
Mention rate, average position, sources cited and prompts covered, each month and the change.
promptsarray of objectoptional
Per prompt and engine: each month's result and the score change.
likeForLikeobjectoptional
The change over only the prompt and engine pairs both months measured: how many there are, the average score change, and the same per engine. The average is null when no pair was measured in both months.
coverageobjectoptional
Whether the months are comparable, and which engines or prompts appear in only one of them.
Errors
400The request is missing a required parameter or is otherwise malformed.
401Missing, invalid, expired, or revoked API key.
403The key lacks the required scope, or isn't authorized for this client/location.
404The resource wasn't found, or doesn't belong to your agency.
429Too many requests. Retry after the number of seconds in the Retry-After header.
get/api/v1/aeo/reports/compare
Your API key
locationId *
clientId
from
to
{
  "data": {
    "from": {
      "yearMonth": "2026-03",
      "generatedAt": "2026-03-02T00:00:00.000Z"
    },
    "to": {
      "yearMonth": "2026-06",
      "generatedAt": "2026-06-02T00:00:00.000Z"
    },
    "visibility": {
      "from": 40,
      "to": 65,
      "delta": 25
    },
    "engines": {
      "ChatGPT": {
        "from": 40,
        "to": 70,
        "delta": 30,
        "queriedFrom": true,
        "queriedTo": true
      }
    },
    "metrics": {
      "mentionRate": {
        "from": 30,
        "to": 45,
        "delta": 15
      },
      "avgPosition": {
        "from": 3,
        "to": 2,
        "delta": -1
      },
      "sourcesCited": {
        "from": 5,
        "to": 8,
        "delta": 3
      },
      "promptsCovered": {
        "from": {
          "value": 4,
          "total": 6
        },
        "to": {
          "value": 5,
          "total": 6
        }
      }
    },
    "prompts": [
      {
        "keyword": "best dentist near me",
        "presence": "both",
        "engines": {
          "ChatGPT": {
            "from": {
              "score": 40,
              "mentioned": true,
              "rank": 3
            },
            "to": {
              "score": 70,
              "mentioned": true,
              "rank": 1
            },
            "scoreDelta": 30
          }
        }
      }
    ],
    "likeForLike": {
      "pairs": 1,
      "averageScoreChange": 30,
      "byEngine": {
        "ChatGPT": {
          "pairs": 1,
          "averageScoreChange": 30
        },
        "Gemini": {
          "pairs": 0,
          "averageScoreChange": null
        },
        "Perplexity": {
          "pairs": 0,
          "averageScoreChange": null
        }
      }
    },
    "coverage": {
      "comparable": true,
      "pairs": {
        "matched": 1,
        "onlyInFrom": 0,
        "onlyInTo": 0
      },
      "enginesOnlyInFrom": [],
      "enginesOnlyInTo": [],
      "promptsOnlyInFrom": [],
      "promptsOnlyInTo": [],
      "notes": []
    }
  }
}

Guides that use this resource