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

# Get a thread

`GET /v1/inboxes/{inboxId}/threads/{threadId}`

## Request

- Base URL: `https://api.volanea.com`
- URL: `https://api.volanea.com/v1/inboxes/{inboxId}/threads/{threadId}`
- Auth: HTTP bearer

The thread with its messages (bodies included), oldest first, up to 200.

## Path parameters

- `inboxId` string, required
- `threadId` string, required

## Response `200`

The thread.

- object
  - `threadId` string, required
  - `inboxId` string, required
  - `subject` string, required: Without Re:/Fwd: prefixes.
  - `participants` string[], required: Addresses other than the inbox's own.
  - `messageCount` integer, required
  - `preview` string: Start of the latest received message's text.
  - `lastMessageAt` string, date-time, required
  - `lastReceivedAt` string, date-time, nullable
  - `lastSentAt` string, date-time, nullable
  - `createdAt` string, date-time, required
  - `messages` InboxMessage[]
    - `emailId` string, required
    - `inboxId` string, required
    - `threadId` string, required
    - `direction` 'inbound' | 'outbound', required
    - `from` string, required
    - `fromName` string, nullable
    - `to` string, required
    - `cc` string[]
    - `subject` string, required
    - `text` string, nullable: Plain-text part of received mail. Null on sent mail.
    - `extractedText` string, nullable: `text` without quoted history and signature — the new part of a reply.
    - `bcc` string[]: Sent mail only.
    - `security` object, nullable
      - `status` 'pending' | 'scanning' | 'clear' | 'review' | 'unavailable'
      - `reasons` string[]
    - `inReplyToEmailId` string, nullable: The campaign/workflow/transactional email this answers, when it answers one.
    - `campaignId` string, nullable
    - `html` string, nullable: Only on single-message and thread reads. Received HTML is sanitized: no scripts, iframes, or event handlers.
    - `labels` string[], required: System: `spam`, `virus` (attachments not downloadable), `unauthenticated` (neither SPF nor DKIM passed), `held`, `security-review`. Plus any you set.
    - `plusTag` string, nullable: `order42` for mail sent to `name+order42@…`.
    - `status` string
    - `attachments` object[]
      - `attachmentId` string
      - `filename` string
      - `contentType` string
      - `size` integer
      - `inline` boolean
    - `createdAt` string, date-time, required
    - `sentAt` string, date-time, nullable

## Other responses

- `401`: Missing or invalid API key.
- `404`: Not found.
- `422`: Request validation failed (code `validation_error`, 422).

---

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