How can AEOTrack help you?

September 23, 2026

Google Sheets and Looker Studio export

What you get

Four CSV feeds per website, one per sheet tab, that a spreadsheet re-reads on its own schedule:

  • scores — every AEO and GEO score point, interleaved by date
  • questions — one row per engine answer for every tracked question
  • sources — the domains the engines cite, most cited first
  • share_of_voice — your brand and every named competitor, last 30 days
https://api.aeotrack.io/exports/sheets/scores.csv?domain_id=dom_…&key=aeo_live_…
https://api.aeotrack.io/exports/sheets/questions.csv?domain_id=dom_…&key=aeo_live_…
https://api.aeotrack.io/exports/sheets/sources.csv?domain_id=dom_…&key=aeo_live_…
https://api.aeotrack.io/exports/sheets/share_of_voice.csv?domain_id=dom_…&key=aeo_live_…

Plan: Pro and up. Auth: an API key from Settings → Company → API keys (see The public API and API keys). The key travels as ?key= because Sheets' IMPORTDATA cannot send headers; an X-API-Key header works too for anything that can set one. Your domain_id is under Settings → Websites, or from GET /api/v1/domains.

Every file starts with a UTF-8 BOM and uses CRLF line endings, so Sheets, Excel and Numbers open it without a dialect prompt. Column headers are a contract: columns are appended, never renamed or reordered, so formulas that address columns by letter keep working.

Google Sheets

The quickest route is Integrations → Google Sheets & Looker in the app: pick the feed (Scores, Questions, Sources or Share of voice), pick or create an API key, and copy the finished formula. By hand, put this in cell A1 of an empty tab:

=IMPORTDATA("https://api.aeotrack.io/exports/sheets/scores.csv?domain_id=dom_abc123&key=aeo_live_xxxxxxxx")

Sheets refreshes IMPORTDATA about once an hour and on file open. To force a refresh, set File → Settings → Calculation to On change and every hour, or add a harmless cache-buster the API ignores: &_=1, then &_=2.

Keep the key in one cell and build the URL with &:

=IMPORTDATA("https://api.aeotrack.io/exports/sheets/questions.csv?domain_id=" & B1 & "&key=" & B2)

Share the sheet as view only — anyone who can see the formula can see the key. Revoke a leaked key under Settings → Company → API keys. Build charts on a second tab that references the import tab, so a refresh never disturbs your formatting.

Columns

scores.csv — one row per score point:

ColumnMeaning
recorded_atUTC, YYYY-MM-DD HH:MM:SS
metricaeo or geo
score0–100
score_non_brandedthe score over non-branded questions only (AEO)
mention_rate% of answers that named the brand
citation_rate% of answers that cited the website
visibility_shareshare of named brands' mentions
n_resultsanswers behind the point
ci_low / ci_highconfidence interval
scoring_versionwhich formula produced the point

questions.csv — one row per engine answer for every tracked question: question, branding, score, sentiment, engine, model, checked_at, mentioned, position, items_listed, cited_sources, error, snippet.

sources.csv — cited source domains, most cited first: source_domain, citations, unique_urls, engines, questions, first_cited_at, last_cited_at.

share_of_voice.csv — last 30 days, one row per named brand: name, is_you, mentions, total_checks, share_pct, mention_rate, avg_position, window_days.

Looker Studio

Looker Studio has no direct CSV-over-HTTPS connector. Use the Google Sheets connector on a sheet fed by IMPORTDATA as above: each tab becomes a data source (set recorded_at to Date & Time and metric to Text in the field editor), and the sheet's hourly refresh becomes the report's refresh. For a client-facing report, build it on a copy of the sheet that holds only the four IMPORTDATA tabs so the API key never appears in a shared data source. An agency usually keeps one report with a website selector, fed by one import tab per client.

Limits and errors

  • 120 exports per key per hour, 300 per IP per hour. A sheet or a dashboard is well inside that; a script polling every minute is not.
  • 401 bad or revoked key · 402 plan without the Sheets export (the response says which plan has it) · 404 unknown feed or website.
  • Responses are cached for five minutes (Cache-Control: private, max-age=300).

The older Looker Studio export link

Before the four feeds existed, the Looker Studio card under Integrations issued one tokenised link to the score history: https://api.aeotrack.io/integrations/looker/export/{domain_id}/scores.csv?token=…. It still works — scores only, no API key, the token is the secret — and Generate export link on that card issues a new token, which revokes the old link. New sheets and dashboards should use the feeds above.