October 1, 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 Questions score and Topics 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_sheet_…
https://api.aeotrack.io/exports/sheets/questions.csv?domain_id=dom_…&key=aeo_sheet_…
https://api.aeotrack.io/exports/sheets/sources.csv?domain_id=dom_…&key=aeo_sheet_…
https://api.aeotrack.io/exports/sheets/share_of_voice.csv?domain_id=dom_…&key=aeo_sheet_…
Plan: Pro and up. Auth: your company's export token, which starts with aeo_sheet_. It is read-only: it can read these four feeds and nothing else, so it cannot call the public API or the MCP server, and an API key does not work in these URLs. The token travels as ?key= because Sheets' IMPORTDATA cannot send headers; an X-API-Key header carrying the token works too for anything that can set one. Your domain_id is under Settings → Websites, or from GET /api/v1/domains.
The export token
Owners and admins manage the token under Integrations → Google Sheets & Looker. A company has one export token at a time.
- Create export token fills in the formula with the new token. The token is shown once, in the formulas on that page, so copy the formula for each feed you need before you leave.
- Afterwards the page shows only the token's first characters, when it was created and when a sheet last used it. The formula there has a
YOUR_EXPORT_TOKENplaceholder. - Regenerate token issues a new token and a new formula, and revokes the old token straight away. Every sheet on the old formula stops refreshing until you paste in the new one. It is also how to cut off a sheet that was shared too widely.
- Revoke turns the token off without a replacement.
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), create or regenerate the export token, 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_sheet_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 token 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 token and read the four feeds with it. If the sheet reached the wrong people, regenerate the token. 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:
| Column | Meaning |
|---|---|
recorded_at | UTC, YYYY-MM-DD HH:MM:SS |
metric | aeo or geo |
score | 0–100 |
score_non_branded | the Questions score over non-branded questions only |
mention_rate | % of answers that named the brand |
citation_rate | % of answers that cited the website |
visibility_share | share of named brands' mentions |
n_results | answers behind the point |
ci_low / ci_high | low and high ends of the ± range (the range to expect between two checks) |
scoring_version | which 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 export token 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 token per hour. A sheet or a dashboard is well inside that; a script polling every minute is not.
401bad or revoked token ·402plan without the Sheets export (the response says which plan has it) ·403an API key where the export token belongs ·404unknown feed or website.
Sheets made with an API key
Until 28 September 2026 these URLs took an API key (aeo_live_…). They no longer do, because a key in a sheet could be read by anyone who could open it, and a key can do far more than read these feeds. A sheet with an old formula stops refreshing. To fix it, create an export token under Integrations → Google Sheets & Looker and paste the new formulas in. Then revoke the old key under Settings → Company → API keys, since anyone who could open the sheet could see it.
- 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 to revoke it, press Disconnect on that card, then Generate export link for a new token (Show export link only re-displays the current one). New sheets and dashboards should use the feeds above.