---
title: "Export session"
method: GET
path: "/api/experimental/session/{sessionID}/export"
tags: ["session"]
---

# Export session

`GET /api/experimental/session/{sessionID}/export`

## Request

- Base URL: `https://opencode.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://opencode.ai/api/experimental/session/{sessionID}/export`
- Auth: none required

Export a complete projected session transcript.

## Path parameters

- `sessionID` string, required

## Query parameters

- `sanitize` 'true' | 'false', nullable

## Response `200`

Success

- object
  - `data` SessionTransferData, required
    - `info` SessionInfo, required
      - `id` string, required
      - `parentID` string
      - `fork` object
        - `sessionID` string, required
        - `boundary` union, required
          - object
            - `type` 'before', required
            - `messageID` string, required
          - object
            - `type` 'through', required
            - `messageID` string, required
      - `projectID` string, required
      - `agent` string
      - `model` ModelRef
        - `id` string, required
        - `providerID` string, required
        - `variant` string
      - `cost` number, required
      - `tokens` TokenUsageInfo, required
        - `input` number, required
        - `output` number, required
        - `reasoning` number, required
        - `cache` object, required
          - `read` number, required
          - `write` number, required
      - `outcome` 'succeeded' | 'failed' | 'interrupted'
      - `time` object, required
        - `created` number, required
        - `updated` number, required
        - `idle` number
        - `viewed` number
        - `archived` number
      - `title` string
      - `subpath` string
      - `metadata` SessionMetadata
      - `permissions` PermissionRule[]
        - `action` string, required
        - `resource` string, required
        - `effect` 'allow' | 'deny' | 'ask', required
      - `revert` SessionRevert
        - `messageID` string, required
        - `partID` string
        - `snapshot` string
        - `files` FileDiffInfo[]
          - `file` string, required
          - `patch` string, required
          - `additions` integer, required
          - `deletions` integer, required
          - `status` 'added' | 'deleted' | 'modified', required
          - `more` true
      - `location` LocationPublicRef, required
        - `directory` string, required
    - `messages` SessionMessageInfo[], required
      - union
        - SessionMessageAgentSelected
          - `id` string, required
          - `metadata` object
          - `time` object, required
            - `created` number, required
          - `type` 'agent-switched', required
          - `agent` string, required
          - `previous` string
        - SessionMessageModelSelected
          - `id` string, required
          - `metadata` object
          - `time` object, required
            - `created` number, required
          - `type` 'model-switched', required
          - `model` ModelRef, required
            - `id` string, required
            - `providerID` string, required
            - `variant` string
          - `previous` ModelRef
            - `id` string, required
            - `providerID` string, required
            - `variant` string
        - SessionMessageLocationSwitched
          - `id` string, required
          - `metadata` object
          - `time` object, required
            - `created` number, required
          - `type` 'location-switched', required
          - `projectID` string
          - `subpath` string
          - `location` LocationPublicRef, required
            - `directory` string, required
          - `previous` object, nullable
            - `location` LocationPublicRef, required
              - …
            - `projectID` string
            - `subpath` string
        - SessionMessageUser
          - `id` string, required
          - `metadata` object
          - `time` object, required
            - `created` number, required
          - `text` string, required
          - `files` PromptFileAttachment[]
            - `data` string, required
            - `mime` string, required
            - `source` union, required
              - …
            - `name` string
            - `description` string
            - `mention` PromptMention
              - …
          - `agents` PromptAgentAttachment[]
            - `name` string, required
            - `mention` PromptMention
              - …
          - `skills` PromptSkillAttachment[]
            - `id` string, required
            - `name` string, required
            - `text` string
            - `mention` PromptMention
              - …
          - `type` 'user', required
        - SessionMessageSynthetic
          - `id` string, required
          - `metadata` object
          - `time` object, required
            - `created` number, required
          - `text` string, required
          - `description` string
          - `type` 'synthetic', required
        - SessionMessageSystem
          - `id` string, required
          - `metadata` object
          - `time` object, required
            - `created` number, required
          - `type` 'system', required
          - `text` string, required
          - `description` string
        - SessionMessageSkill
          - `id` string, required
          - `metadata` object
          - `time` object, required
            - `created` number, required
          - `type` 'skill', required
          - `skill` string, required
          - `name` string, required
          - `text` string, required
        - SessionMessageShell
          - `id` string, required
          - `metadata` object
          - `time` object, required
            - `created` number, required
            - `completed` number
          - `type` 'shell', required
          - `shellID` string, required
          - `command` string, required
          - `status` 'running' | 'exited' | 'timeout' | 'killed', required
          - `exit` union
            - number
            - 'Infinity' | '-Infinity' | 'NaN'
          - `output` object
            - `output` string, required
            - `cursor` integer, required
            - `size` integer, required
            - `truncated` boolean, required
        - SessionMessageAssistant
          - `id` string, required
          - `metadata` object
          - `time` object, required
            - `created` number, required
            - `streamed` number
            - `completed` number
          - `type` 'assistant', required
          - `agent` string, required
          - `model` ModelRef, required
            - `id` string, required
            - `providerID` string, required
            - `variant` string
          - `content` union[], required
            - union
              - …
          - `snapshot` object
            - `start` string
            - `end` string
            - `files` RelativePath[]
          - `finish` 'stop' | 'length' | 'tool-calls' | 'content-filter' | 'error' | 'unknown'
          - `rawFinish` string
          - `native` SessionMessageNative3
          - `cost` number
          - `tokens` TokenUsageInfo
            - `input` number, required
            - `output` number, required
            - `reasoning` number, required
            - `cache` object, required
              - …
          - `error` SessionStructuredError
            - `type` string, required
            - `message` string, required
            - `status` integer
            - `response` object
              - …
            - `retryAfterMs` integer
          - `retry` SessionMessageAssistantRetry
            - `attempt` integer, required
            - `at` number, required
            - `error` SessionStructuredError, required
              - …
        - union
          - SessionMessageCompactionRunning
            - `type` 'compaction', required
            - `id` string, required
            - `metadata` object
            - `time` object, required
              - …
            - `status` 'running', required
            - `reason` 'auto' | 'manual', required
            - `summary` string, required
          - SessionMessageCompactionCompleted
            - `type` 'compaction', required
            - `id` string, required
            - `metadata` object
            - `time` object, required
              - …
            - `status` 'completed', required
            - `reason` 'auto' | 'manual', required
            - `model` ModelRef
              - …
            - `native` SessionMessageNative4
            - `summary` string, required
            - `cost` number
            - `tokens` TokenUsageInfo
              - …
          - SessionMessageCompactionFailed
            - `type` 'compaction', required
            - `id` string, required
            - `metadata` object
            - `time` object, required
              - …
            - `status` 'failed', required
            - `reason` 'auto' | 'manual', required
            - `error` SessionStructuredError, required
              - …
            - `cost` number
            - `tokens` TokenUsageInfo
              - …
        - SessionMessageIdle
          - `id` string, required
          - `metadata` object
          - `time` object, required
            - `created` number, required
          - `type` 'idle', required
          - `outcome` 'succeeded' | 'failed' | 'interrupted', required
          - `error` SessionStructuredError
            - `type` string, required
            - `message` string, required
            - `status` integer
            - `response` object
              - …
            - `retryAfterMs` integer

