---
title: "Get a thread"
canonical: "https://bird.com/docs/api/reference/get-email-thread"
---

# Get a thread

`GET /v1/email/threads/{thread_id}`

Returns a single conversation. Fetch the messages in the conversation with [List messages in a thread](/docs/api/reference/list-email-thread-messages). A thread whose retention tier has ended returns `410 Gone`.

## Code samples

**TypeScript**

```ts
const thread = await bird.email.threads.get("thr_01abc");
console.log(thread.subject);
```

Examples: [TypeScript](/docs/api/reference/get-email-thread.ts.md) · [Python](/docs/api/reference/get-email-thread.py.md) · [Go](/docs/api/reference/get-email-thread.go.md) · [PHP](/docs/api/reference/get-email-thread.php.md) · [CLI](/docs/api/reference/get-email-thread.cli.md) · [MCP](/docs/api/reference/get-email-thread.mcp.md) · [cURL](/docs/api/reference/get-email-thread.curl.md)

## Example response `200`

```json
{
  "id": "thr_01krdgeqcxet5s7t44vh8rt9mg",
  "mailbox_id": "mbx_01krdgeqcxet5s7t44vh8rt9mg",
  "channel": "email",
  "contact_id": "con_01krdgeqcxet5s7t44vh8rt9mg",
  "subject": "Re: Your order",
  "last_direction": "inbound",
  "labels": [
    "inbox",
    "urgent"
  ],
  "highlights": {
    "subject": [
      "Re: your **order** **4821**"
    ],
    "text": [
      "confirming your **order** **4821** shipped"
    ]
  }
}
```

## Path parameters

- `thread_id` (string): Thread identifier. Starts with `thr_`.

## Response body

- `id` (string, required): Thread ID.
- `mailbox_id` (string, required): Mailbox this conversation belongs to.
- `channel` (string, required): Channel this conversation lives on. Always `email`.
- `contact_id` (nullable string, required): Contact linked to this conversation, or null when none is linked.
- `subject` (nullable string, required): Subject of the conversation, taken from its first message. Null when that message had no subject.
- `participants` (array of string, required): Addresses that appear on the retained messages in this conversation, including the mailbox's own address.
- `message_count` (integer, required): Number of retained messages in this conversation, both directions.
- `unread_count` (integer, required): Number of retained received messages that are still unread. Spam and blocked mail is not counted.
- `last_message_at` (string, required): When the most recent retained message in this conversation was received or sent.
- `last_direction` (string, required)

  Direction of the most recent message: `inbound` for a received message, `outbound` for a sent one.

  Possible values: `inbound`, `outbound`
- `labels` (array of string, required)

  Labels on this conversation. Exactly one system placement label is always present, set by the message that started the conversation:

  - `inbox`: The conversation is in the inbox.
  - `archive`: The conversation was filed away and is done for now.
  - `spam`: The conversation's opening message is filed in Spam.
  - `blocked`: The conversation's opening message was rejected by the mailbox's receive policy or rules.

  Move a conversation by updating its labels. Add `spam` to file it as spam, add `archive` to clean it out of the inbox, and add `inbox`, or remove `spam`, `blocked`, or `archive`, to bring it back. An archived conversation returns to the inbox by itself when a new message arrives. Custom labels share the same list, and a conversation has at most 20 labels in total.
- `created_at` (string, required): When the thread was created.
- `updated_at` (string, required): When the thread last changed.
- `highlights` (object): Matched search fragments, keyed by the field that matched. Returned only by thread search. Omitted when listing threads.
- `highlights.subject` (array of string): Matched fragments from the conversation's subject.
- `highlights.text` (array of string): Matched fragments from a message's body text.

## Related resources

- [Getting started with email](/learn/email/getting-started-with-email) (video)
- [Email](/email-api) (product)
- [Build your first integration](/learn/paths/integration) (course)
- [Send your first email](/docs/get-started/send-your-first-email) (docs)

[Get an implementation brief](/learn/workspace?topic=email)
