> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fixaeo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Export your data

> Every CSV and JSON export FixAEO offers, and what's in each.

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

|          | Analytics CSVs                                                    | Account JSON                               |
| -------- | ----------------------------------------------------------------- | ------------------------------------------ |
| Endpoint | `GET /api/v1/me/export` and `GET /api/v1/me/portfolio/export.csv` | `GET /api/v1/me/account/export`            |
| Format   | `text/csv; charset=utf-8`                                         | `application/json`                         |
| Contains | Measurements — snapshots, mentions, cited domains, rankings       | Your account — profile and billing history |
| Where    | A **CSV** or **Export** button on most screens                    | Settings → Privacy & data                  |
| Good for | Charts, pivot tables, your own warehouse                          | GDPR Article 20, leaving FixAEO            |

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.

| `view`      | Where the button is                  | Filename                      | Needs `brand=` |
| ----------- | ------------------------------------ | ----------------------------- | -------------- |
| `brands`    | Brands page, **CSV**                 | `fixaeo-brands.csv`           | No             |
| `snapshots` | By URL, see below                    | `fixaeo-snapshots-<slug>.csv` | Yes            |
| `mentions`  | Brand page, Recent mentions, **CSV** | `fixaeo-mentions-<slug>.csv`  | Yes            |
| `prompts`   | Brand page, prompt list, **CSV**     | `fixaeo-prompts-<slug>.csv`   | Yes            |
| `domains`   | Citations page, **Export N URLs**    | `fixaeo-citations.csv`        | No             |
| `industry`  | Industry page, **Export CSV**        | `fixaeo-industry.csv`         | No             |

<Note>
  `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.
</Note>

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?

<AccordionGroup>
  <Accordion title="brands — one row per tracked brand">
    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](/plans-and-limits).
  </Accordion>

  <Accordion title="snapshots — one row per day">
    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](/metrics/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.
  </Accordion>

  <Accordion title="mentions — one row per answer that named you">
    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`.
  </Accordion>

  <Accordion title="prompts — one row per tracked prompt">
    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](/setting-up-prompts).
  </Accordion>

  <Accordion title="domains — one row per cited domain">
    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](/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.
  </Accordion>

  <Accordion title="industry — one row per brand in the ranking">
    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](/industry).
  </Accordion>
</AccordionGroup>

## 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.

<Note>
  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.
</Note>

## 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.

```json theme={null}
{
  "exported_at": "2026-08-04T09:12:44Z",
  "user": { "id": "...", "email": "...", "email_verified": true,
            "display_name": "...", "avatar_url": "...",
            "plan": "growth", "created_at": "..." },
  "billing_charges": [ { "amount_minor": 7900, "currency": "USD",
                         "charged_at": "..." } ],
  "_note": "Generated under GDPR Article 20..."
}
```

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](/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.

<Note>
  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.
</Note>

Erasure is the button below it. See [Security and privacy](/security) 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.

```
https://api.fixaeo.com/api/v1/me/export?view=snapshots&brand=your-brand&range=90d
https://api.fixaeo.com/api/v1/me/export?view=mentions&brand=your-brand&sentiment=neg
https://api.fixaeo.com/api/v1/me/export?view=domains&range=30d&bucket=competitors
https://api.fixaeo.com/api/v1/me/portfolio/export.csv?range=90d&region=gb&language=en
https://api.fixaeo.com/api/v1/me/account/export
```

<Tip>
  Want this on a schedule instead of by hand? The [MCP server](/mcp/introduction) exposes the same underlying reads to an AI client, which is a better fit for recurring pulls than scripting a cookie-authed download.
</Tip>

## Related

<CardGroup cols={2}>
  <Card icon="lock" title="Security and privacy" href="/security">
    Where your data lives, and how account deletion works.
  </Card>

  <Card icon="eye" title="Visibility Score" href="/metrics/visibility-score">
    What the count columns in your CSVs add up to.
  </Card>

  <Card icon="link" title="Citations" href="/citations">
    The filters the domains export inherits.
  </Card>

  <Card icon="credit-card" title="Plans and limits" href="/plans-and-limits">
    Brand caps, prompt pool, and rescan frequency.
  </Card>
</CardGroup>
