---
title: "GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}"
method: GET
path: "/api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}"
---

# GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}

`GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}`

## Path parameters

- `projectUuid` string, required
- `agentUuid` string, required
- `threadUuid` string, required

## Response `200`

Success

- ApiAiAgentThreadResponse
  - `results` AiAgentThread, required
    - `user` AiAgentUser, required
      - `name` string, required
      - `uuid` string, required
    - `firstMessage` object, required
      - `message` string, required
      - `uuid` string, required
    - `titleGeneratedAt` string, nullable, required
    - `title` string, nullable, required
    - `createdFrom` 'slack' | 'web_app' | 'evals' | 'scheduler', required
    - `createdAt` string, required
    - `agentUuid` string, required
    - `uuid` string, required
    - `compactions` AiThreadCompaction[], required
      - `createdAt` string, required
      - `triggeringPromptUuid` string, required
      - `compactedThroughPromptUuid` string, required
      - `threadUuid` string, required
      - `uuid` string, required
    - `messages` AiAgentMessageAiAgentUser[], required
      - union
        - AiAgentMessageUserAiAgentUser
          - `hidden` boolean, required — Hidden turn: the agent received and responded to this prompt, but the UI should not render its user bubble (e.g. the post-merge migration prompt injected from the writeback PR card).
          - `steers` AiPromptSteer[], required
            - `consumedStep` number, double, nullable, required
            - `consumedAt` string, nullable, required
            - `createdAt` string, required
            - `message` string, required
            - `promptUuid` string, required
            - `uuid` string, required
          - `context` AiPromptContextItem[], required
            - union
              - …
          - `user` AiAgentUser, required
            - `name` string, required
            - `uuid` string, required
          - `createdAt` string, required
          - `message` string, required
          - `threadUuid` string, required
          - `uuid` string, required
          - `role` 'user', required
        - AiAgentMessageAssistant
          - `tokenUsage` AiPromptTokenUsage, required
            - `totalTokens` number, double, required
          - `modelConfig` AiAgentModelConfig, required
            - `reasoning` boolean
            - `modelProvider` string, required
            - `modelName` string, required
          - `referencedArtifacts` AiAgentMessageAssistantArtifact[], nullable, required
            - `description` string, nullable, required
            - `title` string, nullable, required
            - `versionUuid` string, required
            - `artifactUuid` string, required
            - `versionNumber` number, double, required
            - `artifactType` 'chart' | 'dashboard', required
          - `artifacts` AiAgentMessageAssistantArtifact[], nullable, required
            - `description` string, nullable, required
            - `title` string, nullable, required
            - `versionUuid` string, required
            - `artifactUuid` string, required
            - `versionNumber` number, double, required
            - `artifactType` 'chart' | 'dashboard', required
          - `savedQueryUuid` string, nullable, required
          - `reasoning` AiAgentReasoning[], required
            - `createdAt` string, date-time, required
            - `text` string, required
            - `reasoningId` string, required
            - `promptUuid` string, required
            - `uuid` string, required
          - `toolResults` AiAgentToolResult[], required
            - union
              - …
          - `toolCalls` AiAgentToolCall[], required
            - union
              - …
          - `humanFeedback` string, nullable
          - `humanScore` number, double, nullable, required
          - `createdAt` string, required
          - `interrupted` boolean, required
          - `errorMessage` string, nullable, required
          - `message` string, nullable, required
          - `threadUuid` string, required
          - `uuid` string, required
          - `status` 'idle' | 'pending' | 'error', required
          - `role` 'assistant', required
  - `status` 'ok', required

## Other responses

- `default` — Error

---

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