## Other responses

- `400`: InvalidRequestError
- `401`: UnauthorizedError
- `404`: SessionNotFoundError
- `500`: UnknownError

## Changes

> 50 revisions in range; 1 not diffed.

- **2026-10-26** `aa0f65b3d158`: 1 info
  - added the optional property `data/info/revert/files/items/more` to the response with the `200` status
- **2026-10-24** `1c30ec162e7f`: 2 warning
  - removed the optional property `data/info/allowance` from the response with the `200` status
  - removed the optional property `data/messages/items/anyOf[#/components/schemas/Session.Message.Assistant]/allowance` from the response with the `200` status
- **2026-10-24** `231ec98d2d97`: 2 info
  - added the optional property `data/info/allowance` to the response with the `200` status
  - added the optional property `data/messages/items/anyOf[#/components/schemas/Session.Message.Assistant]/allowance` to the response with the `200` status
- …earlier changes not shown

[Operation history](https://skmtc.dev/kaaass/apis/opencode/changes/api/experimental/session/:sessionID/export/get.md)

---

[API](https://skmtc.dev/kaaass/apis/opencode.md) - [All operations](https://skmtc.dev/kaaass/apis/opencode/llms.txt) - [OpenAPI document](https://skmtc.dev/kaaass/apis/opencode/revisions/4e083d954707?raw)
