---
title: "List assistant threads for the current user"
method: GET
path: "/v1/assistant/threads"
tags: ["assistant"]
---

# List assistant threads for the current user

`GET /v1/assistant/threads`

## Request

- Base URL: `https://sandbox.api.infinite.dev`
- URL: `https://sandbox.api.infinite.dev/v1/assistant/threads`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
- TypeScript: <https://skmtc.dev/infinite/apis/infinite-api/docs/v1/assistant/threads/get.ts> (a function with typed inputs; its response is checked against the schema)

## Query parameters

- `status` 'active' | 'archived'
- `pinnedContextType` string
- `pinnedContextId` string

## Response `200`

- AssistantThreadListResponseDto
  - `data` AssistantThreadResponseDto[], required
    - `id` string, required
    - `app` 'console' | 'admin' | 'compliance', required
    - `env` string, required
    - `organizationId` string, required
    - `userId` string, required
    - `title` string, required
    - `status` 'active' | 'archived', required
    - `pinnedContext` AssistantPinnedContextDto
      - `type` 'customer' | 'case' | 'transfer' | 'org' | 'account' | 'external_account' | 'fixed_route' | 'invoice', required
      - `id` string, required
      - `label` string, required
      - `customerId` string: Optional for transfer pins — customer scope is derived from the transfer on read. On write, omit it or supply a value matching the transfer source customer; mismatches are rejected.
    - `mcpSessionIds` object, required
    - `visibility` string, required
    - `lastMessageAt` string, date-time, nullable
    - `retentionExpiresAt` string, date-time, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `activeRunStatus` 'queued' | 'running' | 'awaiting_confirmation' | 'completed' | 'failed' | 'cancelled', nullable
    - `activeRunId` string, nullable
    - `latestRunStatus` 'queued' | 'running' | 'awaiting_confirmation' | 'completed' | 'failed' | 'cancelled', nullable
    - `latestRunId` string, nullable
    - `unread` boolean

## Other responses

- `401`: Unauthorized - Invalid or missing JWT token

## Changes

- **2026-10-29** `523e45dcb524`: 2 info
  - added the optional property `data/items/latestRunId` to the response with the `200` status
  - added the optional property `data/items/latestRunStatus` to the response with the `200` status
- **2026-10-22** `d266ba0b079e`: 1 info
  - added the optional property `data/items/activeRunId` to the response with the `200` status
- **2026-10-17** `1516ea13e880`: 1 info
  - added the optional property `data/items/pinnedContext/allOf[#/components/schemas/AssistantPinnedContextDto]/customerId` to the response with the `200` status
- **2026-10-16** `f48e031634f4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/infinite/apis/infinite-api/changes/v1/assistant/threads/get.md)

---

[API](https://skmtc.dev/infinite/apis/infinite-api.md) - [All operations](https://skmtc.dev/infinite/apis/infinite-api/llms.txt) - [OpenAPI document](https://skmtc.dev/infinite/apis/infinite-api/revisions/90065d3e6974?raw)
