> ## Documentation Index
> Fetch the complete documentation index at: https://v2.opencode.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get session context

> Retrieve the active context messages for a session (all messages after the last compaction).



## OpenAPI

````yaml /openapi.json get /api/session/{sessionID}/context
openapi: 3.1.0
info:
  title: opencode HttpApi
  version: 0.0.1
  description: Experimental HttpApi surface for selected instance routes.
servers: []
security: []
tags:
  - name: health
  - name: server
  - name: location
  - name: agent
  - name: plugin
    description: Experimental plugin routes.
  - name: session
    description: Experimental session routes.
  - name: session
    description: Experimental message routes.
  - name: model
    description: Experimental model routes.
  - name: generate
    description: Experimental one-shot generation routes.
  - name: provider
    description: Experimental provider routes.
  - name: integration
    description: Integration discovery and authentication routes.
  - name: mcp
    description: MCP server and resource routes.
  - name: credential
  - name: project
    description: Location-scoped project routes.
  - name: form
    description: Session form routes.
  - name: permission
    description: Experimental permission routes.
  - name: filesystem
    description: Experimental location-scoped filesystem routes.
  - name: command
    description: Experimental command routes.
  - name: skill
    description: Experimental skill routes.
  - name: event
    description: Experimental event stream routes.
  - name: pty
    description: Experimental location-scoped PTY routes.
  - name: shell
    description: Experimental location-scoped shell command routes.
  - name: question
    description: Experimental session question routes.
  - name: reference
    description: Location-scoped project references.
  - name: projectCopy
    description: Project copy management routes.
  - name: vcs
    description: Location-scoped version control routes.
  - name: debug
paths:
  /api/session/{sessionID}/context:
    get:
      tags:
        - session
      summary: Get session context
      description: >-
        Retrieve the active context messages for a session (all messages after
        the last compaction).
      operationId: v2.session.context
      parameters:
        - name: sessionID
          in: path
          schema:
            type: string
            allOf:
              - pattern: ^ses
          required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Session.Message.Info'
                required:
                  - data
                additionalProperties: false
        '400':
          description: InvalidRequestError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestError'
        '401':
          description: UnauthorizedError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '404':
          description: SessionNotFoundError
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/SessionNotFoundError'
                  - $ref: '#/components/schemas/SessionNotFoundError'
        '500':
          description: UnknownError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnknownError'
      security: []
