# Get thread by ID

> All messages in a conversation, oldest first.

`GET https://inboundr.net/api/v1/threads/{id}`

Returns every message in a thread as **summaries**, oldest first. Use
[Get email by ID](/api-reference/emails/get) for the full body of any message.

<ParamField path="id" type="string" required>
  The thread id (`thr_…`).
</ParamField>

<ResponseExample>
```json 200
{
  "threadId": "thr_xyz789",
  "data": [
    {
      "id": "em_abc123",
      "direction": "inbound",
      "threadId": "thr_xyz789",
      "messageId": "<CAEabc...@mail.gmail.com>",
      "fromAddress": "customer@example.com",
      "toAddresses": ["support@yourdomain.com"],
      "subject": "Can you help?",
      "spamVerdict": "PASS",
      "attachmentCount": 0,
      "receivedAt": "2026-07-20T10:30:00.000Z"
    },
    {
      "id": "em_def456",
      "direction": "outbound",
      "threadId": "thr_xyz789",
      "messageId": "<...@email.amazonses.com>",
      "fromAddress": "support@yourdomain.com",
      "toAddresses": ["customer@example.com"],
      "subject": "Re: Can you help?",
      "spamVerdict": null,
      "attachmentCount": 0,
      "receivedAt": "2026-07-20T10:35:00.000Z"
    }
  ]
}
```
</ResponseExample>

<Note>Returns `404` if the thread has no messages, or isn't yours.</Note>
