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 contain

An 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 → portable returns 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 → dti returns 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 ExportData alone. 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