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

# Get thread

`GET /v1/threads/{threadId}`

Get a single captain thread.

## Path parameters

- `threadId` string, required

## Response `200`

Success

- ThreadListItem
  - `id` string, required
  - `projectId` string, required
  - `title` string, nullable, required
  - `status` 'active' | 'idle' | 'archived', required — Coarse Captain run-loop status retained for compatibility. Prefer runState/waitingOn/blockedOn for completion and waiting UX.
  - `runState` 'running' | 'stopping' | 'queued' | 'waiting' | 'blocked' | 'ready' | 'archived', required — Full computed execution state for the agent thread.
  - `waitingOn` string[], required — Async system dependencies expected to continue without user action.
  - `blockedOn` string[], required — User/integration gates required before progress can continue.
  - `pendingWakeups` integer, required — Pending append-and-resume notifications waiting to be processed.
  - `tasks` object[], required
    - `id` string, required
    - `threadIndex` integer, nullable, required
    - `identifier` string, required
    - `title` string, required
    - `status` 'backlog' | 'queued' | 'in_progress' | 'needs_review' | 'completed' | 'error' | 'archived', required
  - `participants` object[], required
    - `userId` string, required
    - `userType` 'human' | 'service_user', required
    - `firstParticipatedAt` string, required
    - `lastParticipatedAt` string, required
  - `pullRequests` object[], required
    - `number` integer, required
    - `url` string, required
    - `repoFullName` string, required
    - `state` string, required
    - `headRef` string, required
    - `baseRef` string, required
    - `draft` boolean, required
  - `slackThreads` object[], required
    - `teamId` string, required
    - `channelId` string, required
    - `threadTs` string, required
    - `url` string, required
  - `tags` object[], required
    - `name` string, required
    - `color` 'default' | 'primary' | 'success' | 'warning' | 'destructive' | 'blue' | 'purple' | 'pink' | 'orange' | 'lime', required
  - `createdAt` string, required
  - `updatedAt` string, required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `422` — Validation error
- `500` — Internal error

---

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