---
title: "Get a chat session with all its messages"
method: GET
path: "/chat/sessions/{session_id}"
tags: ["chat"]
---

# Get a chat session with all its messages

`GET /chat/sessions/{session_id}`

## Path parameters

- `session_id` string, required

## Response `200`

Chat session retrieved successfully

- GetChatSessionResponse — Response for getting a chat session
  - `session` ChatSessionWithEvents, required
    - `commits` GitCommit[], required
      - `chat_session_id` string, uuid, required
      - `commit_hash` string, required
      - `created_at` string, date-time, required
      - `id` string, uuid, required
    - `created_at` string, date-time, required
    - `git_application_token` string, required
    - `id` string, uuid, required
    - `is_favorite` boolean, required
    - `latest_workflow_session_id` string, uuid
    - `messages` ChatEventWithRole[], required
      - `content` union, required — Events in a chat session timeline, including messages and unified tool calls/results
        - object
          - `TextMessage` object, required
            - `message` string, required
        - object
          - `Thinking` object, required
            - `block_id` integer, required
            - `complete` boolean, required
            - `content` string, required
        - object
          - `File` object, required — The file event can't be serialized to the database safely without the content. When streaming, we start with the path only, then add the content as we go.
            - `block_id` integer, required
            - `complete` boolean, required
            - `content` string, nullable
            - `path` string, required
        - object
          - `Action` object, required
            - `actions` ActionDef[], required
              - …
            - `block_id` integer, required
            - `complete` boolean, required
        - object
          - `Connector` object, required
            - `description` string, nullable
            - `env_vars` string[], required
            - `name` string, required
        - object
          - `ToolCall` object, required
            - `block_id` integer, required
            - `complete` boolean, required
            - `invocation` union, required
              - …
            - `tool_result` union, required
              - …
        - object
          - `Question` object, required
            - `block_id` integer, required
            - `complete` boolean, required
            - `content` string, required
            - `options` string[], required
        - object
          - `InternalError` object, required
            - `message` string, required
        - object
          - `ReviewRequest` object, required
            - `node_summaries` NodeSummary[], required
              - …
        - object
          - `AttachedFile` object, required
            - `image_bytes` string, binary, nullable
            - `path` string, required
        - object
          - `ConnectorRequest` object, required
            - `connector_id` string, uuid, required
      - `message_id` string, uuid, required
      - `role` 'user' | 'system' | 'assistant', required
      - `timestamp` string, date-time, required
    - `name` string, nullable
    - `project_id` string, uuid
    - `slack_channel_id` string, nullable
    - `slack_team_id` string, nullable
    - `slack_thread_ts` string, nullable
    - `team_id` string, uuid, required
    - `title` string, required
    - `updated_at` string, date-time, required
    - `user_message_needed` boolean, required
    - `user_role` 'viewer' | 'editor' | 'owner', required
    - `visibility` 'private' | 'shared_with_team' | 'public', required
    - `workflow_schedule_id` string, uuid

## Other responses

- `400` — Invalid session ID format
- `404` — Chat session not found
- `500` — Internal server error

## Changes

- **2026-01-23** `58eb8eebcd42` — 1 breaking
  - added `subschema #10, subschema #11` to the `session/messages/items/content` response property `oneOf` list for the response status `200`
- **2026-01-23** `1855c07e8f06` — 1 info
  - added the required property `session/messages/items/content/oneOf[subschema #9]/ReviewRequest/node_summaries/items/in_dashboard` to the response with the `200` status
- **2026-01-22** `7ea3670b144a` — 1 breaking, 1 info
  - added `subschema #10, subschema #11` to the `session/messages/items/content/oneOf[subschema #6]/ToolCall/tool_result` response property `oneOf` list for the response status `200`
  - removed `subschema #5` from the `session/messages/items/content/oneOf[subschema #6]/ToolCall/tool_result` response property `oneOf` list for the response status `200`
- **2026-01-16** `4976f196c8f3` — 1 breaking, 1 info
  - added `subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10` to the `session/messages/items/content/oneOf[subschema #6]/ToolCall/invocation` response property `oneOf` list for the response status `200`
  - removed `subschema #2` from the `session/messages/items/content/oneOf[subschema #6]/ToolCall/invocation` response property `oneOf` list for the response status `200`
- …earlier changes not shown

[Full history](https://skmtc.dev/structifyai/apis/structify/changes/chat/sessions/:session_id/get.md)

---

[API](https://skmtc.dev/structifyai/apis/structify.md) · [All operations](https://skmtc.dev/structifyai/apis/structify/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/structifyai/structify/revisions/1364930b6980/schema)
