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

# Data export

> Get your data out — traces, memory, documents, Flows, audit.

Everything in Nora is exportable. This matters for backups, migrations between workspaces, compliance (data portability), and offline analysis.

## What you can export

| Category                         | Format                         | Where                                             |
| -------------------------------- | ------------------------------ | ------------------------------------------------- |
| **Flow payload**                 | JSON                           | `nora flows get <slug>`                           |
| **Flow snapshot (editable)**     | JSON                           | `nora flows snapshot <slug>`                      |
| **Pipeline payload**             | JSON                           | `nora pipelines get <id>`                         |
| **Documents**                    | Original files + metadata JSON | Data → Documents → Export                         |
| **Memory notes/nodes/edges**     | JSON                           | `nora memory {notes,nodes,edges} list ... --json` |
| **Traces**                       | JSONL                          | `nora traces list ... --json`                     |
| **Datasets**                     | JSONL / CSV                    | Datasets → export button                          |
| **Audit trail**                  | JSON / CSV / PDF               | Audit → Export                                    |
| **Everything (whole workspace)** | ZIP                            | Settings → Data → Full export                     |

## Full workspace export

**Settings → Data → Full export**:

1. Choose scope (Everything, or specific categories).
2. Optionally: apply date range filters.
3. Submit.
4. Nora prepares the export asynchronously. Notification when ready (usually minutes; large workspaces take hours).
5. Download the signed ZIP.

The ZIP contains:

* `manifest.json` — index of contents, checksums, export timestamp.
* `flows/*.json` — one file per Flow.
* `pipelines/*.json` — one file per pipeline.
* `documents/` — original files + metadata.
* `memory/*.json` — one file per memory space.
* `traces/*.jsonl` — grouped by day.
* `datasets/*.jsonl` — one per dataset.
* `audit.jsonl` — the full audit trail.
* `signature.sig` — signature over `manifest.json`.

Download URLs expire after 7 days for security.

## Programmatic export

Most `--json` CLI commands produce parseable output:

```bash theme={null}
# All Flows to a directory
mkdir -p export/flows
for slug in $(nora flows list --json | jq -r '.[].slug'); do
  nora flows get $slug > export/flows/$slug.json
done

# All traces in a date range
nora traces list --from 2026-07-01 --to 2026-07-31 --limit 100000 --json > export/traces-jul.json
```

Combine with cron for periodic backup.

## Data migration between workspaces

Common recipe: staging → prod:

```bash theme={null}
# Snapshot in staging
nora --workspace staging flows snapshot support > support.json
nora --workspace staging vars list --json > vars.json

# Apply in prod
nora --workspace prod flows apply support support.json
# (Re-declare vars manually — vars are per-workspace)

nora --workspace prod flows publish support --summary "staging → prod"
```

Some things don't migrate directly:

* **Connectors and provider keys** — must be re-created in the destination (credentials themselves can't leave the source).
* **Memory content** — you can export via `nora memory ... list --json` and re-insert, but scope keys may differ.
* **Traces** — historically won't be attached to the new workspace's Flow.

## Individual user data export (GDPR)

For a user's data portability request:

**Settings → Data → User exports → New**:

1. Enter the user identifier (email or scope key used in your Flows).
2. Nora walks all workspace data:
   * Traces where scope matches.
   * Memory items scoped to the user.
   * Feedback attributed to the user.
   * Approvals decided by the user.
3. Produces a per-user ZIP.

Signed and timestamped.

Portability requests are audit-logged (the request itself, not the exported content).

## Formats and conventions

* **JSONL** — one JSON object per line. Ideal for streaming into databases and log tools.
* **JSON** — pretty-printed. Ideal for humans and small datasets.
* **CSV** — for spreadsheets and QA workflows.
* **PDF** — for compliance reviewers who want a printable artifact.

Where the CLI accepts `--json`, adding it gives you machine-readable output for scripting.

## Signed exports

Every export ZIP includes a signature over the manifest. Verify with your workspace's export public key:

```bash theme={null}
openssl dgst -sha256 -verify workspace-export-pubkey.pem \
  -signature signature.sig \
  manifest.json
```

Confirms the export wasn't tampered with in transit.

## Rate limits

* Full-workspace export: max 1 concurrent per workspace, one every 24h.
* Individual category export: unlimited via CLI.
* Individual user export: max 10 concurrent per workspace.

Workspaces on Enterprise plans can raise these.

## Related

* [Retention](/settings/data/retention) — expiration policies (export before things age out).
* [Compliance](/settings/data/compliance) — regulatory export requirements.
* [`nora flows`](/cli/flows) — Flow snapshots.
* [`nora memory`](/cli/memory) — memory export via list commands.
