Skip to main content
FixAEO has two export paths: seven analytics CSVs, and one account-wide JSON dump for data portability. They answer different questions. The CSVs are for spreadsheets and BI tools. The JSON is for taking your account somewhere else. Neither one requires a support ticket.

Two different exports

Both set Content-Disposition: attachment, so your browser saves a file instead of rendering it. Both are Cache-Control: no-store — every download is point-in-time.

The six CSV views

One endpoint, GET /api/v1/me/export, dispatches on a view parameter. Six values are valid.
snapshots is the one view you request by URL rather than by button. It gives you the daily time series behind the trend chart, so it’s the most useful of the six if you’re rebuilding charts elsewhere. There’s a ready-made URL at the bottom of this page.
An invalid view returns a 400 listing the valid ones. A missing brand= on the three views that need it returns 400 too.

What’s in each view?

Columns: brand_slug, brand_name, domain, scan_frequency_hours, added_at.Configuration only, no metrics. scan_frequency_hours is the rescan interval your plan sets — see Plans and limits.
Columns: date, citation_rate, brand_mentions, total_responses, sentiment_pos, sentiment_neu, sentiment_neg.This is the daily rollup behind your trend chart. It’s scoped to the brand’s region, and honors range.brand_mentions and total_responses are the two counts your Visibility Score is built from: how many captured answers named you, out of how many were captured that day. Work from those two columns rather than citation_rate, which is a legacy name.
Columns: date, engine, sentiment, confidence, prompt, snippet, source_url.The raw evidence rows: which engine, which prompt, and the snippet of text that mentioned you. confidence is how sure FixAEO is of the sentiment on that row, and is blank where sentiment wasn’t scored. Filter with sentiment=pos|neu|neg.
Columns: prompt_text, is_active, created_at, last_snapshot_date.is_active tells you whether the prompt is still being scanned. last_snapshot_date is blank for a prompt that has never been scanned — a quick way to spot prompts added since your last scan. See Setting up your prompts.
Columns: rank, domain, category, count, share_pct, engines, latest_date, authority, is_owned, is_competitor.engines is pipe-delimited, like chatgpt|perplexity. share_pct is that domain’s share of all citations in the window. authority is the domain authority score, blank when FixAEO hasn’t looked it up yet.This export honors every filter on the Citations screen: range, q, topic, engines, regions, tags, personas, and bucket. Narrow the table on screen, and the CSV matches what you’re looking at.
Columns: rank, name, mentions, share_pct, delta_pp, sentiment_pos, sentiment_neu, sentiment_neg, is_own, is_pinned.delta_pp is the change in percentage points against the previous window of the same length. is_own marks your row among the competitors. Honors range, engine, topic, region, language, and brand_slug. See Industry.

The portfolio CSV

Multi-brand accounts get a seventh export on its own endpoint: GET /api/v1/me/portfolio/export.csv. It’s the Export CSV button on the Portfolio page. One row per brand, 18 columns: brand_slug, brand_name, domain, vertical, region, language, range_days, has_data, citation_rate_pct, citation_delta_pct, brand_mentions, total_responses, sentiment_pos, sentiment_neu, sentiment_neg, latest_scan_date, top_engine, top_engine_rate_pct. The filename encodes the filters, like portfolio-us-en-30d-2026-08-04.csv, so repeat exports don’t overwrite each other. Two things about this one are easy to misread:
  • citation_rate_pct is the Visibility Score, despite the column name — the same number the dashboard shows. citation_delta_pct is the change in percentage points.
  • Metric cells are blank, not zero, for brands with no data yet. has_data is false on those rows. Blank keeps a pending brand from dragging your spreadsheet averages down to zero.
The portfolio CSV covers one region and language at a time, and defaults to region=us and language=en. If your brands are tracked for another country, pass it — ?region=gb&language=en — or the file comes back with only the brands that match the default.

What the date filters do

Use range. It accepts 7d, 30d, 90d, 365d and defaults to 30d. Anything unrecognized falls back to 30 days rather than erroring. range applies to snapshots, domains, industry, and the portfolio CSV. It does nothing on brands, prompts, or mentions — those three come back whole, and you filter dates in your spreadsheet. One more thing worth knowing: mentions exports all regions, unlike the mention feed on screen, which is scoped to one region. The export is meant as “everything I have.” Expect more rows than the page shows.

How do you export everything for GDPR?

Go to Settings → Privacy & data and click Download my data. You get fixaeo-data-<your-id>.json. This is the Article 20 portability answer: who you are and what you’ve paid, plus metadata.
For your brands and your prompt list, use the brands and prompts CSV views above — those carry more detail than a JSON dump would anyway. Your brand profile text isn’t in either one, so copy it from the app if you’re moving it somewhere. See Your brand profile. What’s deliberately left out: raw scan responses and IP logs. Those are omitted because dumping them would be privacy-hostile, not because they’re unavailable.
Your measurements aren’t in the JSON. No snapshots, no mentions, no citations, no rankings. For a complete picture, pair the JSON with the CSV views above — snapshots and mentions per brand are the two that carry your history.
Erasure is the button below it. See Security and privacy for what account deletion cascades through.

Calling the export endpoints directly

These endpoints authenticate with your session cookie rather than an API key, so the simplest route is to be signed in and paste a URL into the address bar.
Want this on a schedule instead of by hand? The MCP server exposes the same underlying reads to an AI client, which is a better fit for recurring pulls than scripting a cookie-authed download.

Security and privacy

Where your data lives, and how account deletion works.

Visibility Score

What the count columns in your CSVs add up to.

Citations

The filters the domains export inherits.

Plans and limits

Brand caps, prompt pool, and rescan frequency.