components:
  schemas:
    Session.Message.Info:
      anyOf:
        - $ref: '#/components/schemas/Session.Message.AgentSelected'
        - $ref: '#/components/schemas/Session.Message.ModelSelected'
        - $ref: '#/components/schemas/Session.Message.User'
        - $ref: '#/components/schemas/Session.Message.Synthetic'
        - $ref: '#/components/schemas/Session.Message.System'
        - $ref: '#/components/schemas/Session.Message.Skill'
        - $ref: '#/components/schemas/Session.Message.Shell'
        - $ref: '#/components/schemas/Session.Message.Assistant'
        - $ref: '#/components/schemas/Session.Message.Compaction'
    InvalidRequestError:
      type: object
      properties:
        _tag:
          type: string
          enum:
            - InvalidRequestError
        message:
          type: string
        kind:
          anyOf:
            - type: string
            - type: 'null'
        field:
          anyOf:
            - type: string
            - type: 'null'
      required:
        - _tag
        - message
      additionalProperties: false
    UnauthorizedError:
      type: object
      properties:
        _tag:
          type: string
          enum:
            - UnauthorizedError
        message:
          type: string
      required:
        - _tag
        - message
      additionalProperties: false
    SessionNotFoundError:
      type: object
      properties:
        _tag:
          type: string
          enum:
            - SessionNotFoundError
        sessionID:
          type: string
        message:
          type: string
      required:
        - _tag
        - sessionID
        - message
      additionalProperties: false
    UnknownError:
      type: object
      properties:
        _tag:
          type: string
          enum:
            - UnknownError
        message:
          type: string
        ref:
          anyOf:
            - type: string
            - type: 'null'
      required:
        - _tag
        - message
      additionalProperties: false
    Session.Message.AgentSelected:
      type: object
      properties:
        id:
          type: string
          allOf:
            - pattern: ^msg_
        metadata:
          type: object
        time:
          type: object
          properties:
            created:
              type: number
          required:
            - created
          additionalProperties: false
        type:
          type: string
          enum:
            - agent-switched
        agent:
          type: string
      required:
        - id
        - time
        - type
        - agent
      additionalProperties: false
    Session.Message.ModelSelected:
      type: object
      properties:
        id:
          type: string
          allOf:
            - pattern: ^msg_
        metadata:
          type: object
        time:
          type: object
          properties:
            created:
              type: number
          required:
            - created
          additionalProperties: false
        type:
          type: string
          enum:
            - model-switched
        model:
          $ref: '#/components/schemas/Model.Ref'
        previous:
          $ref: '#/components/schemas/Model.Ref'
      required:
        - id
        - time
        - type
        - model
      additionalProperties: false
    Session.Message.User:
      type: object
      properties:
        id:
          type: string
          allOf:
            - pattern: ^msg_
        metadata:
          type: object
        time:
          type: object
          properties:
            created:
              type: number
          required:
            - created
          additionalProperties: false
        text:
          type: string
        files:
          type: array
          items:
            $ref: '#/components/schemas/Prompt.FileAttachment'
        agents:
          type: array
          items:
            $ref: '#/components/schemas/Prompt.AgentAttachment'
        type:
          type: string
          enum:
            - user
      required:
        - id
        - time
        - text
        - type
      additionalProperties: false
    Session.Message.Synthetic:
      type: object
      properties:
        id:
          type: string
          allOf:
            - pattern: ^msg_
        metadata:
          type: object
        time:
          type: object
          properties:
            created:
              type: number
          required:
            - created
          additionalProperties: false
        text:
          type: string
        description:
          type: string
        type:
          type: string
          enum:
            - synthetic
      required:
        - id
        - time
        - text
        - type
      additionalProperties: false
    Session.Message.System:
      type: object
      properties:
        id:
          type: string
          allOf:
            - pattern: ^msg_
        metadata:
          type: object
        time:
          type: object
          properties:
            created:
              type: number
          required:
            - created
          additionalProperties: false
        type:
          type: string
          enum:
            - system
        text:
          type: string
      required:
        - id
        - time
        - type
        - text
      additionalProperties: false
    Session.Message.Skill:
      type: object
      properties:
        id:
          type: string
          allOf:
            - pattern: ^msg_
        metadata:
          type: object
        time:
          type: object
          properties:
            created:
              type: number
          required:
            - created
          additionalProperties: false
        type:
          type: string
          enum:
            - skill
        skill:
          type: string
        name:
          type: string
        text:
          type: string
      required:
        - id
        - time
        - type
        - skill
        - name
        - text
      additionalProperties: false
    Session.Message.Shell:
      type: object
      properties:
        id:
          type: string
          allOf:
            - pattern: ^msg_
        metadata:
          type: object
        time:
          type: object
          properties:
            created:
              type: number
            completed:
              type: number
          required:
            - created
          additionalProperties: false
        type:
          type: string
          enum:
            - shell
        shellID:
          type: string
          allOf:
            - pattern: ^sh_
        command:
          type: string
        status:
          type: string
          enum:
            - running
            - exited
            - timeout
            - killed
        exit:
          anyOf:
            - anyOf:
                - type: number
                - type: string
                  enum:
                    - NaN
                - type: string
                  enum:
                    - Infinity
                - type: string
                  enum:
                    - '-Infinity'
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        output:
          type: object
          properties:
            output:
              type: string
            cursor:
              type: integer
              allOf:
                - minimum: 0
            size:
              type: integer
              allOf:
                - minimum: 0
            truncated:
              type: boolean
          required:
            - output
            - cursor
            - size
            - truncated
          additionalProperties: false
      required:
        - id
        - time
        - type
        - shellID
        - command
        - status
      additionalProperties: false
    Session.Message.Assistant:
      type: object
      properties:
        id:
          type: string
          allOf:
            - pattern: ^msg_
        metadata:
          type: object
        time:
          type: object
          properties:
            created:
              type: number
            completed:
              type: number
          required:
            - created
          additionalProperties: false
        type:
          type: string
          enum:
            - assistant
        agent:
          type: string
        model:
          $ref: '#/components/schemas/Model.Ref'
        content:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/Session.Message.Assistant.Text'
              - $ref: '#/components/schemas/Session.Message.Assistant.Reasoning'
              - $ref: '#/components/schemas/Session.Message.Assistant.Tool'
        snapshot:
          type: object
          properties:
            start:
              type: string
            end:
              type: string
            files:
              type: array
              items:
                type: string
          additionalProperties: false
        finish:
          type: string
          enum:
            - stop
            - length
            - tool-calls
            - content-filter
            - error
            - unknown
        cost:
          $ref: '#/components/schemas/Money.USD'
        tokens:
          $ref: '#/components/schemas/TokenUsage.Info'
        error:
          $ref: '#/components/schemas/Session.StructuredError'
        retry:
          $ref: '#/components/schemas/Session.Message.Assistant.Retry'
      required:
        - id
        - time
        - type
        - agent
        - model
        - content
      additionalProperties: false
    Session.Message.Compaction:
      anyOf:
        - $ref: '#/components/schemas/Session.Message.Compaction.Running'
        - $ref: '#/components/schemas/Session.Message.Compaction.Completed'
        - $ref: '#/components/schemas/Session.Message.Compaction.Failed'
    Model.Ref:
      type: object
      properties:
        id:
          type: string
        providerID:
          type: string
        variant:
          type: string
      required:
        - id
        - providerID
      additionalProperties: false
    Prompt.FileAttachment:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Prompt.Base64'
        mime:
          type: string
        source:
          $ref: '#/components/schemas/Prompt.FileSource'
        name:
          type: string
        description:
          type: string
        mention:
          $ref: '#/components/schemas/Prompt.Mention'
      required:
        - data
        - mime
        - source
      additionalProperties: false
    Prompt.AgentAttachment:
      type: object
      properties:
        name:
          type: string
        mention:
          $ref: '#/components/schemas/Prompt.Mention'
      required:
        - name
      additionalProperties: false
    Session.Message.Assistant.Text:
      type: object
      properties:
        type:
          type: string
          enum:
            - text
        text:
          type: string
      required:
        - type
        - text
      additionalProperties: false
    Session.Message.Assistant.Reasoning:
      type: object
      properties:
        type:
          type: string
          enum:
            - reasoning
        text:
          type: string
        state:
          $ref: '#/components/schemas/Session.Message.ProviderState'
        time:
          type: object
          properties:
            created:
              type: number
            completed:
              type: number
          required:
            - created
          additionalProperties: false
      required:
        - type
        - text
      additionalProperties: false
    Session.Message.Assistant.Tool:
      type: object
      properties:
        type:
          type: string
          enum:
            - tool
        id:
          type: string
        name:
          type: string
        executed:
          type: boolean
        providerState:
          $ref: '#/components/schemas/Session.Message.ProviderState'
        providerResultState:
          $ref: '#/components/schemas/Session.Message.ProviderState'
        state:
          anyOf:
            - $ref: '#/components/schemas/Session.Message.ToolState.Streaming'
            - $ref: '#/components/schemas/Session.Message.ToolState.Running'
            - $ref: '#/components/schemas/Session.Message.ToolState.Completed'
            - $ref: '#/components/schemas/Session.Message.ToolState.Error'
        time:
          type: object
          properties:
            created:
              type: number
            ran:
              type: number
            completed:
              type: number
          required:
            - created
          additionalProperties: false
      required:
        - type
        - id
        - name
        - state
        - time
      additionalProperties: false
    Money.USD:
      type: number
    TokenUsage.Info:
      type: object
      properties:
        input:
          type: number
        output:
          type: number
        reasoning:
          type: number
        cache:
          type: object
          properties:
            read:
              type: number
            write:
              type: number
          required:
            - read
            - write
          additionalProperties: false
      required:
        - input
        - output
        - reasoning
        - cache
      additionalProperties: false
    Session.StructuredError:
      type: object
      properties:
        type:
          type: string
        message:
          type: string
      required:
        - type
        - message
      additionalProperties: false
    Session.Message.Assistant.Retry:
      type: object
      properties:
        attempt:
          type: integer
          allOf:
            - exclusiveMinimum: 0
        at:
          type: number
        error:
          $ref: '#/components/schemas/Session.StructuredError'
      required:
        - attempt
        - at
        - error
      additionalProperties: false
    Session.Message.Compaction.Running:
      type: object
      properties:
        type:
          type: string
          enum:
            - compaction
        id:
          type: string
          allOf:
            - pattern: ^msg_
        metadata:
          type: object
        time:
          type: object
          properties:
            created:
              type: number
          required:
            - created
          additionalProperties: false
        status:
          type: string
          enum:
            - running
        reason:
          type: string
          enum:
            - auto
            - manual
        summary:
          type: string
        recent:
          type: string
      required:
        - type
        - id
        - time
        - status
        - reason
        - summary
        - recent
      additionalProperties: false
    Session.Message.Compaction.Completed:
      type: object
      properties:
        type:
          type: string
          enum:
            - compaction
        id:
          type: string
          allOf:
            - pattern: ^msg_
        metadata:
          type: object
        time:
          type: object
          properties:
            created:
              type: number
          required:
            - created
          additionalProperties: false
        status:
          type: string
          enum:
            - completed
        reason:
          type: string
          enum:
            - auto
            - manual
        summary:
          type: string
        recent:
          type: string
      required:
        - type
        - id
        - time
        - status
        - reason
        - summary
        - recent
      additionalProperties: false
    Session.Message.Compaction.Failed:
      type: object
      properties:
        type:
          type: string
          enum:
            - compaction
        id:
          type: string
          allOf:
            - pattern: ^msg_
        metadata:
          type: object
        time:
          type: object
          properties:
            created:
              type: number
          required:
            - created
          additionalProperties: false
        status:
          type: string
          enum:
            - failed
        reason:
          type: string
          enum:
            - auto
            - manual
        error:
          $ref: '#/components/schemas/Session.StructuredError'
      required:
        - type
        - id
        - time
        - status
        - reason
        - error
      additionalProperties: false
    Prompt.Base64:
      type: string
      allOf:
        - pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
    Prompt.FileSource:
      anyOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - inline
          required:
            - type
          additionalProperties: false
        - type: object
          properties:
            type:
              type: string
              enum:
                - uri
            uri:
              type: string
          required:
            - type
            - uri
          additionalProperties: false
    Prompt.Mention:
      type: object
      properties:
        start:
          type: number
        end:
          type: number
        text:
          type: string
      required:
        - start
        - end
        - text
      additionalProperties: false
    Session.Message.ProviderState:
      type: object
    Session.Message.ToolState.Streaming:
      type: object
      properties:
        status:
          type: string
          enum:
            - streaming
        input:
          type: string
      required:
        - status
        - input
      additionalProperties: false
    Session.Message.ToolState.Running:
      type: object
      properties:
        status:
          type: string
          enum:
            - running
        input:
          type: object
        structured:
          type: object
        content:
          type: array
          items:
            $ref: '#/components/schemas/LLM.ToolContent'
      required:
        - status
        - input
        - structured
        - content
      additionalProperties: false
    Session.Message.ToolState.Completed:
      type: object
      properties:
        status:
          type: string
          enum:
            - completed
        input:
          type: object
        content:
          type: array
          items:
            $ref: '#/components/schemas/LLM.ToolContent'
        structured:
          type: object
        result: {}
      required:
        - status
        - input
        - content
        - structured
      additionalProperties: false
    Session.Message.ToolState.Error:
      type: object
      properties:
        status:
          type: string
          enum:
            - error
        input:
          type: object
        content:
          type: array
          items:
            $ref: '#/components/schemas/LLM.ToolContent'
        structured:
          type: object
        error:
          $ref: '#/components/schemas/Session.StructuredError'
        result: {}
      required:
        - status
        - input
        - content
        - structured
        - error
      additionalProperties: false
    LLM.ToolContent:
      anyOf:
        - $ref: '#/components/schemas/Tool.TextContent'
        - $ref: '#/components/schemas/Tool.FileContent'
    Tool.TextContent:
      type: object
      properties:
        type:
          type: string
          enum:
            - text
        text:
          type: string
      required:
        - type
        - text
      additionalProperties: false
    Tool.FileContent:
      type: object
      properties:
        type:
          type: string
          enum:
            - file
        uri:
          type: string
        mime:
          type: string
        name:
          type: string
      required:
        - type
        - uri
        - mime
      additionalProperties: false

````