---
title: "GET /v1/workspaces/{workspaceId}/threads/{threadId}"
method: GET
path: "/v1/workspaces/{workspaceId}/threads/{threadId}"
---

# GET /v1/workspaces/{workspaceId}/threads/{threadId}

`GET /v1/workspaces/{workspaceId}/threads/{threadId}`

## Request

- Base URL: `https://api.bangermail.com`
- URL: `https://api.bangermail.com/v1/workspaces/{workspaceId}/threads/{threadId}`
- Auth: HTTP bearer

## Response `200`

Thread and ordered messages.

- object
  - `data` ThreadDetail, required
    - `id` string, uuid, required
    - `mailbox_id` string, uuid, required
    - `subject` string, required
    - `snippet` string, required
    - `last_message_at` string, date-time, required
    - `message_count` integer, required
    - `unread_count` integer, required
    - `is_archived` boolean, required
    - `is_trash` boolean, required
    - `is_spam` boolean, required
    - `is_starred` boolean, required
    - `is_sent` boolean, required
    - `has_attachments` boolean, required
    - `labels` string[], required
    - `participants` Participant[]
      - `name` string
      - `email` string, email, required
    - `messages` Message[], required
      - `id` string, uuid, required
      - `mailbox_id` string, uuid, required
      - `thread_id` string, uuid, required
      - `sent_at` string, date-time, required
      - `received_at` string, date-time
      - `envelope_recipients` string[]: Original SMTP envelope recipients, case-folded by the SMTP edge, before receive-only alias routing. Empty for older messages or non-SMTP sources. Independent of visible To/Cc headers.
      - `from` Participant, required
        - `name` string
        - `email` string, email, required
      - `to` Participant[], required
        - `name` string
        - `email` string, email, required
      - `cc` Participant[]
        - `name` string
        - `email` string, email, required
      - `reply_to` Participant[]
        - `name` string
        - `email` string, email, required
      - `is_sent` boolean: Whether this message was sent by the mailbox, including from an alias.
      - `provider_status` 'queued' | 'sent' | 'delivered' | 'read' | 'undelivered' | 'failed' | 'null', nullable: An SMS or WhatsApp reply's delivery as the provider last reported it (read is WhatsApp only). Null for email.
      - `body_text` string
      - `body_html_url` string, uri
      - `reply_origin` ReplyOrigin
        - `send_intent_id` string, uuid, required
        - `source` 'gateway' | 'transactional' | 'marketing' | 'mailbox' | 'agent', required
        - `source_id` string, uuid, nullable
        - `traffic_class` 'transactional' | 'marketing' | 'mailbox', required
        - `kind` 'campaign' | 'sequence' | 'transactional' | 'mailbox' | 'agent', required
        - `name` string, nullable
      - `has_attachments` boolean, required
      - `attachments` Attachment[]
        - `id` string, uuid, required
        - `filename` string, required
        - `content_type` string, required
        - `content_id` string
        - `disposition` string
        - `size_bytes` integer, required
        - `download_url` string, uri, required

## Other responses

- `404`: The requested resource does not exist in this workspace.

---

[API](https://skmtc.dev/bangermail/apis/banger-api.md) · [All operations](https://skmtc.dev/bangermail/apis/banger-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bangermail/apis/banger-api/revisions/a149909267f9?raw)
