---
name: "email_get_thread"
area: "email"
title: "Read a thread"
price: "free"
method: "POST"
url: "https://api.conecto.chat/v1/tools/email_get_thread"
mcp_server: "https://api.conecto.chat/mcp/email"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/email/email_get_thread"
---

# Read a thread (`email_get_thread`)

Every message of one conversation, oldest first.

Every message in the same conversation, oldest first. Free.

Price: Free up to 1,000,000 reads a month for the whole account, then $0.50 per 10,000 reads. A call that fails costs nothing.

## Use it when

Before answering an email that is part of a longer exchange.

## Say this to your agent

> Show me the whole back-and-forth with Ladd's Bakery about servicing their cargo bikes.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `message_id` | string | yes | Exactly 36 characters. |  |  |

## Example

Written for Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon.

MCP: call `email_get_thread` on the MCP server `https://api.conecto.chat/mcp/email` with these arguments:

```json
{
  "message_id": "6e0b3f52-8d1a-4c7e-b2f9-3a5d7c9e1f04"
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/email_get_thread \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message_id": "6e0b3f52-8d1a-4c7e-b2f9-3a5d7c9e1f04"}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "email_get_thread",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.00",
  "balance_usd": "$19.75",
  "result": {
    "thread": [
      {
        "message_id": "6e0b3f52-8d1a-4c7e-b2f9-3a5d7c9e1f04",
        "inbox": "support@halverson-cycle-repair.useconecto.com",
        "direction": "in",
        "from": "paul.hoffmann@example.com",
        "from_name": "Paul Hoffmann",
        "to": [
          "support@halverson-cycle-repair.useconecto.com"
        ],
        "cc": [],
        "subject": "My Tabor's repair",
        "at": "2026-10-14T08:00:00+00:00",
        "thread": "<CAF7d2k1x@mail.example.com>",
        "thread_state": "open",
        "thread_labels": [],
        "contact_id": 4101,
        "spam": "PASS",
        "ticket": 1,
        "text": "Hello, my Tabor was due back from its repair yesterday. Can you tell me when I can pick it up?\n\nPaul\n",
        "html": "",
        "attachments": []
      },
      {
        "message_id": "aeef8aef-c643-47d3-872a-f74bb319e996",
        "inbox": "support@halverson-cycle-repair.useconecto.com",
        "direction": "out",
        "from": "support@halverson-cycle-repair.useconecto.com",
        "from_name": "Halverson Support",
        "to": [
          "paul.hoffmann@example.com"
        ],
        "cc": [],
        "subject": "Re: My Tabor's repair",
        "at": "2026-10-14T08:00:00+00:00",
        "thread": "<CAF7d2k1x@mail.example.com>",
        "thread_state": "open",
        "thread_labels": [],
        "contact_id": 4101,
        "spam": null,
        "ticket": 1,
        "text": "Hello Paul,\n\nsorry for the wait. The new derailleur came this morning, and your Tabor is ready to pick up on Friday.\n\nSam, Halverson Cycle & Repair\n\nThis message was written by Halverson Cycle & Repair's AI assistant.",
        "html": "",
        "attachments": []
      }
    ]
  }
}
```

`result`: thread: every message of the conversation, oldest first, each in full.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `not_found` | 404 | No message of the business has that message_id. | Find the message with email_list_messages and use its message_id. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [email_create_inbox](https://conecto.chat/tools/email/email_create_inbox.md): A new email address for the business on its own subdomain, which sends and receives at once. $1.00 a call.
- [email_list_inboxes](https://conecto.chat/tools/email/email_list_inboxes.md): The business's inboxes, whether each opens tickets or saves attachments, and when each renews. Free up to 1,000,000 reads a month.
- [email_update_inbox](https://conecto.chat/tools/email/email_update_inbox.md): Changes an inbox's sender name, switches saving its attachments to the file store on or off, or changes how much it saves a day. $0.001 a call.
- [email_send](https://conecto.chat/tools/email/email_send.md): Sends an email from one of the business's inboxes, with files from the store attached, or answers a received message in its thread. $0.001 per recipient, plus $0.001 per started MB of attachments for each recipient ($0.001 to one person without attachments), up to $0.52.
- [email_list_messages](https://conecto.chat/tools/email/email_list_messages.md): Messages in the business's inboxes, newest first: received, sent or both, for one inbox, one sender or since a time. Free up to 1,000,000 reads a month.
- [email_get_message](https://conecto.chat/tools/email/email_get_message.md): One message in full: its text, HTML and attachment names. Free up to 1,000,000 reads a month.
- [email_update_thread](https://conecto.chat/tools/email/email_update_thread.md): Marks an email thread open, waiting, handled or archived, and sets its labels. $0.001 a call.
- [email_save_attachments](https://conecto.chat/tools/email/email_save_attachments.md): Saves the files attached to one received email into the file store, each linked to the email. $0.001 per file saved.
- [email_release_inbox](https://conecto.chat/tools/email/email_release_inbox.md): Stops renting an inbox: mail sent to it later bounces, and its stored messages stay readable. Free.
