Export & portability
Get an identity's memory, or a tenant's whole store, out in one call — either as a full ZIP archive or in open interchange formats other tools can read. This is the exit half of importing chat history.
All endpoints require the ExportData permission. Identity-scoped endpoints also require identity access: the caller must be the identity itself or its steward. Responses are file downloads (ZIP or JSON), not envelopes.
Endpoints
GET /api/export/identity/{identityId} ZIP — the identity's whole store
GET /api/export/identity/{identityId}/portable JSON — same store, Konshus v0.1 shape
GET /api/export/tenant ZIP — every identity in the tenant
GET /api/export/chatsession/{sessionId}/dti JSON — one chat session, DTI schema
GET /api/export/manifest?identityId= what an export would containAn export is the whole store in one file — there is no selective export. The manifest shows what exists before you pull it: pass identityId for one identity's counts, omit it for the tenant-wide manifest.
Open formats
- Identity →
portablereturns the store in the Konshus AI Memory Portability Standard v0.1 shape (atoms + artifacts) — the interchange format this platform has adopted. Any v0.1-speaking tool can take an identity's memory from here without chasing provider schemas. - Chat session →
dtireturns one conversation as a Data Transfer Initiative AI Conversation History document — message-level interchange, one session per call.
Both formats are import formats here too: a Konshus or DTI document coming in goes through the same review pipeline as a provider export.
Guards worth knowing
- The identity guard (self or steward) applies to identity exports, portable exports, and a scoped manifest — an export enumerates and empties a store, so the guard is the same at both ends.
- The tenant export is deliberately not identity-guarded: it is a whole-tenant operation gated by
ExportDataalone. Who holds that permission is the tenant's call. - Session export (
dti) is gated by session ownership, not the identity guard — a conversation log belongs to its participant.
See Provider independence & portability for why the formats are open, and Memory surfaces for what the store contains.
Last updated