client.export in the Python SDK.
What’s exportable
GET /api/v1/export (with your project’s x-api-key) returns a manifest of every entity with
live row counts. GET /api/v1/export/<entity> streams the rows, one JSON object per line, in
exactly the stored shape (timestamps as ISO-8601):
Config tables ride along with the data because a usable backup is the data plus the scorer
configuration that produced it. Everything is scoped to the API key’s project: an export can
never cross a tenant boundary.
Instance-wide state (auth users/orgs, app settings, the pricing catalog) is deliberately not in
the project export; it belongs to the database-level backup below.
Exporting
dump(since=...) only moves the delta.
Restore runbook
There are two supported restore paths. There is deliberately no blind row-level import endpoint: one would bypass the engine’s invariants (span dedupe, id uniqueness, derived agent rows) and could corrupt a live project silently.Path 1: database-level (full instance restore)
The engine owns exactly one database. Restoring it restores everything, including auth and settings.- SQLite (default): stop the engine, copy
$AGENTX_HOME/agentx.dbback into place, start the engine. For hot backups usesqlite3 agentx.db ".backup backup.db"which is safe while the engine runs. - Postgres: standard
pg_dump/pg_restore(or your provider’s point-in-time recovery). The engine runs its own migrations at boot, so restoring an older dump into a newer engine is supported; the reverse is not.
Path 2: replay (project-level, cross-instance migration)
NDJSON exports replay through the normal ingest surface into any project on any instance:feedback, outcomes) replays the same way through client.feedback / client.outcomes.
Note what replay preserves and what it does not: content, sessions, span trees, and metadata
survive; engine-assigned row ids and createdAt are newly assigned on the target (the original
timestamps remain inside the exported file if you need them).
Suggested schedule
- Nightly:
client.export.dump(dir, since=<24h ago>)to object storage - the incremental NDJSON is your audit-friendly, vendor-neutral copy. - Weekly: database-level backup (SQLite
.backupfile orpg_dump) - the fast full-restore path. - Before upgrades: database-level backup, always; the engine migrates forward only.

