---
title: "Get a thread"
method: GET
path: "/threads/{threadId}"
tags: ["Threads"]
---

# Get a thread

`GET /threads/{threadId}`

Get a thread and its messages.

## Path parameters

- `threadId` string, uuid, required — Thread ID returned by threads.list or threads.create.

## Response `200`

OK

- object
  - `thread` object, required — The requested thread.
    - `id` string, uuid, required
    - `projectId` string, uuid, required
    - `title` string, nullable, required
    - `status` 'regular' | 'archived', required
    - `source` 'slack' | 'teams' | 'linear' | 'github' | 'app' | 'mcp' | 'agent' | 'api' | 'cli' | 'web' | 'sdk' | 'bitbucket' | 'system', nullable, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `messages` object[], required — Messages currently stored on the thread in chronological order.
    - `id` string, uuid, required
    - `role` 'user' | 'assistant', required
    - `content` union[], required
      - union
        - object
          - `type` 'message', required
          - `message` string, required
        - object
          - `type` 'reasoning', required
          - `reasoning` string, required
          - `status` 'in_progress' | 'complete'
        - object
          - `type` 'tool_call', required
          - `name` string, required
          - `params` unknown
          - `result` unknown
          - `status` 'in_progress' | 'success' | 'error' | 'unknown'
          - `toolCallId` string
          - `durationMs` number
        - object
          - `type` 'artifact', required
          - `name` 'timeseries' | 'table' | 'log_detail' | 'integration_required' | 'alert_card' | 'issue_card' | 'mdx', required
          - `data` unknown
          - `toolCallId` string
        - object
          - `type` 'fork', required
          - `sourceThreadId` string, required
          - `sourceMessageId` string, required
          - `sourceThreadTitle` string, nullable, required
        - object
          - `type` 'summary', required
          - `summary` string, required
        - object
          - `type` 'slack_context', required
          - `channelId` string, required
          - `isTruncated` boolean
          - `messages` object[], required
            - `timestamp` string, required
            - `slackUserId` string
            - `displayName` string, required
            - `text` string, required
            - `isBot` boolean, required
            - `files` object[]
              - …
        - object
          - `type` 'teams_context', required
          - `conversationId` string, required
          - `isTruncated` boolean
          - `messages` object[], required
            - `activityId` string
            - `displayName` string, required
            - `text` string, required
            - `isBot` boolean, required
            - `createdDateTime` string
    - `source` 'slack' | 'teams' | 'linear' | 'github' | 'app' | 'mcp' | 'agent' | 'api' | 'cli' | 'web' | 'sdk' | 'bitbucket' | 'system', required
    - `createdAt` string, date-time, required

---

[API](https://skmtc.dev/sazabi/apis/sazabi-public-api.md) · [All operations](https://skmtc.dev/sazabi/apis/sazabi-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sazabi/sazabi-public-api/revisions/1d12b71c735a/schema)
